12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455 |
- const Chainable = require('./Chainable');
- module.exports = class extends Chainable {
- constructor(parent) {
- super(parent);
- this.store = new Set();
- }
- add(value) {
- this.store.add(value);
- return this;
- }
- prepend(value) {
- this.store = new Set([value, ...this.store]);
- return this;
- }
- clear() {
- this.store.clear();
- return this;
- }
- delete(value) {
- this.store.delete(value);
- return this;
- }
- values() {
- return [...this.store];
- }
- has(value) {
- return this.store.has(value);
- }
- merge(arr) {
- this.store = new Set([...this.store, ...arr]);
- return this;
- }
- when(
- condition,
- whenTruthy = Function.prototype,
- whenFalsy = Function.prototype,
- ) {
- if (condition) {
- whenTruthy(this);
- } else {
- whenFalsy(this);
- }
- return this;
- }
- };
|