You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

1 line
5.6 KiB

{"version":3,"sources":["../src/index.ts","../src/config.ts","../src/helpers.ts","../src/workbook.ts"],"sourcesContent":["import {\n AOA2SheetOpts,\n AutoFilterInfo,\n ColInfo,\n ParsingOptions,\n ProtectInfo,\n Range,\n read,\n readFile,\n RowInfo,\n Sheet2JSONOpts,\n utils,\n write,\n WritingOptions,\n} from \"xlsx\";\nimport \"./config\";\nimport { isString } from \"./helpers\";\nimport { WorkBook } from \"./workbook\";\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const parse = <T = any[]>(mixed: unknown, options: Sheet2JSONOpts & ParsingOptions = {}) => {\n const { dateNF, header = 1, range, blankrows, defval, raw = true, rawNumbers, ...otherOptions } = options;\n const workBook = isString(mixed)\n ? readFile(mixed, { dateNF, raw, ...otherOptions })\n : read(mixed, { dateNF, raw, ...otherOptions });\n return Object.keys(workBook.Sheets).map((name) => {\n const sheet = workBook.Sheets[name]!;\n return {\n name,\n data: utils.sheet_to_json<T>(sheet, {\n dateNF,\n header,\n range: typeof range === \"function\" ? range(sheet) : range,\n blankrows,\n defval,\n raw,\n rawNumbers,\n }),\n };\n });\n};\n\nexport const parseMetadata = (mixed: unknown, options: ParsingOptions = {}) => {\n const workBook = isString(mixed) ? readFile(mixed, options) : read(mixed, options);\n return Object.keys(workBook.Sheets).map((name) => {\n const sheet = workBook.Sheets[name]!;\n return { name, data: sheet[\"!ref\"] ? utils.decode_range(sheet[\"!ref\"]) : null };\n });\n};\n\nexport type WorkSheetOptions = {\n /** Column Info */\n \"!cols\"?: ColInfo[];\n\n /** Row Info */\n \"!rows\"?: RowInfo[];\n\n /** Merge Ranges */\n \"!merges\"?: Range[];\n\n /** Worksheet Protection info */\n \"!protect\"?: ProtectInfo;\n\n /** AutoFilter info */\n \"!autofilter\"?: AutoFilterInfo;\n};\n\nexport type WorkSheet<T = unknown> = {\n name: string;\n data: T[][];\n options: WorkSheetOptions;\n};\n\nexport type BuildOptions = WorkSheetOptions & {\n parseOptions?: AOA2SheetOpts;\n writeOptions?: WritingOptions;\n sheetOptions?: WorkSheetOptions;\n};\n\nexport const build = (\n worksheets: WorkSheet[],\n { parseOptions = {}, writeOptions = {}, sheetOptions = {}, ...otherOptions }: BuildOptions = {},\n): Buffer => {\n const { bookType = \"xlsx\", bookSST = false, type = \"buffer\", ...otherWriteOptions } = writeOptions;\n const legacyOptions = Object.keys(otherOptions).filter((key) => {\n if ([\"!cols\", \"!rows\", \"!merges\", \"!protect\", \"!autofilter\"].includes(key)) {\n console.debug(`Deprecated options['${key}'], please use options.sheetOptions['${key}'] instead.`);\n return true;\n }\n console.debug(`Unknown options['${key}'], please use options.parseOptions / options.writeOptions`);\n return false;\n });\n const workBook = worksheets.reduce<WorkBook>((soFar, { name, data, options = {} }, index) => {\n const sheetName = name || `Sheet_${index}`;\n const sheetData = utils.aoa_to_sheet(data, parseOptions);\n soFar.SheetNames.push(sheetName);\n soFar.Sheets[sheetName] = sheetData;\n Object.assign(soFar.Sheets[sheetName]!, legacyOptions, sheetOptions, options);\n return soFar;\n }, new WorkBook());\n return write(workBook, { bookType, bookSST, type, ...otherWriteOptions });\n};\n\nexport default { parse, parseMetadata, build };\n","import * as fs from \"fs\";\nimport { set_fs } from \"xlsx\";\n\nset_fs(fs);\n","export const isString = (maybeString: unknown): maybeString is string => typeof maybeString === \"string\";\n","import type { WorkSheet, WorkBook as XLSXWorkBook } from \"xlsx\";\n\nexport class WorkBook implements XLSXWorkBook {\n Sheets: Record<string, WorkSheet> = {};\n SheetNames: string[] = [];\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,IAAAA,eAcO;;;ACdP,SAAoB;AACpB,kBAAuB;AAAA,IAEvB,oBAAO,EAAE;;;ACHF,IAAM,WAAW,CAAC,gBAAgD,OAAO,gBAAgB;;;ACEzF,IAAM,WAAN,MAAuC;AAAA,EAC5C,SAAoC,CAAC;AAAA,EACrC,aAAuB,CAAC;AAC1B;;;AHeO,IAAM,QAAQ,CAAY,OAAgB,UAA2C,CAAC,MAAM;AACjG,QAAM,EAAE,QAAQ,SAAS,GAAG,OAAO,WAAW,QAAQ,MAAM,MAAM,YAAY,GAAG,aAAa,IAAI;AAClG,QAAM,WAAW,SAAS,KAAK,QAC3B,uBAAS,OAAO,EAAE,QAAQ,KAAK,GAAG,aAAa,CAAC,QAChD,mBAAK,OAAO,EAAE,QAAQ,KAAK,GAAG,aAAa,CAAC;AAChD,SAAO,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS;AAChD,UAAM,QAAQ,SAAS,OAAO,IAAI;AAClC,WAAO;AAAA,MACL;AAAA,MACA,MAAM,mBAAM,cAAiB,OAAO;AAAA,QAClC;AAAA,QACA;AAAA,QACA,OAAO,OAAO,UAAU,aAAa,MAAM,KAAK,IAAI;AAAA,QACpD;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC;AAAA,IACH;AAAA,EACF,CAAC;AACH;AAEO,IAAM,gBAAgB,CAAC,OAAgB,UAA0B,CAAC,MAAM;AAC7E,QAAM,WAAW,SAAS,KAAK,QAAI,uBAAS,OAAO,OAAO,QAAI,mBAAK,OAAO,OAAO;AACjF,SAAO,OAAO,KAAK,SAAS,MAAM,EAAE,IAAI,CAAC,SAAS;AAChD,UAAM,QAAQ,SAAS,OAAO,IAAI;AAClC,WAAO,EAAE,MAAM,MAAM,MAAM,MAAM,IAAI,mBAAM,aAAa,MAAM,MAAM,CAAC,IAAI,KAAK;AAAA,EAChF,CAAC;AACH;AA+BO,IAAM,QAAQ,CACnB,YACA,EAAE,eAAe,CAAC,GAAG,eAAe,CAAC,GAAG,eAAe,CAAC,GAAG,GAAG,aAAa,IAAkB,CAAC,MACnF;AACX,QAAM,EAAE,WAAW,QAAQ,UAAU,OAAO,OAAO,UAAU,GAAG,kBAAkB,IAAI;AACtF,QAAM,gBAAgB,OAAO,KAAK,YAAY,EAAE,OAAO,CAAC,QAAQ;AAC9D,QAAI,CAAC,SAAS,SAAS,WAAW,YAAY,aAAa,EAAE,SAAS,GAAG,GAAG;AAC1E,cAAQ,MAAM,uBAAuB,GAAG,wCAAwC,GAAG,aAAa;AAChG,aAAO;AAAA,IACT;AACA,YAAQ,MAAM,oBAAoB,GAAG,4DAA4D;AACjG,WAAO;AAAA,EACT,CAAC;AACD,QAAM,WAAW,WAAW,OAAiB,CAAC,OAAO,EAAE,MAAM,MAAM,UAAU,CAAC,EAAE,GAAG,UAAU;AAC3F,UAAM,YAAY,QAAQ,SAAS,KAAK;AACxC,UAAM,YAAY,mBAAM,aAAa,MAAM,YAAY;AACvD,UAAM,WAAW,KAAK,SAAS;AAC/B,UAAM,OAAO,SAAS,IAAI;AAC1B,WAAO,OAAO,MAAM,OAAO,SAAS,GAAI,eAAe,cAAc,OAAO;AAC5E,WAAO;AAAA,EACT,GAAG,IAAI,SAAS,CAAC;AACjB,aAAO,oBAAM,UAAU,EAAE,UAAU,SAAS,MAAM,GAAG,kBAAkB,CAAC;AAC1E;AAEA,IAAO,cAAQ,EAAE,OAAO,eAAe,MAAM;","names":["import_xlsx"]}