@eggjs/utils 5.0.0-beta.34 → 5.0.0-beta.36

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/import.js CHANGED
@@ -1,391 +1,234 @@
1
- var __rewriteRelativeImportExtension = (this && this.__rewriteRelativeImportExtension) || function (path, preserveJsx) {
2
- if (typeof path === "string" && /^\.\.?\//.test(path)) {
3
- return path.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i, function (m, tsx, d, ext, cm) {
4
- return tsx ? preserveJsx ? ".jsx" : ".js" : d && (!ext || !cm) ? m : (d + ext + "." + cm.toLowerCase() + "js");
5
- });
6
- }
7
- return path;
8
- };
9
- import { debuglog } from 'node:util';
10
- import { createRequire } from 'node:module';
11
- import { pathToFileURL, fileURLToPath } from 'node:url';
12
- import path from 'node:path';
13
- import fs from 'node:fs';
14
- import { ImportResolveError } from "./error/index.js";
15
- const debug = debuglog('egg/utils/import');
16
- // detect is esm or cjs
17
- export let isESM = true;
1
+ import { __require } from "./_virtual/rolldown_runtime.js";
2
+ import { ImportResolveError } from "./error/ImportResolveError.js";
3
+ import { createRequire } from "node:module";
4
+ import path from "node:path";
5
+ import fs from "node:fs";
6
+ import { fileURLToPath, pathToFileURL } from "node:url";
7
+ import { debuglog } from "node:util";
8
+
9
+ //#region src/import.ts
10
+ const debug = debuglog("egg/utils/import");
11
+ let isESM = true;
18
12
  try {
19
- // Accessing import.meta will throw an error in CJS
20
- if (typeof import.meta !== 'undefined') {
21
- isESM = true;
22
- }
13
+ if (typeof import.meta !== "undefined") isESM = true;
14
+ } catch {
15
+ isESM = false;
23
16
  }
24
- catch {
25
- // If import.meta is not available, it's likely CJS
26
- isESM = false;
27
- }
28
- const nodeMajorVersion = parseInt(process.versions.node.split('.', 1)[0], 10);
17
+ const nodeMajorVersion = parseInt(process.versions.node.split(".", 1)[0], 10);
29
18
  const supportImportMetaResolve = nodeMajorVersion >= 18;
30
19
  let _customRequire;
