create-merged-coverage-reports 0.7.0 → 0.9.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.
@@ -1,5 +1,5 @@
1
1
  #!/usr/bin/env node
2
- import { t as createMergedCoverageReports } from "./create-merged-coverage-reports-CtKJA9MQ.js";
2
+ import { t as createMergedCoverageReports } from "./create-merged-coverage-reports-DBLam3qc.mjs";
3
3
  import { Command } from "commander";
4
4
  import { readPackageUp } from "read-package-up";
5
5
 
@@ -31,4 +31,4 @@ main().catch((e) => {
31
31
 
32
32
  //#endregion
33
33
  export { };
34
- //# sourceMappingURL=bin.js.map
34
+ //# sourceMappingURL=bin.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bin.mjs","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"}
@@ -37,4 +37,4 @@ const createMergedCoverageReports = async (options = {}) => {
37
37
 
38
38
  //#endregion
39
39
  export { createMergedCoverageReports as t };
40
- //# sourceMappingURL=create-merged-coverage-reports-CtKJA9MQ.js.map
40
+ //# sourceMappingURL=create-merged-coverage-reports-DBLam3qc.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"create-merged-coverage-reports-DBLam3qc.mjs","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"}
@@ -26,4 +26,4 @@ type CreateMergedCoverageReportsOptions = {
26
26
  declare const createMergedCoverageReports: (options?: CreateMergedCoverageReportsOptions) => Promise<void>;
27
27
  //#endregion
28
28
  export { createMergedCoverageReports };
29
- //# sourceMappingURL=index.d.ts.map
29
+ //# sourceMappingURL=index.d.mts.map
package/dist/index.mjs ADDED
@@ -0,0 +1,3 @@
1
+ import { t as createMergedCoverageReports } from "./create-merged-coverage-reports-DBLam3qc.mjs";
2
+
3
+ export { createMergedCoverageReports };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-merged-coverage-reports",
3
- "version": "0.7.0",
3
+ "version": "0.9.0",
4
4
  "description": "Create merged coverage reports",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -15,12 +15,10 @@
15
15
  },
16
16
  "type": "module",
17
17
  "bin": "./dist/bin.js",
18
- "main": "./dist/index.js",
19
- "module": "./dist/index.js",
20
18
  "types": "./dist/index.d.ts",
21
19
  "exports": {
22
- ".": "./dist/index.js",
23
- "./bin": "./dist/bin.js",
20
+ ".": "./dist/index.mjs",
21
+ "./bin": "./dist/bin.mjs",
24
22
  "./package.json": "./package.json"
25
23
  },
26
24
  "files": [
@@ -43,10 +41,10 @@
43
41
  "bumpp": "^10.2.0",
44
42
  "changelogithub": "^14.0.0",
45
43
  "oxlint": "^1.8.0",
46
- "pkg-pr-new": "^0.0.62",
44
+ "pkg-pr-new": "^0.0.65",
47
45
  "prettier": "^3.6.2",
48
46
  "tmp": "^0.2.3",
49
- "tsdown": "^0.18.4",
47
+ "tsdown": "^0.20.1",
50
48
  "typescript": "^5.8.3",
51
49
  "vitest": "^4.0.6"
52
50
  },
package/dist/bin.js.map DELETED
@@ -1 +0,0 @@
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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"create-merged-coverage-reports-CtKJA9MQ.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 DELETED
@@ -1,3 +0,0 @@
1
- import { t as createMergedCoverageReports } from "./create-merged-coverage-reports-CtKJA9MQ.js";
2
-
3
- export { createMergedCoverageReports };
File without changes