mirror of
https://github.com/Abdulazizzn/n8n-enterprise-unlocked.git
synced 2025-12-21 03:42:16 +00:00
fix(core): Handle versioned custom nodes correctly (#5313)
This commit is contained in:
committed by
GitHub
parent
309c995364
commit
59f5c4221e
@@ -1,7 +1,7 @@
|
|||||||
import * as path from 'path';
|
import * as path from 'path';
|
||||||
import { readFile } from 'fs/promises';
|
import { readFile } from 'fs/promises';
|
||||||
import glob from 'fast-glob';
|
import glob from 'fast-glob';
|
||||||
import { jsonParse, LoggerProxy as Logger } from 'n8n-workflow';
|
import { jsonParse, getVersionedNodeTypeAll, LoggerProxy as Logger } from 'n8n-workflow';
|
||||||
import type {
|
import type {
|
||||||
CodexData,
|
CodexData,
|
||||||
DocumentationLink,
|
DocumentationLink,
|
||||||
@@ -133,7 +133,9 @@ export abstract class DirectoryLoader {
|
|||||||
version: nodeVersion,
|
version: nodeVersion,
|
||||||
});
|
});
|
||||||
|
|
||||||
this.types.nodes.push(tempNode.description);
|
getVersionedNodeTypeAll(tempNode).forEach(({ description }) => {
|
||||||
|
this.types.nodes.push(description);
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected loadCredentialFromFile(credentialName: string, filePath: string): void {
|
protected loadCredentialFromFile(credentialName: string, filePath: string): void {
|
||||||
|
|||||||
@@ -1395,22 +1395,18 @@ export function getVersionedNodeType(
|
|||||||
object: IVersionedNodeType | INodeType,
|
object: IVersionedNodeType | INodeType,
|
||||||
version?: number,
|
version?: number,
|
||||||
): INodeType {
|
): INodeType {
|
||||||
if (isNodeTypeVersioned(object)) {
|
if ('nodeVersions' in object) {
|
||||||
return (object as IVersionedNodeType).getNodeType(version);
|
return object.getNodeType(version);
|
||||||
}
|
}
|
||||||
return object as INodeType;
|
return object;
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getVersionedNodeTypeAll(object: IVersionedNodeType | INodeType): INodeType[] {
|
export function getVersionedNodeTypeAll(object: IVersionedNodeType | INodeType): INodeType[] {
|
||||||
if (isNodeTypeVersioned(object)) {
|
if ('nodeVersions' in object) {
|
||||||
return Object.values((object as IVersionedNodeType).nodeVersions).map((element) => {
|
return Object.values(object.nodeVersions).map((element) => {
|
||||||
element.description.name = object.description.name;
|
element.description.name = object.description.name;
|
||||||
return element;
|
return element;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return [object as INodeType];
|
return [object];
|
||||||
}
|
|
||||||
|
|
||||||
export function isNodeTypeVersioned(object: IVersionedNodeType | INodeType): boolean {
|
|
||||||
return !!('getNodeType' in object);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ export * from './MessageEventBus';
|
|||||||
export * from './Expression';
|
export * from './Expression';
|
||||||
export * from './ExpressionError';
|
export * from './ExpressionError';
|
||||||
export * from './NodeErrors';
|
export * from './NodeErrors';
|
||||||
|
export * from './NodeHelpers';
|
||||||
export * from './RoutingNode';
|
export * from './RoutingNode';
|
||||||
export * from './Workflow';
|
export * from './Workflow';
|
||||||
export * from './WorkflowActivationError';
|
export * from './WorkflowActivationError';
|
||||||
|
|||||||
Reference in New Issue
Block a user