forked from zhurui/management
56 lines
846 B
JavaScript
56 lines
846 B
JavaScript
|
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;
|
||
|
}
|
||
|
};
|