UNPKG

@push.rocks/lik

Version:

Provides a collection of lightweight helpers and utilities for Node.js projects.

106 lines 5.96 kB
import * as plugins from './classes.plugins.js'; export class Stringmap { _stringArray = []; _triggerUntilTrueFunctionArray = []; constructor() { } /** * add a string to the Stringmap */ addString(stringArg) { this._stringArray.push(stringArg); this.notifyTrigger(); } /** * like addString, but accepts an array of strings */ addStringArray(stringArrayArg) { for (const stringItem of stringArrayArg) { this.addString(stringItem); } } /** * removes a string from Stringmap */ removeString(stringArg) { this._stringArray = this._stringArray.filter(s => s !== stringArg); this.notifyTrigger(); } /** * wipes the Stringmap */ wipe() { this._stringArray = []; this.notifyTrigger(); } /** * check if string is in Stringmap */ checkString(stringArg) { return this._stringArray.indexOf(stringArg) !== -1; } /** * checks stringPresence with minimatch */ checkMinimatch(miniMatchStringArg) { const smartMatchInstance = new plugins.smartmatch.SmartMatch(miniMatchStringArg); let foundMatch = false; for (const stringItem of this._stringArray) { if (smartMatchInstance.match(stringItem)) { foundMatch = true; } } return foundMatch; } /** * checks if the Stringmap is empty */ checkIsEmpty() { return this._stringArray.length === 0; } /** * gets a cloned copy of the current string Array */ getStringArray() { const returnArray = []; for (const stringItem of this._stringArray) { returnArray.push(stringItem); } return returnArray; } // trigger registering /** * register a new trigger */ registerUntilTrue(functionArg, callbackArg) { const trueDeferred = plugins.smartpromise.defer(); this._triggerUntilTrueFunctionArray.push(() => { const result = functionArg(this.getStringArray()); if (result === true) { if (callbackArg) { callbackArg(); } trueDeferred.resolve(); } return result; }); this.notifyTrigger(); return trueDeferred.promise; } /** * notifies triggers */ notifyTrigger() { const filteredArray = this._triggerUntilTrueFunctionArray.filter((functionArg) => { return !functionArg(); }); this._triggerUntilTrueFunctionArray = filteredArray; } /** * destroys the Stringmap, clearing all strings and pending triggers */ destroy() { this._stringArray = []; this._triggerUntilTrueFunctionArray = []; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xhc3Nlcy5zdHJpbmdtYXAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9jbGFzc2VzLnN0cmluZ21hcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLHNCQUFzQixDQUFDO0FBUWhELE1BQU0sT0FBTyxTQUFTO0lBQ1osWUFBWSxHQUFhLEVBQUUsQ0FBQztJQUM1Qiw4QkFBOEIsR0FBdUIsRUFBRSxDQUFDO0lBQ2hFLGdCQUFlLENBQUM7SUFDaEI7O09BRUc7SUFDSCxTQUFTLENBQUMsU0FBaUI7UUFDekIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWMsQ0FBQyxjQUF3QjtRQUNyQyxLQUFLLE1BQU0sVUFBVSxJQUFJLGNBQWMsRUFBRSxDQUFDO1lBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNILFlBQVksQ0FBQyxTQUFpQjtRQUM1QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1FBQ25FLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUFJO1FBQ0YsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLFdBQVcsQ0FBQyxTQUFpQjtRQUNsQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JELENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWMsQ0FBQyxrQkFBMEI7UUFDOUMsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDakYsSUFBSSxVQUFVLEdBQVksS0FBSyxDQUFDO1FBQ2hDLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNDLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFLENBQUM7Z0JBQ3pDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDcEIsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQzNDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0IsQ0FBQztRQUNELE9BQU8sV0FBVyxDQUFDO0lBQ3JCLENBQUM7SUFFRCxzQkFBc0I7SUFFdEI7O09BRUc7SUFDSSxpQkFBaUIsQ0FBQyxXQUE2QixFQUFFLFdBQXVCO1FBQzdFLE1BQU0sWUFBWSxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDNUMsTUFBTSxNQUFNLEdBQUcsV0FBVyxDQUFDLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDO1lBQ2xELElBQUksTUFBTSxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNwQixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixXQUFXLEVBQUUsQ0FBQztnQkFDaEIsQ0FBQztnQkFDRCxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDekIsQ0FBQztZQUNELE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3JCLE9BQU8sWUFBWSxDQUFDLE9BQU8sQ0FBQztJQUM5QixDQUFDO0lBRUQ7O09BRUc7SUFDSyxhQUFhO1FBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyw4QkFBOEIsQ0FBQyxNQUFNLENBQUMsQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUMvRSxPQUFPLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsOEJBQThCLEdBQUcsYUFBYSxDQUFDO0lBQ3RELENBQUM7SUFFRDs7T0FFRztJQUNJLE9BQU87UUFDWixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsOEJBQThCLEdBQUcsRUFBRSxDQUFDO0lBQzNDLENBQUM7Q0FDRiJ9