refactor: rename NodeVersionedType to VersionedNodeType and move it to the workflow package (#4443)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2022-10-25 21:33:12 +02:00
committed by GitHub
parent adef6d7083
commit 5c9b40117a
19 changed files with 59 additions and 78 deletions

View File

@@ -1144,7 +1144,7 @@ export interface INodeType {
};
}
export interface INodeVersionedType {
export interface IVersionedNodeType {
nodeVersions: {
[key: number]: INodeType;
};
@@ -1423,7 +1423,7 @@ export type WebhookResponseMode = 'onReceived' | 'lastNode';
export interface INodeTypes {
nodeTypes: INodeTypeData;
init(nodeTypes?: INodeTypeData): Promise<void>;
getAll(): Array<INodeType | INodeVersionedType>;
getAll(): Array<INodeType | IVersionedNodeType>;
getByNameAndVersion(nodeType: string, version?: number): INodeType | undefined;
}
@@ -1436,7 +1436,7 @@ export interface ICredentialTypeData {
export interface INodeTypeData {
[key: string]: {
type: INodeType | INodeVersionedType;
type: INodeType | IVersionedNodeType;
sourcePath: string;
};
}

View File

@@ -30,7 +30,7 @@ import {
INodePropertyModeValidation,
INodePropertyRegexValidation,
INodeType,
INodeVersionedType,
IVersionedNodeType,
IParameterDependencies,
IRunExecutionData,
IWebhookData,
@@ -1379,18 +1379,18 @@ export function mergeNodeProperties(
}
export function getVersionedNodeType(
object: INodeVersionedType | INodeType,
object: IVersionedNodeType | INodeType,
version?: number,
): INodeType {
if (isNodeTypeVersioned(object)) {
return (object as INodeVersionedType).getNodeType(version);
return (object as IVersionedNodeType).getNodeType(version);
}
return object as INodeType;
}
export function getVersionedNodeTypeAll(object: INodeVersionedType | INodeType): INodeType[] {
export function getVersionedNodeTypeAll(object: IVersionedNodeType | INodeType): INodeType[] {
if (isNodeTypeVersioned(object)) {
return Object.values((object as INodeVersionedType).nodeVersions).map((element) => {
return Object.values((object as IVersionedNodeType).nodeVersions).map((element) => {
element.description.name = object.description.name;
return element;
});
@@ -1398,6 +1398,6 @@ export function getVersionedNodeTypeAll(object: INodeVersionedType | INodeType):
return [object as INodeType];
}
export function isNodeTypeVersioned(object: INodeVersionedType | INodeType): boolean {
export function isNodeTypeVersioned(object: IVersionedNodeType | INodeType): boolean {
return !!('getNodeType' in object);
}

View File

@@ -0,0 +1,30 @@
import type { INodeTypeBaseDescription, IVersionedNodeType, INodeType } from './Interfaces';
export class VersionedNodeType implements IVersionedNodeType {
currentVersion: number;
nodeVersions: IVersionedNodeType['nodeVersions'];
description: INodeTypeBaseDescription;
constructor(
nodeVersions: IVersionedNodeType['nodeVersions'],
description: INodeTypeBaseDescription,
) {
this.nodeVersions = nodeVersions;
this.currentVersion = description.defaultVersion ?? this.getLatestVersion();
this.description = description;
}
getLatestVersion() {
return Math.max(...Object.keys(this.nodeVersions).map(Number));
}
getNodeType(version?: number): INodeType {
if (version) {
return this.nodeVersions[version];
} else {
return this.nodeVersions[this.currentVersion];
}
}
}

View File

@@ -15,6 +15,7 @@ export * from './WorkflowActivationError';
export * from './WorkflowDataProxy';
export * from './WorkflowErrors';
export * from './WorkflowHooks';
export * from './VersionedNodeType';
export { LoggerProxy, NodeHelpers, ObservableObject, TelemetryHelpers };
export { deepCopy, jsonParse } from './utils';
export {

View File

@@ -25,7 +25,7 @@ import {
INodeType,
INodeTypeData,
INodeTypes,
INodeVersionedType,
IVersionedNodeType,
IRunExecutionData,
ITaskDataConnections,
IWorkflowBase,
@@ -680,7 +680,7 @@ class NodeTypesClass implements INodeTypes {
return Object.values(this.nodeTypes).map((data) => NodeHelpers.getVersionedNodeType(data.type));
}
getByName(nodeType: string): INodeType | INodeVersionedType | undefined {
getByName(nodeType: string): INodeType | IVersionedNodeType | undefined {
return this.getByNameAndVersion(nodeType);
}