narrative-studio-sdk
Version:
Narrative SDK for building apps on the Narrative Studio
34 lines (33 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.registerFunction = registerFunction;
exports.getFunctionById = getFunctionById;
exports.resolveTransformRuleFunctions = resolveTransformRuleFunctions;
const functionMap = new Map();
function registerFunction(id, fn) {
functionMap.set(id, fn);
}
function getFunctionById(id) {
return functionMap.get(id);
}
function resolveTransformRuleFunctions(rules) {
return rules.map((rule) => {
const resolved = { ...rule };
if (typeof resolved.transformToTarget === 'string') {
const fn = getFunctionById(resolved.transformToTarget);
if (fn)
resolved.transformToTarget = fn;
}
if (typeof resolved.transformToSource === 'string') {
const fn = getFunctionById(resolved.transformToSource);
if (fn)
resolved.transformToSource = fn;
}
if (typeof resolved.merge === 'string') {
const fn = getFunctionById(resolved.merge);
if (fn)
resolved.merge = fn;
}
return resolved;
});
}