refactor: Overhaul nodes-testing setup - Part 1 (no-changelog) (#14303)

This commit is contained in:
कारतोफ्फेलस्क्रिप्ट™
2025-04-01 10:15:13 +02:00
committed by GitHub
parent f85b851851
commit 73e8d76e13
165 changed files with 3397 additions and 6453 deletions

View File

@@ -0,0 +1,39 @@
import { Service } from '@n8n/di';
import { LazyPackageDirectoryLoader } from 'n8n-core';
import type {
ICredentialType,
INodeType,
IVersionedNodeType,
KnownNodesAndCredentials,
LoadedClass,
} from 'n8n-workflow';
@Service()
export class LoadNodesAndCredentials {
private loader: LazyPackageDirectoryLoader;
readonly known: KnownNodesAndCredentials = { nodes: {}, credentials: {} };
constructor(baseDir: string) {
this.loader = new LazyPackageDirectoryLoader(baseDir);
}
async init() {
await this.loader.loadAll();
this.known.credentials = this.loader.known.credentials;
this.known.nodes = this.loader.known.nodes;
}
recognizesCredential(credentialType: string): boolean {
return credentialType in this.known.credentials;
}
getCredential(credentialType: string): LoadedClass<ICredentialType> {
return this.loader.getCredential(credentialType);
}
getNode(fullNodeType: string): LoadedClass<INodeType | IVersionedNodeType> {
const nodeType = fullNodeType.split('.')[1];
return this.loader.getNode(nodeType);
}
}