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
6.2 KiB
1 line
6.2 KiB
{"version":3,"sources":["../../src/bin/cli.ts","../../src/index.ts","../../src/config.ts","../../src/workbook.ts"],"sourcesContent":["#! /usr/bin/env node\nimport { writeFile } from \"node:fs/promises\";\nimport { build } from \"src/index\";\n\nconst [action = \"build\", ...args] = process.argv.slice(2);\n\nconst readStdin = async (bufferSize?: number): Promise<Buffer> => {\n return new Promise((resolve) => {\n const buffers: Buffer[] = [];\n process.stdin.on(\"readable\", () => {\n const read = process.stdin.read();\n if (read) {\n buffers.push(read);\n }\n });\n process.stdin.on(\"end\", () => {\n resolve(Buffer.concat(buffers, bufferSize));\n });\n });\n};\n\nconst main = async () => {\n switch (action) {\n case \"build\": {\n const stdin = JSON.parse((await readStdin()).toString(\"utf8\"));\n const result = build(stdin);\n await writeFile(args[0] || `${process.cwd()}/out.xlsx`, result);\n break;\n }\n default:\n console.log(\"Sorry, that is not something I know how to do.\");\n }\n process.exit(0);\n};\n\nmain();\n","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","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":";;;;;;;;;;;;;;;;;;;;;;;;;;AACA,sBAA0B;;;ACD1B,IAAAA,eAcO;;;ACdP,SAAoB;AACpB,kBAAuB;AAAA,IAEvB,oBAAO,EAAE;;;ACDF,IAAM,WAAN,MAAuC;AAAA,EAC5C,SAAoC,CAAC;AAAA,EACrC,aAAuB,CAAC;AAC1B;;;AF0EO,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;;;ADjGA,IAAM,CAAC,SAAS,SAAS,GAAG,IAAI,IAAI,QAAQ,KAAK,MAAM,CAAC;AAExD,IAAM,YAAY,OAAO,eAAyC;AAChE,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC9B,UAAM,UAAoB,CAAC;AAC3B,YAAQ,MAAM,GAAG,YAAY,MAAM;AACjC,YAAMC,QAAO,QAAQ,MAAM,KAAK;AAChC,UAAIA,OAAM;AACR,gBAAQ,KAAKA,KAAI;AAAA,MACnB;AAAA,IACF,CAAC;AACD,YAAQ,MAAM,GAAG,OAAO,MAAM;AAC5B,cAAQ,OAAO,OAAO,SAAS,UAAU,CAAC;AAAA,IAC5C,CAAC;AAAA,EACH,CAAC;AACH;AAEA,IAAM,OAAO,YAAY;AACvB,UAAQ,QAAQ;AAAA,IACd,KAAK,SAAS;AACZ,YAAM,QAAQ,KAAK,OAAO,MAAM,UAAU,GAAG,SAAS,MAAM,CAAC;AAC7D,YAAM,SAAS,MAAM,KAAK;AAC1B,gBAAM,2BAAU,KAAK,CAAC,KAAK,GAAG,QAAQ,IAAI,CAAC,aAAa,MAAM;AAC9D;AAAA,IACF;AAAA,IACA;AACE,cAAQ,IAAI,gDAAgD;AAAA,EAChE;AACA,UAAQ,KAAK,CAAC;AAChB;AAEA,KAAK;","names":["import_xlsx","read"]} |