UNPKG

confinode

Version:

Node application configuration reader

42 lines 1.46 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const ConfinodeError_1 = require("../../ConfinodeError"); const messages_1 = require("../../messages"); const ConfigDescription_1 = require("../ConfigDescription"); /** * Description of a boolean item. Boolean parser tries also to convert some numbers and strings. */ class BooleanDescription extends ConfigDescription_1.LeafItemDescription { /** * Create the description of a boolean item. * * @param defaultValue - The value to use for inexistent value. */ constructor(defaultValue) { super(defaultValue); } parseValue(value, fileName, keyName) { if (typeof value === 'boolean') { return value; } else if (typeof value === 'number') { if (value === 0) { return false; } else if (value === 1) { return true; } } else if (typeof value === 'string') { if (/^(?:f(?:alse)?|n(?:o)?|0)$/i.test(value)) { return false; } else if (/^(?:t(?:rue)?|y(?:es)?|1)$/i.test(value)) { return true; } } throw new ConfinodeError_1.default('expected', keyName, fileName, new messages_1.Message(messages_1.Level.Error, 'expectedBoolean')); } } exports.default = BooleanDescription; //# sourceMappingURL=BooleanDescription.js.map