Assessor_2.0/server/import-executor.ts

26 lines
785 B
TypeScript

import type { ImportedDataset } from '../src/domain/dataset';
import type { ImportSource } from '../src/domain/import-source';
import { importSource } from '../src/importers/engine';
import { importProfiles } from '../src/profiles/profile-catalog';
import { nodeImportRuntimeAdapters } from './node-import-runtime-adapters';
export interface ImportExecutionRequest {
source: ImportSource;
delimiter?: string;
}
export interface ImportExecutor {
execute(request: ImportExecutionRequest): Promise<ImportedDataset>;
close?(): Promise<void>;
}
export const directImportExecutor: ImportExecutor = {
execute(request) {
return importSource(
request.source,
{ profiles: importProfiles, delimiter: request.delimiter },
nodeImportRuntimeAdapters
);
}
};