UNPKG

spread-diff-patch

Version:
1 lines 4.33 kB
{"version":3,"sources":["../../src/formatter/index.ts","../../src/formatter/html.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-unused-vars */\r\n\r\nimport DiffAOA from \"../DiffAOA\"\r\n\r\n/**\r\n * Represents a Formatter class.\r\n * @template T - The type parameter for the Formatter class.\r\n */\r\nexport default class Formatter<T> {\r\n patch: (actual: string | null, expected: string | null) => string\r\n\r\n /**\r\n * Creates an instance of Formatter.\r\n * @param {Function} patcher - The patcher function used to generate the patched string.\r\n */\r\n constructor(\r\n patcher = (actual: string | null, expected: string | 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 array of arrays.\r\n * @param diffAOA - The diff array of arrays to be formatted.\r\n * @returns The formatted string.\r\n */\r\n format(diffAOA: DiffAOA<T>): string {\r\n throw new Error(\"Method not implemented.\");\r\n }\r\n}","/* eslint-disable @typescript-eslint/no-unused-vars */\r\nimport Formatter from \".\"\r\nimport fs from \"fs\"\r\nimport escapeHTML from \"escape-html\"\r\nimport DiffAOA from \"../DiffAOA\"\r\nimport path from \"path\"\r\n\r\nexport class HTML extends Formatter<string> {\r\n constructor(\r\n patcher = (actual: string | null, expected: string | null) => {\r\n let patchedString = \"\"\r\n if (actual)\r\n patchedString += `<span style=\"background:#ffbbbb;\"><s>${actual}</s></span>`\r\n if (actual && expected)\r\n patchedString += \" \"\r\n if (expected)\r\n patchedString += `<span style=\"background:#bbffbb;\">${expected}</span>`\r\n return patchedString\r\n }\r\n ) {\r\n super(patcher)\r\n this.patch = patcher\r\n }\r\n format(diffAOA: DiffAOA<string>): string {\r\n const script = fs.readFileSync(path.resolve(__dirname, \"./script.js\"), \"utf8\");\r\n const patchedAOA = diffAOA.map((row) => {\r\n return row.map((cell) => {\r\n if (Array.isArray(cell)) {\r\n return this.patch(cell[0], cell[1])\r\n }\r\n return cell;\r\n });\r\n })\r\n return `\r\n <div id=\"spread-diff-patch\">\r\n <style>\r\n * {\r\n box-sizing: border-box;\r\n margin: 0;\r\n padding: 0;\r\n }\r\n </style>\r\n <div id=\"spread-diff-patch-data\" data-raw-diffAOA='${escapeHTML(JSON.stringify(patchedAOA))}'></div>\r\n <script src=\"https://unpkg.com/canvas-datagrid\"></script>\r\n <script>\r\n ${script}\r\n </script>\r\n </div>\r\n `\r\n }\r\n}"],"mappings":";AAQA,IAAqB,YAArB,MAAkC;AAAA;AAAA;AAAA;AAAA;AAAA,EAO9B,YACI,UAAU,CAAC,QAAuB,aAA4B;AAC1D,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,SAA6B;AAChC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AACJ;;;ACpCA,OAAO,QAAQ;AACf,OAAO,gBAAgB;AAEvB,OAAO,UAAU;AAEV,IAAM,OAAN,cAAmB,UAAkB;AAAA,EACxC,YACI,UAAU,CAAC,QAAuB,aAA4B;AAC1D,QAAI,gBAAgB;AACpB,QAAI;AACA,uBAAiB,wCAAwC,MAAM;AACnE,QAAI,UAAU;AACV,uBAAiB;AACrB,QAAI;AACA,uBAAiB,qCAAqC,QAAQ;AAClE,WAAO;AAAA,EACX,GACF;AACE,UAAM,OAAO;AACb,SAAK,QAAQ;AAAA,EACjB;AAAA,EACA,OAAO,SAAkC;AACrC,UAAM,SAAS,GAAG,aAAa,KAAK,QAAQ,WAAW,aAAa,GAAG,MAAM;AAC7E,UAAM,aAAa,QAAQ,IAAI,CAAC,QAAQ;AACpC,aAAO,IAAI,IAAI,CAAC,SAAS;AACrB,YAAI,MAAM,QAAQ,IAAI,GAAG;AACrB,iBAAO,KAAK,MAAM,KAAK,CAAC,GAAG,KAAK,CAAC,CAAC;AAAA,QACtC;AACA,eAAO;AAAA,MACX,CAAC;AAAA,IACL,CAAC;AACD,WAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iEASkD,WAAW,KAAK,UAAU,UAAU,CAAC,CAAC;AAAA;AAAA;AAAA,kBAGrF,MAAM;AAAA;AAAA;AAAA;AAAA,EAIpB;AACJ;","names":[]}