UNPKG

react-runtime-config

Version:

Provide a typesafe runtime configuration inside a react app

62 lines 4.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.parse = void 0; var types_1 = require("./types"); function parseString(value) { if (typeof value !== "string") { throw new Error("not a string"); } return value; } function parseNumber(value) { if (typeof value === "number" && Number.isFinite(value)) { return value; } if (typeof value === "string") { if (!Number.isFinite(parseFloat(value))) { throw new Error("not a number"); } return parseFloat(value); } throw new Error("not a number"); } function parseBoolean(value) { if (typeof value === "boolean") { return value; } if (typeof value === "string" && ["true", "false"].includes(value.toLowerCase())) { return value === "true"; } throw new Error("not a boolean"); } function parse(value, config) { if (types_1.isStringEnumConfig(config)) { var parsedString = parseString(value); if (!config.enum.includes(parsedString)) { throw new Error(parsedString + " not part of [" + config.enum.map(function (i) { return "\"" + i + "\""; }).join(", ") + "]"); } return parsedString; } if (types_1.isStringConfig(config)) { return parseString(value); } if (types_1.isNumberConfig(config)) { var parsedNumber = parseNumber(value); if (typeof config.min === "number" && parsedNumber < config.min) { throw new Error(parseNumber + " should be greater than " + config.min); } if (typeof config.max === "number" && parsedNumber > config.max) { throw new Error(parseNumber + " should be lower than " + config.max); } return parsedNumber; } if (types_1.isBooleanConfig(config)) { return parseBoolean(value); } if (types_1.isCustomConfig(config)) { return config.parser(value); } throw new Error("unknown config type"); } exports.parse = parse; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyc2Vycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9wYXJzZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLGlDQVFpQjtBQUVqQixTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7S0FDakM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRCxTQUFTLFdBQVcsQ0FBQyxLQUFjO0lBQ2pDLElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDdkQsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxFQUFFO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxFQUFFO1lBQ3ZDLE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7U0FDakM7UUFDRCxPQUFPLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztLQUMxQjtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELFNBQVMsWUFBWSxDQUFDLEtBQWM7SUFDbEMsSUFBSSxPQUFPLEtBQUssS0FBSyxTQUFTLEVBQUU7UUFDOUIsT0FBTyxLQUFLLENBQUM7S0FDZDtJQUNELElBQUksT0FBTyxLQUFLLEtBQUssUUFBUSxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsRUFBRTtRQUNoRixPQUFPLEtBQUssS0FBSyxNQUFNLENBQUM7S0FDekI7SUFDRCxNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsQ0FBQyxDQUFDO0FBQ25DLENBQUM7QUFFRCxTQUFnQixLQUFLLENBQXlCLEtBQWMsRUFBRSxNQUFlO0lBQzNFLElBQUksMEJBQWtCLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDOUIsSUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBaUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsWUFBbUIsQ0FBQyxFQUFFO1lBQzlDLE1BQU0sSUFBSSxLQUFLLENBQUksWUFBWSxzQkFBaUIsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxPQUFJLENBQUMsT0FBRyxFQUFSLENBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBRyxDQUFDLENBQUM7U0FDL0Y7UUFDRCxPQUFPLFlBQVksQ0FBQztLQUNyQjtJQUNELElBQUksc0JBQWMsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMxQixPQUFPLFdBQVcsQ0FBQyxLQUFLLENBQWlDLENBQUM7S0FDM0Q7SUFDRCxJQUFJLHNCQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDMUIsSUFBTSxZQUFZLEdBQUcsV0FBVyxDQUFDLEtBQUssQ0FBaUMsQ0FBQztRQUN4RSxJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBSSxXQUFXLGdDQUEyQixNQUFNLENBQUMsR0FBSyxDQUFDLENBQUM7U0FDeEU7UUFDRCxJQUFJLE9BQU8sTUFBTSxDQUFDLEdBQUcsS0FBSyxRQUFRLElBQUksWUFBWSxHQUFHLE1BQU0sQ0FBQyxHQUFHLEVBQUU7WUFDL0QsTUFBTSxJQUFJLEtBQUssQ0FBSSxXQUFXLDhCQUF5QixNQUFNLENBQUMsR0FBSyxDQUFDLENBQUM7U0FDdEU7UUFDRCxPQUFPLFlBQVksQ0FBQztLQUNyQjtJQUNELElBQUksdUJBQWUsQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUMzQixPQUFPLFlBQVksQ0FBQyxLQUFLLENBQWlDLENBQUM7S0FDNUQ7SUFDRCxJQUFJLHNCQUFjLENBQUMsTUFBTSxDQUFDLEVBQUU7UUFDMUIsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBaUMsQ0FBQztLQUM3RDtJQUNELE1BQU0sSUFBSSxLQUFLLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN6QyxDQUFDO0FBNUJELHNCQTRCQyJ9