UNPKG

firebase-rules-parser

Version:
76 lines 5.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); /** * Convert string and float values into integer. */ const int = (context, closure, self) => { const intWannabe = closure.getValue('value'); if (intWannabe === undefined) { throw new Error(`int() -method did not have an argument.`); } switch (typeof intWannabe) { case 'string': const value = parseInt(intWannabe, 0); if (value === undefined || isNaN(value)) { throw new Error(`Can not conver ${intWannabe} to an integer value.`); } return value; case 'number': return Math.floor(intWannabe); default: throw new Error(`Can not convert type of: ${typeof intWannabe} to an integer.`); } }; /** * Conver string and int values into float. */ const float = (context, closure, self) => { const floatWannabe = closure.getValue('value'); if (floatWannabe === undefined) { throw new Error(`float() -method did not have an argument.`); } switch (typeof floatWannabe) { case 'string': const value = parseFloat(floatWannabe); if (value === undefined || isNaN(value)) { throw new Error(`Can not conver ${floatWannabe} to an float value.`); } return value; case 'number': return floatWannabe; default: throw new Error(`Can not convert type of: ${typeof floatWannabe} to an float.`); } }; /** * Conver string values to boolean */ const bool = (context, closure, self) => { const booleanWannabe = closure.getValue('value'); if (booleanWannabe === undefined) { throw new Error(`bool() -method did not have an argument.`); } if (typeof booleanWannabe === 'string') { return JSON.parse(booleanWannabe); } throw new Error(`Can not convert type of: ${typeof booleanWannabe} to a boolean.`); }; function registerNumberFunctions(closure) { const numberFunctions = { int: { callback: int, argNames: ['value'], }, float: { callback: float, argNames: ['value'], }, bool: { callback: bool, argNames: ['value'], }, }; closure.self = Object.assign({}, closure.self, numberFunctions); } exports.default = registerNumberFunctions; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibnVtYmVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9pbnRlcHJldGVyL3N5c3RlbS9udW1iZXJzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0E7O0dBRUc7QUFDSCxNQUFNLEdBQUcsR0FBRyxDQUFDLE9BQTZCLEVBQUUsT0FBOEIsRUFBRSxJQUFTLEVBQU8sRUFBRTtJQUM1RixNQUFNLFVBQVUsR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzdDLElBQUksVUFBVSxLQUFLLFNBQVMsRUFBRTtRQUM1QixNQUFNLElBQUksS0FBSyxDQUFDLHlDQUF5QyxDQUFDLENBQUM7S0FDNUQ7SUFDRCxRQUFRLE9BQU8sVUFBVSxFQUFFO1FBQ3pCLEtBQUssUUFBUTtZQUNYLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDdEMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsVUFBVSx1QkFBdUIsQ0FBQyxDQUFDO2FBQ3RFO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDWCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFaEM7WUFDRSxNQUFNLElBQUksS0FBSyxDQUFDLDRCQUE0QixPQUFPLFVBQVUsaUJBQWlCLENBQUMsQ0FBQztLQUNuRjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxLQUFLLEdBQUcsQ0FBQyxPQUE2QixFQUFFLE9BQThCLEVBQUUsSUFBVSxFQUFPLEVBQUU7SUFDL0YsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMvQyxJQUFJLFlBQVksS0FBSyxTQUFTLEVBQUU7UUFDOUIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO0tBQzlEO0lBQ0QsUUFBUSxPQUFPLFlBQVksRUFBRTtRQUMzQixLQUFLLFFBQVE7WUFDWCxNQUFNLEtBQUssR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7WUFDdkMsSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTtnQkFDdkMsTUFBTSxJQUFJLEtBQUssQ0FBQyxrQkFBa0IsWUFBWSxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3RFO1lBQ0QsT0FBTyxLQUFLLENBQUM7UUFDZixLQUFLLFFBQVE7WUFDWCxPQUFPLFlBQVksQ0FBQztRQUV0QjtZQUNFLE1BQU0sSUFBSSxLQUFLLENBQUMsNEJBQTRCLE9BQU8sWUFBWSxlQUFlLENBQUMsQ0FBQztLQUNuRjtBQUNILENBQUMsQ0FBQztBQUVGOztHQUVHO0FBQ0gsTUFBTSxJQUFJLEdBQUcsQ0FBQyxPQUE2QixFQUFFLE9BQThCLEVBQUUsSUFBVSxFQUFPLEVBQUU7SUFDOUYsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqRCxJQUFJLGNBQWMsS0FBSyxTQUFTLEVBQUU7UUFDaEMsTUFBTSxJQUFJLEtBQUssQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDO0tBQzdEO0lBQ0QsSUFBSSxPQUFPLGNBQWMsS0FBSyxRQUFRLEVBQUU7UUFDdEMsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0tBQ25DO0lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsT0FBTyxjQUFjLGdCQUFnQixDQUFDLENBQUM7QUFDckYsQ0FBQyxDQUFDO0FBRUYsU0FBd0IsdUJBQXVCLENBQUMsT0FBOEI7SUFDNUUsTUFBTSxlQUFlLEdBQXlEO1FBQzVFLEdBQUcsRUFBRTtZQUNILFFBQVEsRUFBRSxHQUFHO1lBQ2IsUUFBUSxFQUFFLENBQUMsT0FBTyxDQUFDO1NBQ3BCO1FBQ0QsS0FBSyxFQUFFO1lBQ0wsUUFBUSxFQUFFLEtBQUs7WUFDZixRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUM7U0FDcEI7UUFDRCxJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsSUFBSTtZQUNkLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQztTQUNwQjtLQUNGLENBQUM7SUFFRixPQUFPLENBQUMsSUFBSSxxQkFBUSxPQUFPLENBQUMsSUFBSSxFQUFLLGVBQWUsQ0FBRSxDQUFDO0FBQ3pELENBQUM7QUFqQkQsMENBaUJDIn0=