wildboar-context
Version:
Library for constructing context objects for pure functional programming.
58 lines • 1.86 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const tslib_1 = require("tslib");
const Plugin_1 = tslib_1.__importDefault(require("../Plugin"));
const PluginKind_1 = tslib_1.__importDefault(require("../PluginKind"));
const events_1 = require("events");
const lodash_1 = tslib_1.__importDefault(require("lodash"));
class ConfigurationPlugin extends Plugin_1.default {
constructor() {
super(...arguments);
this.kind = PluginKind_1.default.ConfigurationPlugin;
this.events = new events_1.EventEmitter();
}
updateValues(loadedValues) {
this.values = lodash_1.default.defaultsDeep(loadedValues, this.defaults);
this.events.emit("loaded");
}
dump() {
return JSON.stringify(this.values);
}
static convertStringToBoolean(str) {
if (/^\s*1\s*$/i.test(str))
return true;
if (/^\s*0\s*$/i.test(str))
return false;
if (/^\s*\+\s*$/i.test(str))
return true;
if (/^\s*\-\s*$/i.test(str))
return false;
return undefined;
}
static convertStringToNumber(str) {
try {
const ret = Number(str);
if (Number.isNaN(ret))
return undefined;
return ret;
}
catch (e) {
return undefined;
}
}
static convertStringToInteger(str) {
try {
const ret = Number.parseInt(str, 10);
if (Number.isNaN(ret))
return undefined;
if (!Number.isSafeInteger(ret))
return undefined;
return ret;
}
catch (e) {
return undefined;
}
}
}
exports.default = ConfigurationPlugin;
//# sourceMappingURL=ConfigurationPlugin.js.map