ts-flex-query
Version:
Flexible and type-safe data queries
19 lines • 1.1 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.customFunc = customFunc;
exports.func = func;
const lodash_1 = require("lodash");
const function_application_1 = require("../../expressions/function-application");
const main_1 = require("../../functions/main");
const utils_1 = require("../../helpers/utils");
const basic_1 = require("../basic");
const flattenedFunctionContainers = (0, utils_1.createObjectFromArray)((0, lodash_1.flatten)(Object
.entries(main_1.publicFunctionContainers)
.map(([containerKey, container]) => (0, main_1.getContainerFunctionKeys)(container).map((funcKey) => ({ containerKey, funcKey })))), (x) => x.funcKey, (x) => x.containerKey);
function customFunc(container, member, ...args) {
return (0, basic_1.apply)((input) => new function_application_1.FunctionApplicationExpression(container, member, args.map((selector) => selector.instantiate(input))));
}
function func(key, ...args) {
return customFunc(main_1.publicFunctionContainers[flattenedFunctionContainers[key]], key, ...args);
}
//# sourceMappingURL=func.js.map