@pexip/signal
Version:
an observer pattern while avoiding boilerplate code. https://en.wikipedia.org/wiki/Signals_and_slots
26 lines (25 loc) • 632 B
JavaScript
export const createBuffer = (size) => {
const buffer = new Array();
return {
[Symbol.iterator]: () => buffer[Symbol.iterator](),
get size() {
return buffer.length;
},
add: value => {
if (size === 0) {
return;
}
if (buffer.length < size) {
buffer.splice(size, 0, value);
}
else {
buffer.shift();
buffer.push(value);
}
},
clear: () => {
buffer.length = 0;
},
entries: () => buffer.entries(),
};
};