create-merged-coverage-reports 0.3.0 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/bin.js CHANGED
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { createMergedCoverageReports } from "./create-merged-coverage-reports-DTw7ouWj.js";
2
+ import { createMergedCoverageReports } from "./create-merged-coverage-reports-DmjabwNL.js";
3
3
  import { Command } from "commander";
4
4
  import { readPackageUp } from "read-package-up";
5
5
 
@@ -22,8 +22,7 @@ const createProgram = async ({ exitOverride = false } = {}) => {
22
22
  //#endregion
23
23
  //#region src/bin.ts
24
24
  const main = async () => {
25
- const program = await createProgram();
26
- program.parse();
25
+ (await createProgram()).parse();
27
26
  };
28
27
  main().catch((e) => {
29
28
  console.error(e);
@@ -31,4 +30,5 @@ main().catch((e) => {
31
30
  });
32
31
 
33
32
  //#endregion
33
+ export { };
34
34
  //# sourceMappingURL=bin.js.map
package/dist/bin.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"bin.js","names":[],"sources":["../src/lib/cli-program.ts","../src/bin.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { readPackageUp } from \"read-package-up\";\n\nimport { createMergedCoverageReports } from \"./create-merged-coverage-reports\";\n\nexport const createProgram = async ({ exitOverride = false } = {}) => {\n const program = new Command();\n\n if (exitOverride) {\n program.exitOverride();\n }\n\n const packageUpResult = await readPackageUp({ cwd: import.meta.dirname });\n\n if (!packageUpResult) {\n console.error(\"Cannot find package.json\");\n process.exit(1);\n }\n\n const {\n packageJson: { name, version, description },\n } = packageUpResult;\n\n program\n .name(name)\n .description(description ?? \"\")\n .version(version, \"-v, --version\")\n .option(\n \"-c, --coverageFileGlob <glob>\",\n \"Glob to get all json coverage files\",\n )\n .option(\n \"-o, --outputDirectory <dir>\",\n \"Directory where all merged coverage reports\",\n )\n .option(\n \"-r, --reporters <reporters...>\",\n \"Which reporters (either built-in, or custom) to use to generate the merged coverage reports\",\n )\n .action((options) => {\n return createMergedCoverageReports(options);\n });\n\n return program;\n};\n","#!/usr/bin/env node\n\nimport { createProgram } from './lib/cli-program';\n\nconst main = async () => {\n const program = await createProgram();\n\n program.parse();\n};\n\nmain().catch((e) => {\n console.error(e);\n process.exit(1);\n});\n"],"mappings":";;;;;;AAKA,MAAa,gBAAgB,OAAO,EAAE,eAAe,OAAO,GAAG,CAAE,MAAK;CACpE,MAAM,UAAU,IAAI;AAEpB,KAAI,cACF,QAAQ,cAAc;CAGxB,MAAM,kBAAkB,MAAM,cAAc,EAAE,KAAK,OAAO,KAAK,QAAS,EAAC;AAEzE,KAAI,CAAC,iBAAiB;EACpB,QAAQ,MAAM,2BAA2B;EACzC,QAAQ,KAAK,EAAE;CAChB;CAED,MAAM,EACJ,aAAa,EAAE,MAAM,SAAS,aAAa,EAC5C,GAAG;CAEJ,QACG,KAAK,KAAK,CACV,YAAY,eAAe,GAAG,CAC9B,QAAQ,SAAS,gBAAgB,CACjC,OACC,iCACA,sCACD,CACA,OACC,+BACA,8CACD,CACA,OACC,kCACA,8FACD,CACA,OAAO,CAAC,YAAY;AACnB,SAAO,4BAA4B,QAAQ;CAC5C,EAAC;AAEJ,QAAO;AACR;;;;ACxCD,MAAM,OAAO,YAAY;CACvB,MAAM,UAAU,MAAM,eAAe;CAErC,QAAQ,OAAO;AAChB;AAED,MAAM,CAAC,MAAM,CAAC,MAAM;CAClB,QAAQ,MAAM,EAAE;CAChB,QAAQ,KAAK,EAAE;AAChB,EAAC"}
1
+ {"version":3,"file":"bin.js","names":[],"sources":["../src/lib/cli-program.ts","../src/bin.ts"],"sourcesContent":["import { Command } from \"commander\";\nimport { readPackageUp } from \"read-package-up\";\n\nimport { createMergedCoverageReports } from \"./create-merged-coverage-reports\";\n\nexport const createProgram = async ({ exitOverride = false } = {}) => {\n const program = new Command();\n\n if (exitOverride) {\n program.exitOverride();\n }\n\n const packageUpResult = await readPackageUp({ cwd: import.meta.dirname });\n\n if (!packageUpResult) {\n console.error(\"Cannot find package.json\");\n process.exit(1);\n }\n\n const {\n packageJson: { name, version, description },\n } = packageUpResult;\n\n program\n .name(name)\n .description(description ?? \"\")\n .version(version, \"-v, --version\")\n .option(\n \"-c, --coverageFileGlob <glob>\",\n \"Glob to get all json coverage files\",\n )\n .option(\n \"-o, --outputDirectory <dir>\",\n \"Directory where all merged coverage reports\",\n )\n .option(\n \"-r, --reporters <reporters...>\",\n \"Which reporters (either built-in, or custom) to use to generate the merged coverage reports\",\n )\n .action((options) => {\n return createMergedCoverageReports(options);\n });\n\n return program;\n};\n","#!/usr/bin/env node\n\nimport { createProgram } from './lib/cli-program';\n\nconst main = async () => {\n const program = await createProgram();\n\n program.parse();\n};\n\nmain().catch((e) => {\n console.error(e);\n process.exit(1);\n});\n"],"mappings":";;;;;;AAKA,MAAa,gBAAgB,OAAO,EAAE,eAAe,UAAU,EAAE,KAAK;CACpE,MAAM,UAAU,IAAI,SAAS;AAE7B,KAAI,aACF,SAAQ,cAAc;CAGxB,MAAM,kBAAkB,MAAM,cAAc,EAAE,KAAK,OAAO,KAAK,SAAS,CAAC;AAEzE,KAAI,CAAC,iBAAiB;AACpB,UAAQ,MAAM,2BAA2B;AACzC,UAAQ,KAAK,EAAE;;CAGjB,MAAM,EACJ,aAAa,EAAE,MAAM,SAAS,kBAC5B;AAEJ,SACG,KAAK,KAAK,CACV,YAAY,eAAe,GAAG,CAC9B,QAAQ,SAAS,gBAAgB,CACjC,OACC,iCACA,sCACD,CACA,OACC,+BACA,8CACD,CACA,OACC,kCACA,8FACD,CACA,QAAQ,YAAY;AACnB,SAAO,4BAA4B,QAAQ;GAC3C;AAEJ,QAAO;;;;;ACvCT,MAAM,OAAO,YAAY;AAGvB,EAFgB,MAAM,eAAe,EAE7B,OAAO;;AAGjB,MAAM,CAAC,OAAO,MAAM;AAClB,SAAQ,MAAM,EAAE;AAChB,SAAQ,KAAK,EAAE;EACf"}
@@ -30,12 +30,11 @@ const createMergedCoverageReports = async (options = {}) => {
30
30
  coverageMap: mergedMap
31
31
  });
32
32
  reporters.forEach((reporter) => {
33
- const report = create(reporter);
34
- report.execute(reportGenerationContext);
33
+ create(reporter).execute(reportGenerationContext);
35
34
  });
36
35
  console.log(`Generated ${reporters.join(", ")} reports to ${outputDirectory}`);
37
36
  };
