UNPKG

@cognigy/rest-api-client

Version:

Cognigy REST-Client

79 lines 2.74 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.buildConfigValidationSchema = exports.knowledgeDescriptorSchema = exports.knowledgeFieldSchema = exports.knowledgeFieldTypes = void 0; const INodeDescriptorSet_1 = require("./INodeDescriptorSet"); exports.knowledgeFieldTypes = [ "text", "rule", "json", "checkbox", "time", "date", "datetime", "select", "xml", "textArray", "chipInput", "toggle", "slider", "number", "daterange", "connection", "condition", "description", ]; exports.knowledgeFieldSchema = { title: "knowledgeFieldSchema", type: "object", additionalProperties: false, properties: Object.assign(Object.assign({}, INodeDescriptorSet_1.nodeFieldSchema.properties), { type: { type: "string", enum: [...exports.knowledgeFieldTypes] }, key: { type: "string", minLength: 1, maxLength: 200 } }), }; const { type, summary, defaultLabel, sections, form } = INodeDescriptorSet_1.nodeDescriptorSchema.properties; exports.knowledgeDescriptorSchema = { title: "knowledgeDescriptorSchema", type: "object", additionalProperties: false, properties: { type, label: defaultLabel, summary, sections, form, fields: { type: "array", items: exports.knowledgeFieldSchema }, }, }; const filterNonConfigFields = ({ type }) => !["description"].includes(type); const buildConfigValidationSchema = (fields) => ({ type: "object", additionalProperties: false, required: (fields || []).filter(filterNonConfigFields).map(({ key }) => key), properties: Object.assign({}, (fields || []).filter(filterNonConfigFields).reduce((result, field) => (Object.assign(Object.assign({}, result), { [field.key]: mapFieldToSchema(field) })), {})), }); exports.buildConfigValidationSchema = buildConfigValidationSchema; const mapFieldToSchema = ({ type, params }) => { switch (type) { case "checkbox": case "toggle": return { type: "boolean" }; case "number": case "slider": return { type: "number" }; case "textArray": case "chipInput": return { type: "array", minLength: (params === null || params === void 0 ? void 0 : params.required) ? 1 : 0, }; case "json": return { type: ["object", "array"], additionalProperties: true, }; default: return { type: "string", minLength: (params === null || params === void 0 ? void 0 : params.required) ? 1 : 0, }; } }; //# sourceMappingURL=IKnowledgeDescriptor.js.map