UNPKG

@push.rocks/lik

Version:

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

104 lines 5.79 kB
import * as plugins from './lik.plugins.js'; export class Stringmap { constructor() { this._stringArray = []; this._triggerUntilTrueFunctionArray = []; } /** * 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) { for (const keyArg in this._stringArray) { if (this._stringArray[keyArg] === stringArg) { this._stringArray.splice(parseInt(keyArg), 1); } } 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; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLnN0cmluZ21hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5zdHJpbmdtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLE9BQU8sTUFBTSxrQkFBa0IsQ0FBQztBQVE1QyxNQUFNLE9BQU8sU0FBUztJQUdwQjtRQUZRLGlCQUFZLEdBQWEsRUFBRSxDQUFDO1FBQzVCLG1DQUE4QixHQUF1QixFQUFFLENBQUM7SUFDakQsQ0FBQztJQUNoQjs7T0FFRztJQUNILFNBQVMsQ0FBQyxTQUFpQjtRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNsQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLGNBQXdCO1FBQ3JDLEtBQUssTUFBTSxVQUFVLElBQUksY0FBYyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxZQUFZLENBQUMsU0FBaUI7UUFDNUIsS0FBSyxNQUFNLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3RDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsS0FBSyxTQUFTLEVBQUU7Z0JBQzNDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUMvQztTQUNGO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUFDLFNBQWlCO1FBQ2xDLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOztPQUVHO0lBQ0ksY0FBYyxDQUFDLGtCQUEwQjtRQUM5QyxNQUFNLGtCQUFrQixHQUFHLElBQUksT0FBTyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNqRixJQUFJLFVBQVUsR0FBWSxLQUFLLENBQUM7UUFDaEMsS0FBSyxNQUFNLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQzFDLElBQUksa0JBQWtCLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUN4QyxVQUFVLEdBQUcsSUFBSSxDQUFDO2FBQ25CO1NBQ0Y7UUFDRCxPQUFPLFVBQVUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxZQUFZO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRDs7T0FFRztJQUNJLGNBQWM7UUFDbkIsTUFBTSxXQUFXLEdBQWEsRUFBRSxDQUFDO1FBQ2pDLEtBQUssTUFBTSxVQUFVLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtZQUMxQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1NBQzlCO1FBQ0QsT0FBTyxXQUFXLENBQUM7SUFDckIsQ0FBQztJQUVELHNCQUFzQjtJQUV0Qjs7T0FFRztJQUNJLGlCQUFpQixDQUFDLFdBQTZCLEVBQUUsV0FBdUI7UUFDN0UsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsRCxJQUFJLENBQUMsOEJBQThCLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUM1QyxNQUFNLE1BQU0sR0FBRyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDLENBQUM7WUFDbEQsSUFBSSxNQUFNLEtBQUssSUFBSSxFQUFFO2dCQUNuQixJQUFJLFdBQVcsRUFBRTtvQkFDZixXQUFXLEVBQUUsQ0FBQztpQkFDZjtnQkFDRCxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDeEI7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUNyQixPQUFPLFlBQVksQ0FBQyxPQUFPLENBQUM7SUFDOUIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNuQixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDL0UsT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLDhCQUE4QixHQUFHLGFBQWEsQ0FBQztJQUN0RCxDQUFDO0NBQ0YifQ==