@canyonjs/babel-plugin 1.0.7 → 1.0.9

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/README.md ADDED
@@ -0,0 +1,17 @@
1
+ # @canyonjs/babel-plugin
2
+
3
+ A Babel plugin for [Canyon](https://canyonjs.io). It instruments your source at build time, injecting coverage collection logic and Canyon metadata (repository, commit info, etc.), and works alongside the Istanbul toolchain.
4
+
5
+ Use it in any frontend project that compiles with Babel. If you use Vite, you can use [`@canyonjs/vite-plugin`](https://www.npmjs.com/package/@canyonjs/vite-plugin) instead, which reuses this plugin internally.
6
+
7
+ ## Install
8
+
9
+ ```sh
10
+ npm install -D @canyonjs/babel-plugin
11
+ ```
12
+
13
+ ## Documentation
14
+
15
+ Full details on options, CI auto-detection, and using it with `babel-plugin-istanbul` are in the official docs:
16
+
17
+ **https://docs.canyonjs.io/docs/ecosystem/babel-plugin**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAC;AAgDvC;;;GAGG;;;;;;;;AACH,wBAoBE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvD,OAAO,KAAK,KAAK,CAAC,MAAM,cAAc,CAAC;AA2DvC;;;GAGG;;;;;;;;AACH,wBAgCE"}
package/dist/index.js CHANGED
@@ -1,6 +1,10 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  const helper_plugin_utils_1 = require("@babel/helper-plugin-utils");
7
+ const test_exclude_1 = __importDefault(require("test-exclude"));
4
8
  const detect_ci_config_1 = require("./helpers/detect-ci-config");
5
9
  const visitor_program_exit_1 = require("./visitor-program-exit");
6
10
  /**
@@ -13,8 +17,14 @@ const defaultConfig = {
13
17
  buildTarget: "",
14
18
  ci: false,
15
19
  instrumentCwd: process.cwd(),
20
+ include: [],
21
+ exclude: [],
22
+ extensions: [".js", ".cjs", ".mjs", ".ts", ".tsx", ".jsx", ".vue"],
16
23
  keepMap: false,
17
24
  };
25
+ function normalizeExtensions(extensions) {
26
+ return extensions.map((ext) => (ext.startsWith(".") ? ext : `.${ext}`));
27
+ }
18
28
  /**
19
29
  * 合并用户配置、CI 自动检测配置和默认配置
20
30
  *
@@ -33,6 +43,9 @@ function mergeConfig(config) {
33
43
  buildTarget: config?.buildTarget ?? ciConfig.buildTarget ?? defaultConfig.buildTarget,
34
44
  ci: config?.ci ?? ciConfig.ci ?? defaultConfig.ci,
35
45
  instrumentCwd: config?.instrumentCwd ?? defaultConfig.instrumentCwd,
46
+ include: config?.include ?? defaultConfig.include,
47
+ exclude: config?.exclude ?? defaultConfig.exclude,
48
+ extensions: normalizeExtensions(config?.extensions ?? defaultConfig.extensions),
36
49
  keepMap: config?.keepMap ?? defaultConfig.keepMap,
37
50
  // buildProvider:
38
51
  // config?.buildProvider ??
@@ -49,10 +62,20 @@ exports.default = (0, helper_plugin_utils_1.declare)((api, config) => {
49
62
  api.assertVersion(7);
50
63
  const userConfig = config;
51
64
  const validatedConfig = mergeConfig(userConfig);
65
+ const testExclude = new test_exclude_1.default({
66
+ cwd: validatedConfig.instrumentCwd,
67
+ include: validatedConfig.include,
68
+ exclude: validatedConfig.exclude,
69
+ extension: validatedConfig.extensions,
70
+ });
52
71
  return {
53
72
  visitor: {
54
73
  Program: {
55
74
  exit: (programPath) => {
75
+ const filename = programPath.hub?.file?.opts?.filename;
76
+ if (filename && !testExclude.shouldInstrument(filename)) {
77
+ return;
78
+ }
56
79
  (0, visitor_program_exit_1.visitorProgramExit)(api, programPath, validatedConfig);
57
80
  },
58
81
  },
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;AACA,oEAAqD;AAErD,iEAA4D;AAE5D,iEAA4D;AAE5D;;GAEG;AACH,MAAM,aAAa,GAAsC;IACvD,MAAM,EAAE,EAAE;IACV,GAAG,EAAE,EAAE;IACP,QAAQ,EAAE,EAAE;IACZ,WAAW,EAAE,EAAE;IACf,EAAE,EAAE,KAAK;IACT,aAAa,EAAE,OAAO,CAAC,GAAG,EAAE;IAC5B,OAAO,EAAE,KAAK;CACf,CAAC;AAEF;;;;;GAKG;AACH,SAAS,WAAW,CAClB,MAA2C,EACR;IACnC,iDAAqB;IACrB,MAAM,QAAQ,GAAG,IAAA,iCAAc,GAAE,CAAC;IAElC,kEAA8B;IAC9B,OAAO;QACL,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,QAAQ,CAAC,MAAM,IAAI,aAAa,CAAC,MAAM;QACjE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,GAAG,IAAI,aAAa,CAAC,GAAG;QACrD,qEAAqE;QACrE,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ,CAAC,QAAQ,IAAI,aAAa,CAAC,QAAQ;QACzE,WAAW,EAAE,MAAM,EAAE,WAAW,IAAI,QAAQ,CAAC,WAAW,IAAI,aAAa,CAAC,WAAW;QACrF,EAAE,EAAE,MAAM,EAAE,EAAE,IAAI,QAAQ,CAAC,EAAE,IAAI,aAAa,CAAC,EAAE;QACjD,aAAa,EAAE,MAAM,EAAE,aAAa,IAAI,aAAa,CAAC,aAAa;QACnE,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,aAAa,CAAC,OAAO;QACjD,iBAAiB;QACjB,6BAA6B;QAC7B,8BAA8B;QAC9B,iCAAiC;QACjC,yEAAyE;KAC1E,CAAC;AAAA,CACH;AAED;;;GAGG;kBACY,IAAA,6BAAO,EACpB,CACE,GAAc,EACd,MAAe,EAGf,EAAE,CAAC;IACH,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IACrB,MAAM,UAAU,GAAG,MAA6C,CAAC;IACjE,MAAM,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC,CAAC;IAChD,OAAO;QACL,OAAO,EAAE;YACP,OAAO,EAAE;gBACP,IAAI,EAAE,CAAC,WAAgC,EAAE,EAAE,CAAC;oBAC1C,IAAA,yCAAkB,EAAC,GAAG,EAAE,WAAW,EAAE,eAAe,CAAC,CAAC;gBAAA,CACvD;aACF;SACF;KACF,CAAC;AAAA,CACH,CACF"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -14,6 +14,12 @@ export interface CanyonBabelPluginConfig {
14
14
  ci?: boolean;
15
15
  /** 插桩工作目录,默认为当前路径 */
16
16
  instrumentCwd?: string;
17
+ /** 包含的文件 glob 规则,语义参考 babel-plugin-istanbul */
18
+ include?: string[];
19
+ /** 排除的文件 glob 规则,语义参考 babel-plugin-istanbul */
20
+ exclude?: string[];
21
+ /** 参与匹配的文件扩展名 */
22
+ extensions?: string[];
17
23
  keepMap?: boolean;
18
24
  }
19
25
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAAgB;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,iDAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,gBAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oBAAc;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mBAAW;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,0BAAgB;IAChB,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,iDAAqB;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,uEAA+C;IAC/C,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IACnB,qCAAiB;IACjB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@canyonjs/babel-plugin",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "",
5
5
  "keywords": [],
6
6
  "license": "ISC",
@@ -13,7 +13,8 @@
13
13
  "@babel/core": "^7.25.6",
14
14
  "@babel/helper-plugin-utils": "^7.0.0",
15
15
  "@babel/types": "^7.25.6",
16
- "json-stable-stringify": "^1.3.0"
16
+ "json-stable-stringify": "^1.3.0",
17
+ "test-exclude": "^7.0.1"
17
18
  },
18
19
  "devDependencies": {
19
20
  "@babel/cli": "^7.24.1",
@@ -21,6 +22,7 @@
21
22
  "@types/babel__generator": "^7.6.8",
22
23
  "@types/babel__helper-plugin-utils": "^7.10.3",
23
24
  "@types/node": "^24.10.1",
25
+ "@types/test-exclude": "6.0.2",
24
26
  "@typescript/native-preview": "7.0.0-dev.20260223.1",
25
27
  "babel-plugin-istanbul": "latest"
26
28
  },