31
- export function getRequire() {
32
- if (!_customRequire) {
33
- if (typeof require !== 'undefined') {
34
- _customRequire = require;
35
- }
36
- else {
37
- _customRequire = createRequire(process.cwd());
38
- }
39
- }
40
- return _customRequire;
20
+ function getRequire() {
21
+ if (!_customRequire) if (typeof __require !== "undefined") _customRequire = __require;
22
+ else _customRequire = createRequire(process.cwd());
23
+ return _customRequire;
41
24
  }
42
- export function getExtensions() {
43
- return getRequire().extensions;
25
+ function getExtensions() {
26
+ return getRequire().extensions;
44
27
  }
45
28
  let _supportTypeScript;
46
- export function isSupportTypeScript() {
47
- // disable ts by process.env.EGG_TS_ENABLE = 'false', @eggjs/scripts start will use it to disable ts
48
- if (process.env.EGG_TS_ENABLE === 'false') {
49
- return false;
50
- }
51
- if (_supportTypeScript === undefined) {
52
- const extensions = getExtensions();
53
- // enable ts by process.env.EGG_TS_ENABLE or process.env.VITEST
54
- _supportTypeScript =
55
- extensions['.ts'] !== undefined ||
56
- process.env.VITEST === 'true' ||
57
- process.env.EGG_TS_ENABLE === 'true' ||
58
- // Node.js doesn't support enum by default
59
- nodeMajorVersion >= 22;
60
- debug('[isSupportTypeScript] %o, extensions: %j, process.env.VITEST: %j, process.env.EGG_TS_ENABLE: %j, node version: %s', _supportTypeScript, Object.keys(extensions), process.env.VITEST, process.env.EGG_TS_ENABLE, process.versions.node);
61
- }
62
- return _supportTypeScript;
29
+ function isSupportTypeScript() {
30
+ if (process.env.EGG_TS_ENABLE === "false") return false;
31
+ if (_supportTypeScript === void 0) {
32
+ const extensions = getExtensions();
33
+ _supportTypeScript = extensions[".ts"] !== void 0 || process.env.VITEST === "true" || process.env.EGG_TS_ENABLE === "true" || nodeMajorVersion >= 22;
34
+ debug("[isSupportTypeScript] %o, extensions: %j, process.env.VITEST: %j, process.env.EGG_TS_ENABLE: %j, node version: %s", _supportTypeScript, Object.keys(extensions), process.env.VITEST, process.env.EGG_TS_ENABLE, process.versions.node);
35
+ }
36
+ return _supportTypeScript;
63
37
  }
64
38
  function tryToResolveFromFile(filepath) {
65
- // "type": "module", try index.mjs then index.js
66
- const type = isESM ? 'module' : 'commonjs';
67
- let mainIndexFile = '';
68
- if (type === 'module') {
69
- mainIndexFile = filepath + '.mjs';
70
- if (fs.existsSync(mainIndexFile)) {
71
- debug('[tryToResolveFromFile] %o, use index.mjs, type: %o', mainIndexFile, type);
72
- return mainIndexFile;
73
- }
74
- mainIndexFile = filepath + '.js';
75
- if (fs.existsSync(mainIndexFile)) {
76
- debug('[tryToResolveFromFile] %o, use index.js, type: %o', mainIndexFile, type);
77
- return mainIndexFile;
78
- }
79
- }
80
- else {
81
- // "type": "commonjs", try index.js then index.cjs
82
- mainIndexFile = filepath + '.cjs';
83
- if (fs.existsSync(mainIndexFile)) {
84
- debug('[tryToResolveFromFile] %o, use index.cjs, type: %o', mainIndexFile, type);
85
- return mainIndexFile;
86
- }
87
- mainIndexFile = filepath + '.js';
88
- if (fs.existsSync(mainIndexFile)) {
89
- debug('[tryToResolveFromFile] %o, use index.js, type: %o', mainIndexFile, type);
90
- return mainIndexFile;
91
- }
92
- }
93
- if (!isSupportTypeScript()) {
94
- return;
95
- }
96
- // for the module under development
97
- mainIndexFile = filepath + '.ts';
98
- if (fs.existsSync(mainIndexFile)) {
99
- debug('[tryToResolveFromFile] %o, use index.ts, type: %o', mainIndexFile, type);
100
- return mainIndexFile;
101
- }
39
+ const type = isESM ? "module" : "commonjs";
40
+ let mainIndexFile = "";
41
+ if (type === "module") {
42
+ mainIndexFile = filepath + ".mjs";
43
+ if (fs.existsSync(mainIndexFile)) {
44
+ debug("[tryToResolveFromFile] %o, use index.mjs, type: %o", mainIndexFile, type);
45
+ return mainIndexFile;
46
+ }
47
+ mainIndexFile = filepath + ".js";
48
+ if (fs.existsSync(mainIndexFile)) {
49
+ debug("[tryToResolveFromFile] %o, use index.js, type: %o", mainIndexFile, type);
50
+ return mainIndexFile;
51
+ }
52
+ } else {
53
+ mainIndexFile = filepath + ".cjs";
54
+ if (fs.existsSync(mainIndexFile)) {
55
+ debug("[tryToResolveFromFile] %o, use index.cjs, type: %o", mainIndexFile, type);
56
+ return mainIndexFile;
57
+ }
58
+ mainIndexFile = filepath + ".js";
59
+ if (fs.existsSync(mainIndexFile)) {
60
+ debug("[tryToResolveFromFile] %o, use index.js, type: %o", mainIndexFile, type);
61
+ return mainIndexFile;
62
+ }
63
+ }
64
+ if (!isSupportTypeScript()) return;
65
+ mainIndexFile = filepath + ".ts";
66
+ if (fs.existsSync(mainIndexFile)) {
67
+ debug("[tryToResolveFromFile] %o, use index.ts, type: %o", mainIndexFile, type);
68
+ return mainIndexFile;
69
+ }
102
70
  }
103
71
  function tryToResolveByDirnameFromPackage(dirname, pkg) {
104
- // try to read pkg.main or pkg.module first
105
- // "main": "./dist/commonjs/index.js",
106
- // "module": "./dist/esm/index.js"
107
- const defaultMainFile = isESM ? (pkg.module ?? pkg.main) : pkg.main;
108
- if (defaultMainFile) {
109
- const mainIndexFilePath = path.join(dirname, defaultMainFile);
110
- if (fs.existsSync(mainIndexFilePath)) {
111
- debug('[tryToResolveByDirnameFromPackage] %o, use pkg.main or pkg.module: %o, isESM: %s', mainIndexFilePath, defaultMainFile, isESM);
112
- return mainIndexFilePath;
113
- }
114
- }
115
- // detect from exports
116
- if (pkg.exports?.['.']) {
117
- const pkgType = pkg.type ?? 'commonjs';
118
- const defaultExport = pkg.exports['.'];
119
- let mainIndexFilePath = '';
120
- if (typeof defaultExport === 'string') {
121
- mainIndexFilePath = path.join(dirname, defaultExport);
122
- }
123
- else {
124
- // "type": "module",
125
- if (pkgType === 'module') {
126
- if (typeof defaultExport.import === 'string') {
127
- mainIndexFilePath = path.join(dirname, defaultExport.import);
128
- }
129
- else if (typeof defaultExport.import?.default === 'string') {
130
- mainIndexFilePath = path.join(dirname, defaultExport.import.default);
131
- }
132
- }
133
- else {
134
- // "type": "commonjs",
135
- if (typeof defaultExport.require === 'string') {
136
- mainIndexFilePath = path.join(dirname, defaultExport.require);
137
- }
138
- else if (typeof defaultExport.require?.default === 'string') {
139
- mainIndexFilePath = path.join(dirname, defaultExport.require.default);
140
- }
141
- }
142
- }
143
- if (mainIndexFilePath && fs.existsSync(mainIndexFilePath)) {
144
- debug('[tryToResolveByDirnameFromPackage] %o, use pkg.exports[.]: %o, pkg.type: %o', mainIndexFilePath, defaultExport, pkgType);
145
- return mainIndexFilePath;
146
- }
147
- }
148
- // "type": "module", try index.mjs then index.js
149
- const type = pkg?.type ?? (isESM ? 'module' : 'commonjs');
150
- if (type === 'module') {
151
- const mainIndexFilePath = path.join(dirname, 'index.mjs');
152
- if (fs.existsSync(mainIndexFilePath)) {
153
- debug('[tryToResolveByDirnameFromPackage] %o, use index.mjs, pkg.type: %o', mainIndexFilePath, type);
154
- return mainIndexFilePath;
155
- }
156
- const mainIndexMjsFilePath = path.join(dirname, 'index.js');
157
- if (fs.existsSync(mainIndexMjsFilePath)) {
158
- debug('[tryToResolveByDirnameFromPackage] %o, use index.js, pkg.type: %o', mainIndexMjsFilePath, type);
159
- return mainIndexMjsFilePath;
160
- }
161
- }
162
- else {
163
- // "type": "commonjs", try index.cjs then index.js
164
- const mainIndexFilePath = path.join(dirname, 'index.cjs');
165
- if (fs.existsSync(mainIndexFilePath)) {
166
- debug('[tryToResolveByDirnameFromPackage] %o, use index.cjs, pkg.type: %o', mainIndexFilePath, type);
167
- return mainIndexFilePath;
168
- }
169
- const mainIndexCjsFilePath = path.join(dirname, 'index.js');
170
- if (fs.existsSync(mainIndexCjsFilePath)) {
171
- debug('[tryToResolveByDirnameFromPackage] %o, use index.js, pkg.type: %o', mainIndexCjsFilePath, type);
172
- return mainIndexCjsFilePath;
173
- }
174
- }
175
- if (!isSupportTypeScript()) {
176
- return;
177
- }
178
- // for the module under development
179
- // "tshy": {
180
- // "exports": {
181
- // "./package.json": "./package.json",
182
- // ".": "./src/index.ts"
183
- // }
184
- // }
185
- const mainIndexFile = pkg.tshy?.exports?.['.'] ?? 'index.ts';
186
- const mainIndexFilePath = path.join(dirname, mainIndexFile);
187
- if (fs.existsSync(mainIndexFilePath)) {
188
- return mainIndexFilePath;
189
- }
72
+ const defaultMainFile = isESM ? pkg.module ?? pkg.main : pkg.main;
73
+ if (defaultMainFile) {
74
+ const mainIndexFilePath$1 = path.join(dirname, defaultMainFile);
75
+ if (fs.existsSync(mainIndexFilePath$1)) {
76
+ debug("[tryToResolveByDirnameFromPackage] %o, use pkg.main or pkg.module: %o, isESM: %s", mainIndexFilePath$1, defaultMainFile, isESM);
77
+ return mainIndexFilePath$1;
78
+ }
79
+ }
80
+ if (pkg.exports?.["."]) {
81
+ const pkgType = pkg.type ?? "commonjs";
82
+ const defaultExport = pkg.exports["."];
83
+ let mainIndexFilePath$1 = "";
84
+ if (typeof defaultExport === "string") mainIndexFilePath$1 = path.join(dirname, defaultExport);
85
+ else if (pkgType === "module") {
86
+ if (typeof defaultExport.import === "string") mainIndexFilePath$1 = path.join(dirname, defaultExport.import);
87
+ else if (typeof defaultExport.import?.default === "string") mainIndexFilePath$1 = path.join(dirname, defaultExport.import.default);
88
+ } else if (typeof defaultExport.require === "string") mainIndexFilePath$1 = path.join(dirname, defaultExport.require);
89
+ else if (typeof defaultExport.require?.default === "string") mainIndexFilePath$1 = path.join(dirname, defaultExport.require.default);
90
+ if (mainIndexFilePath$1 && fs.existsSync(mainIndexFilePath$1)) {
91
+ debug("[tryToResolveByDirnameFromPackage] %o, use pkg.exports[.]: %o, pkg.type: %o", mainIndexFilePath$1, defaultExport, pkgType);
92
+ return mainIndexFilePath$1;
93
+ }
94
+ }
95
+ const type = pkg?.type ?? (isESM ? "module" : "commonjs");
96
+ if (type === "module") {
97
+ const mainIndexFilePath$1 = path.join(dirname, "index.mjs");
98
+ if (fs.existsSync(mainIndexFilePath$1)) {
99
+ debug("[tryToResolveByDirnameFromPackage] %o, use index.mjs, pkg.type: %o", mainIndexFilePath$1, type);
100
+ return mainIndexFilePath$1;
101
+ }
102
+ const mainIndexMjsFilePath = path.join(dirname, "index.js");
103
+ if (fs.existsSync(mainIndexMjsFilePath)) {
104
+ debug("[tryToResolveByDirnameFromPackage] %o, use index.js, pkg.type: %o", mainIndexMjsFilePath, type);
105
+ return mainIndexMjsFilePath;
106
+ }
107
+ } else {
108
+ const mainIndexFilePath$1 = path.join(dirname, "index.cjs");
109
+ if (fs.existsSync(mainIndexFilePath$1)) {
110
+ debug("[tryToResolveByDirnameFromPackage] %o, use index.cjs, pkg.type: %o", mainIndexFilePath$1, type);
111
+ return mainIndexFilePath$1;
112
+ }
113
+ const mainIndexCjsFilePath = path.join(dirname, "index.js");
114
+ if (fs.existsSync(mainIndexCjsFilePath)) {
115
+ debug("[tryToResolveByDirnameFromPackage] %o, use index.js, pkg.type: %o", mainIndexCjsFilePath, type);
116
+ return mainIndexCjsFilePath;
117
+ }
118
+ }
119
+ if (!isSupportTypeScript()) return;
120
+ const mainIndexFile = pkg.tshy?.exports?.["."] ?? "index.ts";
121
+ const mainIndexFilePath = path.join(dirname, mainIndexFile);
122
+ if (fs.existsSync(mainIndexFilePath)) return mainIndexFilePath;
190
123
  }
191
124
  function tryToResolveByDirname(dirname) {
192
- let pkg = {};
193
- const pkgFile = path.join(dirname, 'package.json');
194
- if (fs.existsSync(pkgFile)) {
195
- pkg = JSON.parse(fs.readFileSync(pkgFile, 'utf-8'));
196
- }
197
- return tryToResolveByDirnameFromPackage(dirname, pkg);
125
+ let pkg = {};
126
+ const pkgFile = path.join(dirname, "package.json");
127
+ if (fs.existsSync(pkgFile)) pkg = JSON.parse(fs.readFileSync(pkgFile, "utf-8"));
128
+ return tryToResolveByDirnameFromPackage(dirname, pkg);
198
129
  }
199
130
  function isRelativePath(filepath) {
200
- return (filepath.startsWith('./') || filepath.startsWith('../') || filepath.startsWith('.\\') || filepath.startsWith('..\\'));
131
+ return filepath.startsWith("./") || filepath.startsWith("../") || filepath.startsWith(".\\") || filepath.startsWith("..\\");
201
132
  }
202
133
  function tryToResolveFromAbsoluteFile(filepath) {
203
- let moduleFilePath;
204
- const stat = fs.statSync(filepath, { throwIfNoEntry: false });
205
- // try to resolve from directory
206
- if (stat?.isDirectory()) {
207
- moduleFilePath = tryToResolveByDirname(filepath);
208
- if (moduleFilePath) {
209
- return moduleFilePath;
210
- }
211
- }
212
- else if (stat?.isFile()) {
213
- return filepath;
214
- }
215
- // try to resolve from file
216
- moduleFilePath = tryToResolveFromFile(filepath);
217
- if (moduleFilePath) {
218
- return moduleFilePath;
219
- }
220
- // try to resolve from parent directory and read package.json#exports
221
- // e.g: /path/to/mock/app => /path/to/mock/src/app.ts
222
- // {
223
- // "exports": {
224
- // "./app": "./src/app.ts"
225
- // }
226
- // }
227
- const parentDir = path.dirname(filepath);
228
- const basename = path.basename(filepath);
229
- const pkgFile = path.join(parentDir, 'package.json');
230
- if (fs.existsSync(pkgFile)) {
231
- const pkg = JSON.parse(fs.readFileSync(pkgFile, 'utf-8'));
232
- const key = `./${basename}`;
233
- if (pkg.exports?.[key]) {
234
- return path.join(parentDir, pkg.exports[key]);
235
- }
236
- }
134
+ let moduleFilePath;
135
+ const stat = fs.statSync(filepath, { throwIfNoEntry: false });
136
+ if (stat?.isDirectory()) {
137
+ moduleFilePath = tryToResolveByDirname(filepath);
138
+ if (moduleFilePath) return moduleFilePath;
139
+ } else if (stat?.isFile()) return filepath;
140
+ moduleFilePath = tryToResolveFromFile(filepath);
141
+ if (moduleFilePath) return moduleFilePath;
142
+ const parentDir = path.dirname(filepath);
143
+ const basename = path.basename(filepath);
144
+ const pkgFile = path.join(parentDir, "package.json");
145
+ if (fs.existsSync(pkgFile)) {
146
+ const pkg = JSON.parse(fs.readFileSync(pkgFile, "utf-8"));
147
+ const key = `./${basename}`;
148
+ if (pkg.exports?.[key]) return path.join(parentDir, pkg.exports[key]);
149
+ }
237
150
  }
238
- export function importResolve(filepath, options) {
239
- // find *.json or CommonJS module by require.resolve
240
- // e.g.: importResolve('egg/package.json', { paths })
241
- const paths = options?.paths ?? [process.cwd()];
242
- debug('[importResolve] filepath: %o, options: %j, paths: %j', filepath, options, paths);
243
- let moduleFilePath;
244
- const isAbsolute = path.isAbsolute(filepath);
245
- if (isAbsolute) {
246
- moduleFilePath = tryToResolveFromAbsoluteFile(filepath);
247
- if (moduleFilePath) {
248
- debug('[importResolve:isAbsolute] %o => %o', filepath, moduleFilePath);
249
- return moduleFilePath;
250
- }
251
- }
252
- else if (isRelativePath(filepath)) {
253
- for (const p of paths) {
254
- const resolvedPath = path.resolve(p, filepath);
255
- moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
256
- if (moduleFilePath) {
257
- debug('[importResolve:isRelativePath] %o => %o => %o', filepath, resolvedPath, moduleFilePath);
258
- return moduleFilePath;
259
- }
260
- }
261
- }
262
- // find from node_modules
263
- for (const p of paths) {
264
- let resolvedPath = path.join(p, 'node_modules', filepath);
265
- moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
266
- if (moduleFilePath) {
267
- debug('[importResolve:node_modules] %o => %o => %o', filepath, resolvedPath, moduleFilePath);
268
- return moduleFilePath;
269
- }
270
- // find from parent node_modules
271
- // non-scoped package, e.g: node_modules/egg
272
- let parentPath = path.dirname(p);
273
- if (path.basename(parentPath) === 'node_modules') {
274
- resolvedPath = path.join(parentPath, filepath);
275
- moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
276
- if (moduleFilePath) {
277
- debug('[importResolve:node_modules] %o => %o => %o', filepath, resolvedPath, moduleFilePath);
278
- return moduleFilePath;
279
- }
280
- }
281
- // scoped package, e.g: node_modules/@eggjs/tegg
282
- parentPath = path.dirname(parentPath);
283
- if (path.basename(parentPath) === 'node_modules') {
284
- resolvedPath = path.join(parentPath, filepath);
285
- moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
286
- if (moduleFilePath) {
287
- debug('[importResolve:node_modules] %o => %o => %o', filepath, resolvedPath, moduleFilePath);
288
- return moduleFilePath;
289
- }
290
- }
291
- }
292
- const extname = path.extname(filepath);
293
- if ((!isAbsolute && extname === '.json') || !isESM) {
294
- moduleFilePath = getRequire().resolve(filepath, {
295
- paths,
296
- });
297
- }
298
- else {
299
- if (supportImportMetaResolve) {
300
- try {
301
- moduleFilePath = import.meta.resolve(filepath);
302
- }
303
- catch (err) {
304
- debug('[importResolve:error] import.meta.resolve %o => %o, options: %o', filepath, err, options);
305
- throw new ImportResolveError(filepath, paths, err);
306
- }
307
- if (moduleFilePath.startsWith('file://')) {
308
- // resolve will return file:// URL on Linux and MacOS expect on Windows
309
- moduleFilePath = fileURLToPath(moduleFilePath);
310
- }
311
- debug('[importResolve] import.meta.resolve %o => %o', filepath, moduleFilePath);
312
- const stat = fs.statSync(moduleFilePath, { throwIfNoEntry: false });
313
- if (!stat?.isFile()) {
314
- throw new TypeError(`Cannot find module ${filepath}, because ${moduleFilePath} does not exists`);
315
- }
316
- }
317
- else {
318
- moduleFilePath = getRequire().resolve(filepath);
319
- }
320
- }
321
- debug('[importResolve:success] %o, options: %o => %o, isESM: %s', filepath, options, moduleFilePath, isESM);
322
- return moduleFilePath;
151
+ function importResolve(filepath, options) {
152
+ const paths = options?.paths ?? [process.cwd()];
153
+ debug("[importResolve] filepath: %o, options: %j, paths: %j", filepath, options, paths);
154
+ let moduleFilePath;
155
+ const isAbsolute = path.isAbsolute(filepath);
156
+ if (isAbsolute) {
157
+ moduleFilePath = tryToResolveFromAbsoluteFile(filepath);
158
+ if (moduleFilePath) {
159
+ debug("[importResolve:isAbsolute] %o => %o", filepath, moduleFilePath);
160
+ return moduleFilePath;
161
+ }
162
+ } else if (isRelativePath(filepath)) for (const p of paths) {
163
+ const resolvedPath = path.resolve(p, filepath);
164
+ moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
165
+ if (moduleFilePath) {
166
+ debug("[importResolve:isRelativePath] %o => %o => %o", filepath, resolvedPath, moduleFilePath);
167
+ return moduleFilePath;
168
+ }
169
+ }
170
+ for (const p of paths) {
171
+ let resolvedPath = path.join(p, "node_modules", filepath);
172
+ moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
173
+ if (moduleFilePath) {
174
+ debug("[importResolve:node_modules] %o => %o => %o", filepath, resolvedPath, moduleFilePath);
175
+ return moduleFilePath;
176
+ }
177
+ let parentPath = path.dirname(p);
178
+ if (path.basename(parentPath) === "node_modules") {
179
+ resolvedPath = path.join(parentPath, filepath);
180
+ moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
181
+ if (moduleFilePath) {
182
+ debug("[importResolve:node_modules] %o => %o => %o", filepath, resolvedPath, moduleFilePath);
183
+ return moduleFilePath;
184
+ }
185
+ }
186
+ parentPath = path.dirname(parentPath);
187
+ if (path.basename(parentPath) === "node_modules") {
188
+ resolvedPath = path.join(parentPath, filepath);
189
+ moduleFilePath = tryToResolveFromAbsoluteFile(resolvedPath);
190
+ if (moduleFilePath) {
191
+ debug("[importResolve:node_modules] %o => %o => %o", filepath, resolvedPath, moduleFilePath);
192
+ return moduleFilePath;
193
+ }
194
+ }
195
+ }
196
+ const extname = path.extname(filepath);
197
+ if (!isAbsolute && extname === ".json" || !isESM) moduleFilePath = getRequire().resolve(filepath, { paths });
198
+ else if (supportImportMetaResolve) {
199
+ try {
200
+ moduleFilePath = import.meta.resolve(filepath);
201
+ } catch (err) {
202
+ debug("[importResolve:error] import.meta.resolve %o => %o, options: %o", filepath, err, options);
203
+ throw new ImportResolveError(filepath, paths, err);
204
+ }
205
+ if (moduleFilePath.startsWith("file://")) moduleFilePath = fileURLToPath(moduleFilePath);
206
+ debug("[importResolve] import.meta.resolve %o => %o", filepath, moduleFilePath);
207
+ if (!fs.statSync(moduleFilePath, { throwIfNoEntry: false })?.isFile()) throw new TypeError(`Cannot find module ${filepath}, because ${moduleFilePath} does not exists`);
208
+ } else moduleFilePath = getRequire().resolve(filepath);
209
+ debug("[importResolve:success] %o, options: %o => %o, isESM: %s", filepath, options, moduleFilePath, isESM);
210
+ return moduleFilePath;
323
211
  }
324
- export async function importModule(filepath, options) {
325
- const moduleFilePath = importResolve(filepath, options);
326
- let obj;
327
- if (isESM) {
328
- // esm
329
- const fileUrl = pathToFileURL(moduleFilePath).toString();
330
- debug('[importModule:start] await import fileUrl: %s, isESM: %s', fileUrl, isESM);
331
- obj = await import(__rewriteRelativeImportExtension(fileUrl));
332
- debug('[importModule:success] await import %o', fileUrl);
333
- // {
334
- // default: { foo: 'bar', one: 1 },
335
- // foo: 'bar',
336
- // one: 1,
337
- // [Symbol(Symbol.toStringTag)]: 'Module'
338
- // }
339
- if (obj?.default?.__esModule === true && 'default' in obj?.default) {
340
- // 兼容 cjs 模拟 esm 的导出格式
341
- // {
342
- // __esModule: true,
343
- // default: {
344
- // __esModule: true,
345
- // default: {
346
- // fn: [Function: fn] { [length]: 0, [name]: 'fn' },
347
- // foo: 'bar',
348
- // one: 1
349
- // }
350
- // },
351
- // [Symbol(Symbol.toStringTag)]: 'Module'
352
- // }
353
- // 兼容 ts module
354
- // {
355
- // default: {
356
- // [__esModule]: true,
357
- // default: <ref *1> [Function: default_1] {
358
- // [length]: 0,
359
- // [name]: 'default_1',
360
- // [prototype]: { [constructor]: [Circular *1] }
361
- // }
362
- // },
363
- // [Symbol(Symbol.toStringTag)]: 'Module'
364
- // }
365
- obj = obj.default;
366
- }
367
- if (options?.importDefaultOnly) {
368
- if ('default' in obj) {
369
- obj = obj.default;
370
- }
371
- }
372
- }
373
- else {
374
- // commonjs
375
- obj = require(moduleFilePath);
376
- debug('[importModule] require %o', moduleFilePath);
377
- if (obj?.__esModule === true && 'default' in obj) {
378
- // 兼容 cjs 模拟 esm 的导出格式
379
- // {
380
- // __esModule: true,
381
- // default: { fn: [Function: fn], foo: 'bar', one: 1 }
382
- // }
383
- obj = obj.default;
384
- }
385
- }
386
- if (debug.enabled) {
387
- debug('[importModule] return %o => keys: %j, typeof obj: %s', filepath, obj ? Object.keys(obj) : obj, typeof obj);
388
- }
389
- return obj;
212
+ async function importModule(filepath, options) {
213
+ const moduleFilePath = importResolve(filepath, options);
214
+ let obj;
215
+ if (isESM) {
216
+ const fileUrl = pathToFileURL(moduleFilePath).toString();
217
+ debug("[importModule:start] await import fileUrl: %s, isESM: %s", fileUrl, isESM);
218
+ obj = await import(fileUrl);
219
+ debug("[importModule:success] await import %o", fileUrl);
220
+ if (obj?.default?.__esModule === true && "default" in obj?.default) obj = obj.default;
221
+ if (options?.importDefaultOnly) {
222
+ if ("default" in obj) obj = obj.default;
223
+ }
224
+ } else {
225
+ obj = __require(moduleFilePath);
226
+ debug("[importModule] require %o", moduleFilePath);
227
+ if (obj?.__esModule === true && "default" in obj) obj = obj.default;
228
+ }
229
+ if (debug.enabled) debug("[importModule] return %o => keys: %j, typeof obj: %s", filepath, obj ? Object.keys(obj) : obj, typeof obj);
230
+ return obj;
390
231
  }
391
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2ltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7OztBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RCxPQUFPLElBQUksTUFBTSxXQUFXLENBQUM7QUFDN0IsT0FBTyxFQUFFLE1BQU0sU0FBUyxDQUFDO0FBRXpCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXRELE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0FBVzNDLHVCQUF1QjtBQUN2QixNQUFNLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSxDQUFDO0FBQ3hCLElBQUksQ0FBQztJQUNILG1EQUFtRDtJQUNuRCxJQUFJLE9BQU8sTUFBTSxDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztRQUN2QyxLQUFLLEdBQUcsSUFBSSxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFBQyxNQUFNLENBQUM7SUFDUCxtREFBbUQ7SUFDbkQsS0FBSyxHQUFHLEtBQUssQ0FBQztBQUNoQixDQUFDO0FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5RSxNQUFNLHdCQUF3QixHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztBQUV4RCxJQUFJLGNBQTJCLENBQUM7QUFDaEMsTUFBTSxVQUFVLFVBQVU7SUFDeEIsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBQ3BCLElBQUksT0FB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
232
+
233
+ //#endregion
234
+ export { getExtensions, getRequire, importModule, importResolve, isESM, isSupportTypeScript };