UNPKG

jsm-core

Version:
40 lines (39 loc) 1.25 kB
import * as excelJS from "exceljs"; import { BaseService } from "../../common/classes/base.service"; export type ExporterMapper<T = any> = (items: T) => any; export type ExportItemsConfig<D> = { exportDataCallback: (items: D[], edge: Record<string, any>, { tLabel, tSystem, }: { tLabel: (string: string) => string; tSystem: (string: string) => string; }) => Promise<Exporter>; }; export default class Exporter extends BaseService { private _createdAt; private _workbook; private _sheets; private _last_sheet; private _mapper?; private _data; creator: string; lastModifiedBy: string; constructor(); setWorksheet(name: string, options?: Partial<excelJS.AddWorksheetOptions>): this; addData<T extends string, D = any>(columns: { [K in T]: Partial<excelJS.Column> & { key?: K; }; } | (() => { [K in T]: Partial<excelJS.Column> & { key?: K; }; }), data: D[], mapper: (item: D) => { [Key in T]: unknown; }): void; setLabels(sheetName: string, labels: { [f: string]: { label: string; value: any; }; }): void; saveToFile(filename: string): Promise<void>; }