UNPKG

@nlighten/json-transform-core

Version:

Core types and utilities for handling JSON transformers

56 lines 2.13 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const json_schema_utils_1 = require("@nlighten/json-schema-utils"); const getDefaultValues = (args) => { const defaultValues = {}; if (Array.isArray(args)) { for (let i = 0; i < args.length; i++) { const arg = args[i]; if (arg.default !== undefined) { defaultValues[arg.name] = arg.default; } } } return defaultValues; }; function parseDefinitions(functions, custom) { const result = structuredClone(functions); const aliasedFunctions = {}; for (const f in functions) { const func = result[f]; if (func.aliases) { for (let i = 0; i < func.aliases.length; i++) { const aliased = structuredClone(func); aliased.aliasTo = f; aliasedFunctions[func.aliases[i]] = aliased; } } if (func.outputSchema) { func.parsedOutputSchema = json_schema_utils_1.JSONSchemaUtils.parse(func.outputSchema); } func.defaultValues = getDefaultValues(func.arguments); if (custom) { func.custom = true; } if (Array.isArray(func.subfunctions)) { for (let i = 0; i < func.subfunctions.length; i++) { const schemaOverride = func.subfunctions[i].then.outputSchema ?? func.outputSchema; func.subfunctions[i] = { if: func.subfunctions[i].if, then: { outputSchema: func.outputSchema, ...func.subfunctions[i].then, parsedOutputSchema: schemaOverride && json_schema_utils_1.JSONSchemaUtils.parse(schemaOverride), defaultValues: getDefaultValues(func.subfunctions[i].then.arguments), }, }; } } } for (const f in aliasedFunctions) { result[f] = aliasedFunctions[f]; } return result; } exports.default = parseDefinitions; //# sourceMappingURL=parseDefinitions.js.map