@umijs/test 4.2.6-alpha.6 → 4.2.6-alpha.7

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.
@@ -0,0 +1,24 @@
1
+ import type { Config } from '@jest/types';
2
+ export declare type JSTransformer = 'esbuild' | 'swc' | 'ts-jest';
3
+ export type { Config };
4
+ /**
5
+ * 创建一份jest 的配置
6
+ * 增加了'esbuild' | 'swc' | 'ts-jest' 的 transform
7
+ * 增加 css|less|sass|scss|stylus 的支持
8
+ * 默认编译 所有的 node_modules
9
+ * @param {{jsTransformer?:JSTransformer;target?:'node'|'browser';jsTransformerOpts?:any;}} opts?
10
+ * @returns Config
11
+ */
12
+ export declare function createConfig(opts?: {
13
+ /**
14
+ * 转化 js 的配置
15
+ * @type {'esbuild' | 'swc' | 'ts-jest'}
16
+ */
17
+ jsTransformer?: JSTransformer;
18
+ /**
19
+ * 运行环境,node 和 浏览器
20
+ * @type {'node' | 'browser'}
21
+ */
22
+ target?: 'node' | 'browser';
23
+ jsTransformerOpts?: any;
24
+ }): Config.InitialOptions;
package/dist/index.js ADDED
@@ -0,0 +1,98 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/index.ts
30
+ var src_exports = {};
31
+ __export(src_exports, {
32
+ createConfig: () => createConfig
33
+ });
34
+ module.exports = __toCommonJS(src_exports);
35
+ var import_utils = require("@umijs/utils");
36
+ var import_path = require("path");
37
+ function getJSTransformer(jsTransformer, opts) {
38
+ switch (jsTransformer) {
39
+ case "esbuild":
40
+ return [
41
+ require.resolve((0, import_path.join)(__dirname, "transformers/esbuild")),
42
+ {
43
+ // See https://github.com/umijs/umi/issues/10412
44
+ target: "es2020",
45
+ ...opts,
46
+ sourcemap: true
47
+ }
48
+ ];
49
+ case "swc":
50
+ return require.resolve("@swc-node/jest");
51
+ case "ts-jest":
52
+ return require.resolve("ts-jest");
53
+ default:
54
+ throw new Error(`Unknown jsTransformer: ${jsTransformer}`);
55
+ }
56
+ }
57
+ function createConfig(opts) {
58
+ (0, import_utils.setNoDeprecation)();
59
+ const config = {
60
+ testMatch: ["**/*.test.(t|j)s(x)?"],
61
+ testPathIgnorePatterns: [
62
+ "/node_modules/",
63
+ "<rootDir>/config/",
64
+ // in case of config.test.ts
65
+ "<rootDir>/mock/",
66
+ "<rootDir>/.umirc.test.ts"
67
+ ],
68
+ transform: {
69
+ "^.+\\.(t|j)sx?$": getJSTransformer(
70
+ (opts == null ? void 0 : opts.jsTransformer) || "esbuild",
71
+ opts == null ? void 0 : opts.jsTransformerOpts
72
+ ),
73
+ "^.+\\.mjs$": getJSTransformer(
74
+ (opts == null ? void 0 : opts.jsTransformer) || "esbuild",
75
+ opts == null ? void 0 : opts.jsTransformerOpts
76
+ )
77
+ },
78
+ moduleNameMapper: {
79
+ "^.+\\.(css|less|sass|scss|stylus)$": require.resolve("identity-obj-proxy")
80
+ },
81
+ testTimeout: 3e4,
82
+ transformIgnorePatterns: [`/node_modules/(?!${[].join("|")})`],
83
+ modulePathIgnorePatterns: [
84
+ "<rootDir>/packages/.+/compiled",
85
+ "<rootDir>/packages/.+/fixtures"
86
+ ],
87
+ setupFiles: [require.resolve("../setupFiles/shim")],
88
+ resolver: require.resolve("./resolver.js")
89
+ };
90
+ if ((opts == null ? void 0 : opts.target) === "browser") {
91
+ config.testEnvironment = "jsdom";
92
+ }
93
+ return config;
94
+ }
95
+ // Annotate the CommonJS export names for ESM import in node:
96
+ 0 && (module.exports = {
97
+ createConfig
98
+ });
@@ -0,0 +1,13 @@
1
+ // src/resolver.js
2
+ module.exports = (path, options) => {
3
+ return options.defaultResolver(path, {
4
+ ...options,
5
+ // Use packageFilter to process parsed `package.json` before the resolution (see https://www.npmjs.com/package/resolve#resolveid-opts-cb)
6
+ packageFilter: (pkg) => {
7
+ return {
8
+ ...pkg,
9
+ main: pkg.main || pkg.module
10
+ };
11
+ }
12
+ });
13
+ };
@@ -0,0 +1,6 @@
1
+ import { Transformer } from '@jest/transform';
2
+ import { UserOptions } from './type';
3
+ declare const _default: {
4
+ createTransformer: (userOptions?: UserOptions) => Transformer<UserOptions>;
5
+ };
6
+ export default _default;
@@ -0,0 +1,102 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
25
+ mod
26
+ ));
27
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
28
+
29
+ // src/transformers/esbuild/index.ts
30
+ var esbuild_exports = {};
31
+ __export(esbuild_exports, {
32
+ default: () => esbuild_default
33
+ });
34
+ module.exports = __toCommonJS(esbuild_exports);
35
+ var import_crypto = require("crypto");
36
+ var import_esbuild = require("esbuild");
37
+ var import_fs = __toESM(require("fs"));
38
+ var import_path = require("path");
39
+ var import_options = require("./options");
40
+ var THIS_FILE = import_fs.default.readFileSync(__filename);
41
+ var TS_TSX_REGEX = /\.tsx?$/;
42
+ var JS_JSX_REGEX = /\.jsx?$/;
43
+ function isTarget(path) {
44
+ return JS_JSX_REGEX.test(path) || TS_TSX_REGEX.test(path) || path.endsWith(".mjs");
45
+ }
46
+ var createTransformer = (userOptions = {}) => {
47
+ const options = (0, import_options.resolveOptions)(userOptions);
48
+ return {
49
+ canInstrument: false,
50
+ getCacheKey(fileData, filePath, transformOptions) {
51
+ const { config, instrument, configString } = transformOptions;
52
+ return (0, import_crypto.createHash)("md5").update(THIS_FILE).update("\0", "utf8").update(JSON.stringify(options)).update("\0", "utf8").update(fileData).update("\0", "utf8").update((0, import_path.relative)(config.rootDir, filePath)).update("\0", "utf8").update(configString).update("\0", "utf8").update(filePath).update("\0", "utf8").update(instrument ? "instrument" : "").update("\0", "utf8").update(process.env.NODE_ENV || "").digest("hex");
53
+ },
54
+ process(source, path, transformOptions) {
55
+ const { config } = transformOptions;
56
+ if (!isTarget(path))
57
+ return {
58
+ code: source
59
+ };
60
+ let rawCode = source;
61
+ if (rawCode.indexOf("jest.mock(") >= 0 || rawCode.indexOf("jest.doMock(") >= 0) {
62
+ rawCode = require("./transformer").babelTransform({
63
+ sourceText: rawCode,
64
+ sourcePath: path,
65
+ config: transformOptions
66
+ });
67
+ }
68
+ const result = (0, import_esbuild.transformSync)(rawCode, {
69
+ ...options,
70
+ ...config.globals["jest-esbuild"],
71
+ loader: userOptions.loader || ext2Loader((0, import_path.extname)(path)),
72
+ sourcefile: path,
73
+ sourcesContent: false
74
+ });
75
+ if (result.warnings.length) {
76
+ result.warnings.forEach((m) => {
77
+ console.warn(m);
78
+ });
79
+ }
80
+ let { map, code } = result;
81
+ map = {
82
+ ...JSON.parse(result.map),
83
+ sourcesContent: null
84
+ };
85
+ code = code + "\n//# sourceMappingURL=data:application/json;base64," + Buffer.from(JSON.stringify(map)).toString("base64");
86
+ return { code, map };
87
+ }
88
+ };
89
+ };
90
+ var EXT_MAP = {
91
+ ".js": "js",
92
+ ".jsx": "jsx",
93
+ ".ts": "ts",
94
+ ".tsx": "tsx",
95
+ ".mjs": "js"
96
+ };
97
+ function ext2Loader(ext) {
98
+ return EXT_MAP[ext] || "js";
99
+ }
100
+ var esbuild_default = {
101
+ createTransformer
102
+ };
@@ -0,0 +1,2 @@
1
+ import type { ResolvedOptions, UserOptions } from './type';
2
+ export declare function resolveOptions(userOptions: UserOptions): ResolvedOptions;
@@ -0,0 +1,36 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transformers/esbuild/options.ts
20
+ var options_exports = {};
21
+ __export(options_exports, {
22
+ resolveOptions: () => resolveOptions
23
+ });
24
+ module.exports = __toCommonJS(options_exports);
25
+ function resolveOptions(userOptions) {
26
+ return {
27
+ format: "cjs",
28
+ target: "es2019",
29
+ sourcemap: true,
30
+ ...userOptions
31
+ };
32
+ }
33
+ // Annotate the CommonJS export names for ESM import in node:
34
+ 0 && (module.exports = {
35
+ resolveOptions
36
+ });
@@ -0,0 +1,2 @@
1
+ export declare function hook(): void;
2
+ export declare function unhook(): void;
@@ -0,0 +1,56 @@
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toESM = (mod2, isNodeMode, target) => (target = mod2 != null ? __create(__getProtoOf(mod2)) : {}, __copyProps(
20
+ // If the importer is in node compatibility mode or this is not an ESM
21
+ // file that has been converted to a CommonJS file using a Babel-
22
+ // compatible transform (i.e. "__esModule" has not been set), then set
23
+ // "default" to the CommonJS "module.exports" for node compatibility.
24
+ isNodeMode || !mod2 || !mod2.__esModule ? __defProp(target, "default", { value: mod2, enumerable: true }) : target,
25
+ mod2
26
+ ));
27
+ var __toCommonJS = (mod2) => __copyProps(__defProp({}, "__esModule", { value: true }), mod2);
28
+
29
+ // src/transformers/esbuild/requireHook.ts
30
+ var requireHook_exports = {};
31
+ __export(requireHook_exports, {
32
+ hook: () => hook,
33
+ unhook: () => unhook
34
+ });
35
+ module.exports = __toCommonJS(requireHook_exports);
36
+ var mod = require("module");
37
+ var hookPropertyMap = /* @__PURE__ */ new Map([
38
+ ["@babel/core", require.resolve("@umijs/bundler-utils/compiled/babel/core")]
39
+ ]);
40
+ var resolveFilename = mod._resolveFilename;
41
+ function hook() {
42
+ mod._resolveFilename = function(request, parent, isMain, options) {
43
+ const hookResolved = hookPropertyMap.get(request);
44
+ if (hookResolved)
45
+ request = hookResolved;
46
+ return resolveFilename.call(mod, request, parent, isMain, options);
47
+ };
48
+ }
49
+ function unhook() {
50
+ mod._resolveFilename = resolveFilename;
51
+ }
52
+ // Annotate the CommonJS export names for ESM import in node:
53
+ 0 && (module.exports = {
54
+ hook,
55
+ unhook
56
+ });
@@ -0,0 +1,7 @@
1
+ import type { TransformOptions } from '@jest/transform';
2
+ export interface BabelTransformOptions {
3
+ sourceText: string;
4
+ sourcePath: string;
5
+ config: TransformOptions<any>;
6
+ }
7
+ export declare function babelTransform(opts: BabelTransformOptions): string;
@@ -0,0 +1,42 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all)
7
+ __defProp(target, name, { get: all[name], enumerable: true });
8
+ };
9
+ var __copyProps = (to, from, except, desc) => {
10
+ if (from && typeof from === "object" || typeof from === "function") {
11
+ for (let key of __getOwnPropNames(from))
12
+ if (!__hasOwnProp.call(to, key) && key !== except)
13
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
14
+ }
15
+ return to;
16
+ };
17
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
18
+
19
+ // src/transformers/esbuild/transformer.ts
20
+ var transformer_exports = {};
21
+ __export(transformer_exports, {
22
+ babelTransform: () => babelTransform
23
+ });
24
+ module.exports = __toCommonJS(transformer_exports);
25
+ require("./requireHook").hook();
26
+ var { createTransformer } = require("babel-jest");
27
+ require("./requireHook").unhook();
28
+ var { process } = createTransformer({
29
+ plugins: ["@babel/plugin-transform-modules-commonjs"],
30
+ parserOpts: {
31
+ plugins: ["jsx", "typescript"]
32
+ }
33
+ });
34
+ function babelTransform(opts) {
35
+ const { sourceText, sourcePath, config } = opts;
36
+ const babelResult = process(sourceText, sourcePath, config);
37
+ return babelResult.code;
38
+ }
39
+ // Annotate the CommonJS export names for ESM import in node:
40
+ 0 && (module.exports = {
41
+ babelTransform
42
+ });
@@ -0,0 +1,5 @@
1
+ import type { TransformOptions } from 'esbuild';
2
+ export interface UserOptions extends TransformOptions {
3
+ }
4
+ export interface ResolvedOptions extends TransformOptions {
5
+ }
@@ -0,0 +1,17 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __copyProps = (to, from, except, desc) => {
6
+ if (from && typeof from === "object" || typeof from === "function") {
7
+ for (let key of __getOwnPropNames(from))
8
+ if (!__hasOwnProp.call(to, key) && key !== except)
9
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
10
+ }
11
+ return to;
12
+ };
13
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
14
+
15
+ // src/transformers/esbuild/type.ts
16
+ var type_exports = {};
17
+ module.exports = __toCommonJS(type_exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@umijs/test",
3
- "version": "4.2.6-alpha.6",
3
+ "version": "4.2.6-alpha.7",
4
4
  "description": "@umijs/test",
5
5
  "homepage": "https://github.com/umijs/umi/tree/master/packages/testing#readme",
6
6
  "bugs": "https://github.com/umijs/umi/issues",
@@ -22,8 +22,8 @@
22
22
  "esbuild": "0.17.19",
23
23
  "identity-obj-proxy": "3.0.0",
24
24
  "isomorphic-unfetch": "4.0.2",
25
- "@umijs/bundler-utils": "4.2.6-alpha.6",
26
- "@umijs/utils": "4.2.6-alpha.6"
25
+ "@umijs/bundler-utils": "4.2.6-alpha.7",
26
+ "@umijs/utils": "4.2.6-alpha.7"
27
27
  },
28
28
  "devDependencies": {
29
29
  "@babel/core": "^7.23.6",