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
JavaScript
;
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';
}