function MediaStorage() { this.medias = []; this.oldest = null; this.newest = null; } MediaStorage.prototype.pushAll = function(arr) { for (let i of arr) { this.medias.push(i); this.oldest = !this.oldest || this.oldest.date.getTime() < i.date.getTime() ? i : this.oldest; this.newest = !this.newest || this.newest.date.getTime() > i.date.getTime() ? i : this.newest; } } MediaStorage.Instance = new MediaStorage(); function Media(data) { this.date = new Date(data.date); this.md5sum = data.md5sum; this.path = data.path; this.meta = data.meta || {}; this.tags = data.tags || []; this.thumbnail = data.thumbnail; }