szurubooru/client/js/models/post_list.js

34 lines
674 B
JavaScript
Raw Normal View History

'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;