@tsed/schema-formio
Version:
Transform Ts.ED Schema & JsonSchema to a valid Formio schema
28 lines (27 loc) • 782 B
JavaScript
import { isArrowFn } from "@tsed/core";
import { Component } from "./component.js";
function sanitize(customConditional) {
const str = customConditional.toString();
const [signature, ...fn] = str.split("=>");
let content = fn.join("=>");
if (!signature.includes("{")) {
content = content.replace(new RegExp(`${signature.trim()}.`, "gi"), "");
}
return `show = ${content.trim()}`;
}
/**
* Adds custom conditional rule to display or not the input form.
* @decorator
* @formio
* @property
* @schema
* @param customConditional
*/
export function CustomConditional(customConditional) {
if (isArrowFn(customConditional)) {
customConditional = sanitize(customConditional);
}
return Component({
customConditional
});
}