n8n
Version:
n8n Workflow Automation Tool
35 lines • 1.47 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.resolveFileReference = resolveFileReference;
exports.getRequiredFileReferences = getRequiredFileReferences;
exports.mapFileReferences = mapFileReferences;
function resolveFileReference(files, reference) {
const matches = files.filter((file) => file.id === reference || file.relativePath === reference || file.fileName === reference);
if (matches.length === 1)
return { status: 'found', file: matches[0] };
if (matches.length === 0)
return { status: 'missing', error: `File "${reference}" not found` };
return {
status: 'ambiguous',
error: `File "${reference}" matches multiple uploaded files. Use the file id or relative path instead.`,
};
}
function getRequiredFileReferences(input) {
if (input.operation === 'search')
return input.files;
if (input.operation === 'read' ||
input.operation === 'csv_query' ||
input.operation === 'csv_profile' ||
input.operation === 'csv_distinct' ||
input.operation === 'csv_aggregate') {
return [input.file];
}
return undefined;
}
function mapFileReferences(files, requestedFiles) {
return requestedFiles?.map((file) => {
const resolvedFile = resolveFileReference(files, file);
return resolvedFile.status === 'found' ? resolvedFile.file.relativePath : file;
});
}
//# sourceMappingURL=file-references.js.map