38
37
 
39
38
  //#endregion
40
39
  export { createMergedCoverageReports };
41
- //# sourceMappingURL=create-merged-coverage-reports-DTw7ouWj.js.map
40
+ //# sourceMappingURL=create-merged-coverage-reports-DmjabwNL.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-merged-coverage-reports-DmjabwNL.js","names":["createReport"],"sources":["../src/lib/create-merged-coverage-reports.ts"],"sourcesContent":["import * as path from \"path\";\nimport { readFile } from \"fs/promises\";\nimport { default as libCoverage } from \"istanbul-lib-coverage\";\nimport { default as libReport } from \"istanbul-lib-report\";\nimport { create as createReport, type ReportOptions } from \"istanbul-reports\";\nimport { glob } from \"tinyglobby\";\n\ntype CreateMergedCoverageReportsOptions = {\n /**\n * Glob to get all json coverage files\n *\n * @default 'coverage/** /coverage-final.json'\n */\n coverageFileGlob?: string;\n\n /**\n * Directory where all merged coverage reports\n *\n * Note that this directory will be excluded from the coverage files lookup\n *\n * @default 'coverage/merged'\n */\n outputDirectory?: string;\n\n /**\n * Which reporters (either built-in, or custom) to use to generate the merged coverage reports\n *\n * @see https://istanbul.js.org/docs/advanced/alternative-reporters\n *\n * @default ['json']\n */\n reporters?: string[];\n};\n\nconst readJson = async (p: string) => JSON.parse(await readFile(p, \"utf-8\"));\n\nconst normalizeOptions = (options: CreateMergedCoverageReportsOptions) => {\n const {\n coverageFileGlob = \"coverage/**/coverage-final.json\",\n outputDirectory = path.join(\"coverage\", \"merged\"),\n reporters = [\"json\"],\n } = options;\n\n return {\n coverageFileGlob,\n outputDirectory,\n reporters,\n };\n};\n\nexport const createMergedCoverageReports = async (\n options: CreateMergedCoverageReportsOptions = {},\n): Promise<void> => {\n const { coverageFileGlob, outputDirectory, reporters } =\n normalizeOptions(options);\n\n const jsonFilePaths = await glob([\n coverageFileGlob,\n `!${outputDirectory}/**/*`,\n ]);\n\n if (jsonFilePaths.length === 0) {\n throw new Error(\n `No coverage reports found with the ${coverageFileGlob} glob`,\n );\n }\n\n const mergedMap = libCoverage.createCoverageMap();\n\n for (const jsonFilePath of jsonFilePaths) {\n const coverageJson = await readJson(\n // ensure absolute path, otherwise ENOENT error happens\n path.resolve(jsonFilePath),\n );\n\n mergedMap.merge(coverageJson);\n }\n\n const reportGenerationContext = libReport.createContext({\n dir: outputDirectory,\n defaultSummarizer: \"nested\",\n coverageMap: mergedMap,\n });\n\n reporters.forEach((reporter) => {\n const report = createReport(\n // HACK: may be a custom reporter\n reporter as unknown as keyof ReportOptions,\n );\n\n report.execute(reportGenerationContext);\n });\n\n console.log(\n `Generated ${reporters.join(\", \")} reports to ${outputDirectory}`,\n );\n};\n"],"mappings":";;;;;;;;AAkCA,MAAM,WAAW,OAAO,MAAc,KAAK,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE5E,MAAM,oBAAoB,YAAgD;CACxE,MAAM,EACJ,mBAAmB,mCACnB,kBAAkB,KAAK,KAAK,YAAY,SAAS,EACjD,YAAY,CAAC,OAAO,KAClB;AAEJ,QAAO;EACL;EACA;EACA;EACD;;AAGH,MAAa,8BAA8B,OACzC,UAA8C,EAAE,KAC9B;CAClB,MAAM,EAAE,kBAAkB,iBAAiB,cACzC,iBAAiB,QAAQ;CAE3B,MAAM,gBAAgB,MAAM,KAAK,CAC/B,kBACA,IAAI,gBAAgB,OACrB,CAAC;AAEF,KAAI,cAAc,WAAW,EAC3B,OAAM,IAAI,MACR,sCAAsC,iBAAiB,OACxD;CAGH,MAAM,YAAY,YAAY,mBAAmB;AAEjD,MAAK,MAAM,gBAAgB,eAAe;EACxC,MAAM,eAAe,MAAM,SAEzB,KAAK,QAAQ,aAAa,CAC3B;AAED,YAAU,MAAM,aAAa;;CAG/B,MAAM,0BAA0B,UAAU,cAAc;EACtD,KAAK;EACL,mBAAmB;EACnB,aAAa;EACd,CAAC;AAEF,WAAU,SAAS,aAAa;AAM9B,EALeA,OAEb,SACD,CAEM,QAAQ,wBAAwB;GACvC;AAEF,SAAQ,IACN,aAAa,UAAU,KAAK,KAAK,CAAC,cAAc,kBACjD"}
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import { createMergedCoverageReports } from "./create-merged-coverage-reports-DTw7ouWj.js";
1
+ import { createMergedCoverageReports } from "./create-merged-coverage-reports-DmjabwNL.js";
2
2
 
