n8n
Version:
n8n Workflow Automation Tool
45 lines • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findWorkflowToolWorkflows = findWorkflowToolWorkflows;
exports.findWorkflowToolWorkflow = findWorkflowToolWorkflow;
exports.normalizeWorkflowToolRefs = normalizeWorkflowToolRefs;
const typeorm_1 = require("@n8n/typeorm");
async function findWorkflowToolWorkflows(workflowRepository, workflowNames, projectId) {
const uniqueNames = [...new Set(workflowNames)];
if (uniqueNames.length === 0)
return new Map();
const workflows = await workflowRepository.find({
where: { name: (0, typeorm_1.In)(uniqueNames), shared: { projectId } },
select: ['id', 'name', 'nodes'],
});
return new Map(workflows.map((workflow) => [workflow.name, workflow]));
}
async function findWorkflowToolWorkflow(workflowRepository, workflowName, projectId) {
return await workflowRepository.findOne({
where: { name: workflowName, shared: { projectId } },
relations: ['shared'],
});
}
async function normalizeWorkflowToolRefs(workflowRepository, tools, projectId) {
const refs = (tools ?? []).filter((tool) => tool.type === 'workflow');
if (refs.length === 0)
return;
const values = [...new Set(refs.map((ref) => ref.workflow))];
const workflows = await workflowRepository.find({
where: [
{ name: (0, typeorm_1.In)(values), shared: { projectId } },
{ id: (0, typeorm_1.In)(values), shared: { projectId } },
],
select: ['id', 'name'],
});
const projectNames = new Set(workflows.map((workflow) => workflow.name));
const idToName = new Map(workflows.map((workflow) => [workflow.id, workflow.name]));
for (const ref of refs) {
if (projectNames.has(ref.workflow))
continue;
const name = idToName.get(ref.workflow);
if (name)
ref.workflow = name;
}
}
//# sourceMappingURL=workflow-tool-workflow-resolver.js.map