n8n
Version:
n8n Workflow Automation Tool
35 lines • 1.67 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.synthesizeMcpRegistryTypeDef = synthesizeMcpRegistryTypeDef;
const workflow_sdk_1 = require("@n8n/workflow-sdk");
function synthesizeMcpRegistryTypeDef(description) {
const visibleDescription = {
...description,
properties: description.properties.filter((property) => property.type !== 'hidden'),
};
if (!isSdkNodeTypeDescription(visibleDescription)) {
throw new Error(`Cannot synthesize MCP registry type definition for ${description.name}`);
}
return (0, workflow_sdk_1.generateNodeTypeFile)(visibleDescription);
}
function isSdkNodeTypeDescription(description) {
return (Array.isArray(description.group) &&
Array.isArray(description.properties) &&
typeof description.inputs !== 'string' &&
typeof description.outputs !== 'string' &&
hasSdkConnections(description.inputs) &&
hasSdkConnections(description.outputs) &&
hasSdkCredentials(description.credentials));
}
function hasSdkConnections(connections) {
return (Array.isArray(connections) &&
connections.every((connection) => typeof connection === 'string' ||
(typeof connection.type === 'string' &&
(connection.displayName === undefined || typeof connection.displayName === 'string'))));
}
function hasSdkCredentials(credentials) {
return (credentials === undefined ||
credentials.every((credential) => typeof credential.name === 'string' &&
(credential.required === undefined || typeof credential.required === 'boolean')));
}
//# sourceMappingURL=synthesize-type-def.js.map