3
3
  export { createMergedCoverageReports };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-merged-coverage-reports",
3
- "version": "0.3.0",
3
+ "version": "0.5.0",
4
4
  "description": "Create merged coverage reports",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -43,10 +43,10 @@
43
43
  "bumpp": "^10.2.0",
44
44
  "changelogithub": "^13.16.0",
45
45
  "oxlint": "^1.8.0",
46
- "pkg-pr-new": "^0.0.54",
46
+ "pkg-pr-new": "^0.0.60",
47
47
  "prettier": "^3.6.2",
48
48
  "tmp": "^0.2.3",
49
- "tsdown": "^0.13.0",
49
+ "tsdown": "^0.15.1",
50
50
  "typescript": "^5.8.3",
51
51
  "vitest": "^3.2.4"
52
52
  },
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-merged-coverage-reports-DTw7ouWj.js","names":["p: string","options: CreateMergedCoverageReportsOptions","createReport"],"sources":["../src/lib/create-merged-coverage-reports.ts"],"sourcesContent":["import * as path from \"path\";\nimport { readFile } from \"fs/promises\";\nimport { default as libCoverage } from \"istanbul-lib-coverage\";\nimport { default as libReport } from \"istanbul-lib-report\";\nimport { create as createReport, type ReportOptions } from \"istanbul-reports\";\nimport { glob } from \"tinyglobby\";\n\ntype CreateMergedCoverageReportsOptions = {\n /**\n * Glob to get all json coverage files\n *\n * @default 'coverage/** /coverage-final.json'\n */\n coverageFileGlob?: string;\n\n /**\n * Directory where all merged coverage reports\n *\n * Note that this directory will be excluded from the coverage files lookup\n *\n * @default 'coverage/merged'\n */\n outputDirectory?: string;\n\n /**\n * Which reporters (either built-in, or custom) to use to generate the merged coverage reports\n *\n * @see https://istanbul.js.org/docs/advanced/alternative-reporters\n *\n * @default ['json']\n */\n reporters?: string[];\n};\n\nconst readJson = async (p: string) => JSON.parse(await readFile(p, \"utf-8\"));\n\nconst normalizeOptions = (options: CreateMergedCoverageReportsOptions) => {\n const {\n coverageFileGlob = \"coverage/**/coverage-final.json\",\n outputDirectory = path.join(\"coverage\", \"merged\"),\n reporters = [\"json\"],\n } = options;\n\n return {\n coverageFileGlob,\n outputDirectory,\n reporters,\n };\n};\n\nexport const createMergedCoverageReports = async (\n options: CreateMergedCoverageReportsOptions = {},\n): Promise<void> => {\n const { coverageFileGlob, outputDirectory, reporters } =\n normalizeOptions(options);\n\n const jsonFilePaths = await glob([\n coverageFileGlob,\n `!${outputDirectory}/**/*`,\n ]);\n\n if (jsonFilePaths.length === 0) {\n throw new Error(\n `No coverage reports found with the ${coverageFileGlob} glob`,\n );\n }\n\n const mergedMap = libCoverage.createCoverageMap();\n\n for (const jsonFilePath of jsonFilePaths) {\n const coverageJson = await readJson(\n // ensure absolute path, otherwise ENOENT error happens\n path.resolve(jsonFilePath),\n );\n\n mergedMap.merge(coverageJson);\n }\n\n const reportGenerationContext = libReport.createContext({\n dir: outputDirectory,\n defaultSummarizer: \"nested\",\n coverageMap: mergedMap,\n });\n\n reporters.forEach((reporter) => {\n const report = createReport(\n // HACK: may be a custom reporter\n reporter as unknown as keyof ReportOptions,\n );\n\n report.execute(reportGenerationContext);\n });\n\n console.log(\n `Generated ${reporters.join(\", \")} reports to ${outputDirectory}`,\n );\n};\n"],"mappings":";;;;;;;;AAkCA,MAAM,WAAW,OAAOA,MAAc,KAAK,MAAM,MAAM,SAAS,GAAG,QAAQ,CAAC;AAE5E,MAAM,mBAAmB,CAACC,YAAgD;CACxE,MAAM,EACJ,mBAAmB,mCACnB,kBAAkB,KAAK,KAAK,YAAY,SAAS,EACjD,YAAY,CAAC,MAAO,GACrB,GAAG;AAEJ,QAAO;EACL;EACA;EACA;CACD;AACF;AAED,MAAa,8BAA8B,OACzCA,UAA8C,CAAE,MAC9B;CAClB,MAAM,EAAE,kBAAkB,iBAAiB,WAAW,GACpD,iBAAiB,QAAQ;CAE3B,MAAM,gBAAgB,MAAM,KAAK,CAC/B,kBACA,CAAC,CAAC,EAAE,gBAAgB,KAAK,CAAC,AAC3B,EAAC;AAEF,KAAI,cAAc,WAAW,EAC3B,OAAM,IAAI,MACR,CAAC,mCAAmC,EAAE,iBAAiB,KAAK,CAAC;CAIjE,MAAM,YAAY,YAAY,mBAAmB;AAEjD,MAAK,MAAM,gBAAgB,eAAe;EACxC,MAAM,eAAe,MAAM,SAEzB,KAAK,QAAQ,aAAa,CAC3B;EAED,UAAU,MAAM,aAAa;CAC9B;CAED,MAAM,0BAA0B,UAAU,cAAc;EACtD,KAAK;EACL,mBAAmB;EACnB,aAAa;CACd,EAAC;CAEF,UAAU,QAAQ,CAAC,aAAa;EAC9B,MAAM,SAASC,OAEb,SACD;EAED,OAAO,QAAQ,wBAAwB;CACxC,EAAC;CAEF,QAAQ,IACN,CAAC,UAAU,EAAE,UAAU,KAAK,KAAK,CAAC,YAAY,EAAE,iBAAiB,CAClE;AACF"}