UNPKG

4.69 kBJavaScriptView Raw
1var __create = Object.create;
2var __defProp = Object.defineProperty;
3var __getProtoOf = Object.getPrototypeOf;
4var __hasOwnProp = Object.prototype.hasOwnProperty;
5var __getOwnPropNames = Object.getOwnPropertyNames;
6var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
7var __markAsModule = (target) => __defProp(target, "__esModule", {value: true});
8var __export = (target, all) => {
9 __markAsModule(target);
10 for (var name in all)
11 __defProp(target, name, {get: all[name], enumerable: true});
12};
13var __exportStar = (target, module3, desc) => {
14 __markAsModule(target);
15 if (module3 && typeof module3 === "object" || typeof module3 === "function") {
16 for (let key of __getOwnPropNames(module3))
17 if (!__hasOwnProp.call(target, key) && key !== "default")
18 __defProp(target, key, {get: () => module3[key], enumerable: !(desc = __getOwnPropDesc(module3, key)) || desc.enumerable});
19 }
20 return target;
21};
22var __toModule = (module3) => {
23 if (module3 && module3.__esModule)
24 return module3;
25 return __exportStar(__defProp(module3 != null ? __create(__getProtoOf(module3)) : {}, "default", {value: module3, enumerable: true}), module3);
26};
27
28// src/jest.ts
29__export(exports, {
30 process: () => process2
31});
32
33// src/esbuild.ts
34var esbuild = __toModule(require("esbuild"));
35var fs = __toModule(require("fs"));
36var path = __toModule(require("path"));
37var pkgPath = path.default.resolve(".", "package.json");
38var externals = [];
39var _a, _b;
40if (fs.default.existsSync(pkgPath)) {
41 const pkg = JSON.parse(fs.default.readFileSync(pkgPath, {encoding: "utf-8"}));
42 externals = [
43 ...Object.keys((_a = pkg.dependencies) != null ? _a : {}),
44 ...Object.keys((_b = pkg.devDependencies) != null ? _b : {})
45 ];
46}
47var loaders = {
48 ".mjs": "js",
49 ".cjs": "js",
50 ".jsx": "jsx",
51 ".ts": "ts",
52 ".tsx": "tsx",
53 ".json": "json"
54};
55function supports(filename) {
56 if (filename.includes("node_modules"))
57 return false;
58 return path.default.extname(filename) in loaders;
59}
60function _transform(code, filename) {
61 const ret = esbuild.transformSync(code, {
62 loader: loaders[path.default.extname(filename)],
63 format: "cjs",
64 logLevel: "error",
65 target: [`node${process.version.slice(1)}`],
66 minify: false,
67 sourcemap: "inline",
68 sourcefile: filename
69 });
70 return ret.code;
71}
72function _bundle(code, filename) {
73 const ext = path.default.extname(filename);
74 return esbuild.buildSync({
75 loader: loaders,
76 bundle: true,
77 platform: "node",
78 logLevel: "error",
79 stdin: {
80 sourcefile: filename,
81 contents: code,
82 resolveDir: path.default.dirname(filename),
83 loader: loaders[ext]
84 },
85 external: externals,
86 format: "cjs",
87 target: [`node${process.version.slice(1)}`],
88 minify: false,
89 sourcemap: "inline",
90 write: false
91 }).outputFiles.map((f) => f.text).join("\n");
92}
93function _transpile(code, filename, options) {
94 return options.bundle ? _bundle(code, filename) : _transform(code, filename);
95}
96function transpile(code, filename, options = {cache: false, bundle: true}) {
97 if (options.cache) {
98 const compiledPath = path.default.resolve(".", ".build", path.default.relative(path.default.resolve("."), filename));
99 if (!fs.default.existsSync(compiledPath) || fs.default.statSync(compiledPath).mtime < fs.default.statSync(filename).mtime) {
100 code = _transpile(code, filename, options);
101 const compiledDir = path.default.dirname(compiledPath);
102 if (!fs.default.existsSync(compiledDir))
103 fs.default.mkdirSync(compiledDir, {recursive: true});
104 fs.default.writeFileSync(compiledPath, code, {encoding: "utf-8"});
105 return code;
106 }
107 return fs.default.readFileSync(compiledPath, {encoding: "utf-8"});
108 } else {
109 return _transpile(code, filename, options);
110 }
111}
112
113// src/register.ts
114var source_map_support = __toModule(require("source-map-support"));
115
116// src/hook.ts
117var module2 = __toModule(require("module"));
118var Module = module2.default;
119function install() {
120 const defaultLoaderJS = Module._extensions[".js"];
121 for (const ext in loaders) {
122 const defaultLoader = Module._extensions[ext] || defaultLoaderJS;
123 Module._extensions[ext] = (mod, filename) => {
124 if (supports(filename)) {
125 const defaultCompile = mod._compile;
126 mod._compile = (code) => {
127 mod._compile = defaultCompile;
128 return mod._compile(transpile(code, filename, {bundle: true, cache: false}), filename);
129 };
130 }
131 defaultLoader(mod, filename);
132 };
133 }
134}
135
136// src/register.ts
137source_map_support.install({hookRequire: true});
138install();
139
140// src/jest.ts
141function process2(src, filename) {
142 return transpile(src, filename);
143}