UNPKG

@tsed/schema-formio

Version:

Transform Ts.ED Schema & JsonSchema to a valid Formio schema

28 lines (27 loc) 782 B
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 }); }