2016-07-21 22:16:45 +00:00
|
|
|
"use strict";
|
2017-04-09 14:29:14 +00:00
|
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
2016-07-23 02:39:42 +00:00
|
|
|
const plugins = require("./lik.plugins");
|
2016-07-21 22:16:45 +00:00
|
|
|
class Stringmap {
|
|
|
|
constructor() {
|
|
|
|
this._stringArray = [];
|
2016-07-23 02:39:42 +00:00
|
|
|
this._triggerUntilTrueFunctionArray = [];
|
2016-07-21 22:16:45 +00:00
|
|
|
}
|
|
|
|
/**
|
|
|
|
* add a string to the Stringmap
|
|
|
|
*/
|
|
|
|
addString(stringArg) {
|
|
|
|
this._stringArray.push(stringArg);
|
2016-07-23 02:39:42 +00:00
|
|
|
this.notifyTrigger();
|
2016-07-21 22:16:45 +00:00
|
|
|
}
|
2016-09-21 13:57:57 +00:00
|
|
|
/**
|
|
|
|
* like addString, but accepts an array of strings
|
|
|
|
*/
|
|
|
|
addStringArray(stringArrayArg) {
|
|
|
|
for (let stringItem of stringArrayArg) {
|
|
|
|
this.addString(stringItem);
|
|
|
|
}
|
|
|
|
}
|
2016-07-21 22:16:45 +00:00
|
|
|
/**
|
|
|
|
* removes a string from Stringmap
|
|
|
|
*/
|
|
|
|
removeString(stringArg) {
|
|
|
|
for (let keyArg in this._stringArray) {
|
2016-07-30 22:54:46 +00:00
|
|
|
if (this._stringArray[keyArg] === stringArg) {
|
2016-07-21 22:16:45 +00:00
|
|
|
this._stringArray.splice(parseInt(keyArg), 1);
|
|
|
|
}
|
|
|
|
}
|
2016-07-23 02:39:42 +00:00
|
|
|
this.notifyTrigger();
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* wipes the Stringmap
|
|
|
|
*/
|
|
|
|
wipe() {
|
|
|
|
this._stringArray = [];
|
|
|
|
this.notifyTrigger();
|
2016-07-21 22:16:45 +00:00
|
|
|
}
|
|
|
|
/**
|
|
|
|
* check if string is in Stringmap
|
|
|
|
*/
|
|
|
|
checkString(stringArg) {
|
2016-09-21 11:44:11 +00:00
|
|
|
return this._stringArray.indexOf(stringArg) !== -1;
|
2016-07-21 22:16:45 +00:00
|
|
|
}
|
2016-07-22 12:59:09 +00:00
|
|
|
/**
|
|
|
|
* checks stringPresence with minimatch
|
|
|
|
*/
|
2016-07-23 02:39:42 +00:00
|
|
|
checkMinimatch(miniMatchStringArg) {
|
|
|
|
let foundMatch = false;
|
|
|
|
for (let stringItem of this._stringArray) {
|
|
|
|
if (plugins.minimatch(stringItem, miniMatchStringArg)) {
|
|
|
|
foundMatch = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return foundMatch;
|
|
|
|
}
|
|
|
|
/**
|
|
|
|
* checks if the Stringmap is empty
|
|
|
|
*/
|
|
|
|
checkIsEmpty() {
|
2016-07-30 22:54:46 +00:00
|
|
|
return (this._stringArray.length === 0);
|
2016-07-23 02:39:42 +00:00
|
|
|
}
|
|
|
|
/**
|
2016-09-21 11:44:11 +00:00
|
|
|
* gets a cloned copy of the current string Array
|
2016-07-23 02:39:42 +00:00
|
|
|
*/
|
2016-09-21 11:44:11 +00:00
|
|
|
getStringArray() {
|
|
|
|
return plugins.lodash.cloneDeep(this._stringArray);
|
2016-07-23 02:39:42 +00:00
|
|
|
}
|
2016-09-21 11:44:11 +00:00
|
|
|
// trigger registering
|
2016-07-23 02:39:42 +00:00
|
|
|
/**
|
|
|
|
* register a new trigger
|
|
|
|
*/
|
|
|
|
registerUntilTrue(functionArg, doFunctionArg) {
|
|
|
|
this._triggerUntilTrueFunctionArray.push(() => {
|
|
|
|
let result = functionArg();
|
2016-07-30 22:54:46 +00:00
|
|
|
if (result === true) {
|
2016-07-23 02:39:42 +00:00
|
|
|
doFunctionArg();
|
|
|
|
}
|
|
|
|
return result;
|
|
|
|
});
|
|
|
|
this.notifyTrigger();
|
2016-07-22 12:59:09 +00:00
|
|
|
}
|
2016-09-21 11:44:11 +00:00
|
|
|
/**
|
|
|
|
* notifies triggers
|
|
|
|
*/
|
|
|
|
notifyTrigger() {
|
|
|
|
let filteredArray = this._triggerUntilTrueFunctionArray.filter((functionArg) => {
|
|
|
|
return !functionArg();
|
|
|
|
});
|
|
|
|
this._triggerUntilTrueFunctionArray = filteredArray;
|
|
|
|
}
|
2016-07-21 22:16:45 +00:00
|
|
|
}
|
|
|
|
exports.Stringmap = Stringmap;
|
2017-10-24 11:19:52 +00:00
|
|
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlrLnN0cmluZ21hcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3RzL2xpay5zdHJpbmdtYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FBd0M7QUFVeEM7SUFHRTtRQUZRLGlCQUFZLEdBQWEsRUFBRSxDQUFBO1FBQzNCLG1DQUE4QixHQUF1QixFQUFFLENBQUE7SUFDL0MsQ0FBQztJQUNqQjs7T0FFRztJQUNILFNBQVMsQ0FBRSxTQUFpQjtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqQyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFFLGNBQXdCO1FBQ3RDLEdBQUcsQ0FBQyxDQUFDLElBQUksVUFBVSxJQUFJLGNBQWMsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQTtRQUM1QixDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFFLFNBQWlCO1FBQzdCLEdBQUcsQ0FBQyxDQUFDLElBQUksTUFBTSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1lBQ3JDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUUsTUFBTSxDQUFFLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFBO1lBQy9DLENBQUM7UUFDSCxDQUFDO1FBQ0QsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFBO0lBQ3RCLENBQUM7SUFFRDs7T0FFRztJQUNILElBQUk7UUFDRixJQUFJLENBQUMsWUFBWSxHQUFHLEVBQUUsQ0FBQTtRQUN0QixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFFLFNBQWlCO1FBQzVCLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQTtJQUNwRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxjQUFjLENBQUUsa0JBQTBCO1FBQ3hDLElBQUksVUFBVSxHQUFZLEtBQUssQ0FBQTtRQUMvQixHQUFHLENBQUMsQ0FBQyxJQUFJLFVBQVUsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQztZQUN6QyxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLFVBQVUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDdEQsVUFBVSxHQUFHLElBQUksQ0FBQTtZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUNELE1BQU0sQ0FBQyxVQUFVLENBQUE7SUFDbkIsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWTtRQUNWLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQ3pDLENBQUM7SUFFRDs7T0FFRztJQUNILGNBQWM7UUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3BELENBQUM7SUFFRCxzQkFBc0I7SUFFdEI7O09BRUc7SUFDSCxpQkFBaUIsQ0FBRSxXQUE2QixFQUFFLGFBQWE7UUFDN0QsSUFBSSxDQUFDLDhCQUE4QixDQUFDLElBQUksQ0FDdEMsR0FBRyxFQUFFO1lBQ0gsSUFBSSxNQUFNLEdBQUcsV0FBVyxFQUFFLENBQUE7WUFDMUIsRUFBRSxDQUFDLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUM7Z0JBQ3BCLGFBQWEsRUFBRSxDQUFBO1lBQ2pCLENBQUM7WUFDRCxNQUFNLENBQUMsTUFBTSxDQUFBO1FBQ2YsQ0FBQyxDQUNGLENBQUE7UUFDRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUE7SUFDdEIsQ0FBQztJQUVEOztPQUVHO0lBQ0ssYUFBYTtRQUNuQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsOEJBQThCLENBQUMsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLEVBQUU7WUFDN0UsTUFBTSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQUE7UUFDRixJQUFJLENBQUMsOEJBQThCLEdBQUcsYUFBYSxDQUFBO0lBQ3JELENBQUM7Q0FFRjtBQXZHRCw4QkF1R0MifQ==
|