34 lines
674 B
JavaScript
34 lines
674 B
JavaScript
|
'use strict';
|
||
|
|
||
|
const events = require('../events.js');
|
||
|
const Post = require('./post.js');
|
||
|
|
||
|
class PostList extends events.EventTarget {
|
||
|
constructor(posts) {
|
||
|
super();
|
||
|
this._list = [];
|
||
|
}
|
||
|
|
||
|
static fromResponse(postsResponse) {
|
||
|
const postList = new PostList();
|
||
|
for (let postResponse of postsResponse) {
|
||
|
postList._list.push(Post.fromResponse(postResponse));
|
||
|
}
|
||
|
return postList;
|
||
|
}
|
||
|
|
||
|
get posts() {
|
||
|
return [...this._list];
|
||
|
}
|
||
|
|
||
|
get length() {
|
||
|
return this._list.length;
|
||
|
}
|
||
|
|
||
|
[Symbol.iterator]() {
|
||
|
return this._list[Symbol.iterator]();
|
||
|
}
|
||
|
}
|
||
|
|
||
|
module.exports = PostList;
|