spread-diff-patch
Version:
Diff & patch SpreadSheet files
1 lines • 2.41 kB
Source Map (JSON)
{"version":3,"sources":["../../src/formatter/workbook.ts"],"sourcesContent":["import { WorkBook, utils } from \"xlsx\";\r\nimport DiffAOA from \"../DiffAOA\";\r\n\r\n/**\r\n * Represents a formatter for a workbook.\r\n * @template T - The type of data in the workbook.\r\n */\r\nexport class WorkbookFormatter<T> {\r\n patch: (actual: T | null, expected: T | null) => string\r\n\r\n /**\r\n * Creates a new instance of WorkbookFormatter.\r\n * @param patcher - A function that generates the patch string for a given actual and expected value.\r\n */\r\n constructor(\r\n patcher = (actual: T | null, expected: T | null) => {\r\n let patchedString = \"\"\r\n if (actual)\r\n patchedString += `[-][${actual}]`\r\n if (actual && expected)\r\n patchedString += \" \"\r\n if (expected)\r\n patchedString += `[+][${expected}]`\r\n return patchedString\r\n }\r\n ) {\r\n this.patch = patcher\r\n }\r\n\r\n /**\r\n * Formats the diff sheets of the workbook.\r\n * @param diffSheets - An object representing the diff sheets.\r\n * @returns The formatted workbook.\r\n */\r\n format(diffSheets: { [sheet: string]: DiffAOA<T> }): WorkBook {\r\n const diffWorkBook = utils.book_new()\r\n for (const sheet in diffSheets) {\r\n const patchedAOA = diffSheets[sheet].map((row) => {\r\n return row.map((cell) => Array.isArray(cell) ? this.patch(cell[0], cell[1]) : cell)\r\n })\r\n const ws = utils.aoa_to_sheet(patchedAOA)\r\n utils.book_append_sheet(diffWorkBook, ws, sheet)\r\n }\r\n return diffWorkBook\r\n }\r\n}\r\n"],"mappings":";AAAA,SAAmB,aAAa;AAOzB,IAAM,oBAAN,MAA2B;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9B,YACI,UAAU,CAAC,QAAkB,aAAuB;AAChD,QAAI,gBAAgB;AACpB,QAAI;AACA,uBAAiB,OAAO,MAAM;AAClC,QAAI,UAAU;AACV,uBAAiB;AACrB,QAAI;AACA,uBAAiB,OAAO,QAAQ;AACpC,WAAO;AAAA,EACX,GACF;AACE,SAAK,QAAQ;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,OAAO,YAAuD;AAC1D,UAAM,eAAe,MAAM,SAAS;AACpC,eAAW,SAAS,YAAY;AAC5B,YAAM,aAAa,WAAW,KAAK,EAAE,IAAI,CAAC,QAAQ;AAC9C,eAAO,IAAI,IAAI,CAAC,SAAS,MAAM,QAAQ,IAAI,IAAI,KAAK,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,IAAI;AAAA,MACtF,CAAC;AACD,YAAM,KAAK,MAAM,aAAa,UAAU;AACxC,YAAM,kBAAkB,cAAc,IAAI,KAAK;AAAA,IACnD;AACA,WAAO;AAAA,EACX;AACJ;","names":[]}