UNPKG

n8n-nodes-node-inspector

Version:

Exposes an API endpoint to list all registered n8n nodes with their properties.

56 lines (55 loc) 1.99 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getFilteredNodes = void 0; const typedi_1 = require("typedi"); async function getFilteredNodes(filter) { try { const nodeTypesInstance = typedi_1.Container.get('NodeTypes'); const allNodeTypes = nodeTypesInstance.getAll(); const nodes = allNodeTypes.map((nodeType) => { const description = nodeType.description; if (!description) { return { name: nodeType.type, displayName: 'N/A (No description)', type: determineNodeType(nodeType.type), version: 'N/A', description: 'Node description unavailable.', inputs: [], outputs: [], credentials: [], properties: [], }; } return { name: nodeType.type, displayName: description.displayName, type: determineNodeType(nodeType.type), version: description.version, description: description.description, inputs: description.inputs || [], outputs: description.outputs || [], credentials: description.credentials || [], properties: description.properties, }; }); // Apply filter if (filter === 'community') { return nodes.filter(node => node.type === 'community'); } return nodes; } catch (error) { throw new Error(`Failed to retrieve nodes: ${error}`); } } exports.getFilteredNodes = getFilteredNodes; function determineNodeType(name) { if (name.startsWith('n8n-nodes-base.')) return 'core'; if (name.startsWith('n8n-nodes-')) return 'core-contrib'; if (name.startsWith('@')) return 'community'; return 'custom'; }