importENTITY错误说明改为buffer格式

This commit is contained in:
wenjiarui 2023-01-28 18:05:01 +08:00
parent 97e95a796f
commit 4348b641b0
5 changed files with 8 additions and 6 deletions

2
lib/AspectDict.d.ts vendored
View File

@ -42,7 +42,7 @@ export declare type CommonAspectDict<ED extends EntityDict & BaseEntityDict, Cxt
namespace: string | string[];
locale: string;
}) => Promise<any>;
importEntity: (params: FormData, context: Cxt) => Promise<void | NodeJS.ReadableStream>;
importEntity: (params: FormData, context: Cxt) => Promise<void | ArrayBuffer>;
exportEntity: <T extends keyof ED>(params: {
entity: T;
id: string;

2
lib/port.d.ts vendored
View File

@ -4,7 +4,7 @@ import { Importation, Exportation } from 'oak-domain/lib/types/Port';
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
export declare function registerPorts<ED extends EntityDict>(importations: Importation<ED, keyof ED, any>[], exportations: Exportation<ED, keyof ED, any>[]): void;
export declare function clearPorts(): void;
export declare function importEntity<ED extends EntityDict, Cxt extends AsyncContext<ED>>(params: FormData, context: Cxt): Promise<NodeJS.ReadableStream | void>;
export declare function importEntity<ED extends EntityDict, Cxt extends AsyncContext<ED>>(params: FormData, context: Cxt): Promise<ArrayBuffer | void>;
export declare function exportEntity<ED extends EntityDict, T extends keyof ED, Cxt extends AsyncContext<ED>>(params: {
entity: T;
id: string;

View File

@ -66,7 +66,7 @@ async function importEntity(params, context) {
for (const sheetData of errorSheets) {
xlsx_1.utils.book_append_sheet(errorWorkbook, sheetData.worksheet, sheetData.sheetName);
}
return await (0, xlsx_1.write)(errorWorkbook, { type: 'file' });
return await (0, xlsx_1.write)(errorWorkbook, { type: 'buffer' });
}
// throw new Error('not implement yet');
}

View File

@ -61,7 +61,7 @@ export type CommonAspectDict<ED extends EntityDict & BaseEntityDict, Cxt extends
namespace: string | string[];
locale: string;
}) => Promise<any>;
importEntity: (params: FormData, context: Cxt) => Promise<void | NodeJS.ReadableStream>;
importEntity: (params: FormData, context: Cxt) => Promise<void | ArrayBuffer>;
exportEntity: <T extends keyof ED>(params: {
entity: T;
id: string;

View File

@ -4,6 +4,7 @@ import { Importation, Exportation } from 'oak-domain/lib/types/Port';
import { AsyncContext } from 'oak-domain/lib/store/AsyncRowStore';
import { read, utils, write } from 'xlsx';
import { buffer } from 'stream/consumers';
import { Duplex } from 'stream';
const Importations: Record<string, any> = {};
const Exportations: Record<string, any> = {};
@ -46,7 +47,7 @@ function getExportation<ED extends EntityDict, T extends keyof ED>(id: string) {
export async function importEntity<
ED extends EntityDict,
Cxt extends AsyncContext<ED>
>(params: FormData, context: Cxt): Promise<NodeJS.ReadableStream | void> {
>(params: FormData, context: Cxt): Promise<ArrayBuffer | void> {
const entity = params.get('entity') as keyof ED;
const file = params.get('file') as File;
const id = params.get('id') as string;
@ -57,6 +58,7 @@ export async function importEntity<
const workbook = read(arrayBuffer);
const { SheetNames, Sheets } = workbook;
const errorSheets = [];
for (const sheetName of SheetNames) {
const sheet = Sheets[sheetName];
const dataList = utils.sheet_to_json(
@ -77,7 +79,7 @@ export async function importEntity<
for (const sheetData of errorSheets) {
utils.book_append_sheet(errorWorkbook, sheetData.worksheet, sheetData.sheetName);
}
return await write(errorWorkbook, { type: 'file' });
return await write(errorWorkbook, { type: 'buffer' });
}
// throw new Error('not implement yet');
}