'use strict'; const defaultValue = require("default-value"); const createEventEmitter = require("create-event-emitter"); const pruneArray = require("./prune-array"); const clampZero = require("./clamp-zero"); module.exports = function createPasteStore(options = {}) { let pastes = []; let counter = 0; let pasteLimit = defaultValue(options.pasteLimit, 250); return createEventEmitter({ add: function addPaste(pasteData) { let paste = Object.assign({ counter: counter++ }, pasteData); pastes.push(paste); this.emit("added", paste); pruneArray(pastes, pasteLimit); }, since: function getPastesSince(counter) { return pastes.filter((paste) => { return (paste.counter > counter); }); }, all: function getAllPastes() { return pastes; }, last: function getLastPastes(count) { return pastes.slice(clampZero(pastes.length - count)); } }); };