Use Node XLSX reader in campaign import tests
This commit is contained in:
@@ -4,6 +4,7 @@ type XlsxWorkbookSheet = {
|
|||||||
data: unknown[][];
|
data: unknown[][];
|
||||||
};
|
};
|
||||||
type XlsxWorkbookReader = (input: ArrayBuffer) => Promise<XlsxWorkbookSheet[]>;
|
type XlsxWorkbookReader = (input: ArrayBuffer) => Promise<XlsxWorkbookSheet[]>;
|
||||||
|
type RawXlsxWorkbookReader = (input: unknown) => Promise<XlsxWorkbookSheet[]>;
|
||||||
|
|
||||||
export type ImportFieldDefinition = {
|
export type ImportFieldDefinition = {
|
||||||
name: string;
|
name: string;
|
||||||
@@ -210,6 +211,15 @@ async function loadXlsxWorkbookReader(): Promise<XlsxWorkbookReader> {
|
|||||||
const module = await import("read-excel-file/browser");
|
const module = await import("read-excel-file/browser");
|
||||||
return module.default as XlsxWorkbookReader;
|
return module.default as XlsxWorkbookReader;
|
||||||
}
|
}
|
||||||
|
const globals = globalThis as typeof globalThis & {
|
||||||
|
Buffer?: { from(input: ArrayBuffer): unknown };
|
||||||
|
process?: { versions?: { node?: string } };
|
||||||
|
};
|
||||||
|
if (globals.process?.versions?.node && globals.Buffer?.from) {
|
||||||
|
const dynamicImport = new Function("specifier", "return import(specifier)") as (specifier: string) => Promise<{ default: RawXlsxWorkbookReader }>;
|
||||||
|
const module = await dynamicImport("read-excel-file/node");
|
||||||
|
return (input: ArrayBuffer) => module.default(globals.Buffer!.from(input));
|
||||||
|
}
|
||||||
const module = await import("read-excel-file/universal");
|
const module = await import("read-excel-file/universal");
|
||||||
return module.default as XlsxWorkbookReader;
|
return module.default as XlsxWorkbookReader;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user