narrative-studio-sdk
Version:
Narrative SDK for building apps on the Narrative Studio
29 lines (28 loc) • 929 B
JavaScript
const functionMap = new Map();
export function registerFunction(id, fn) {
functionMap.set(id, fn);
}
export function getFunctionById(id) {
return functionMap.get(id);
}
export 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;
});
}