@eggjs/utils 4.1.2 → 4.1.4
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/commonjs/import.js +29 -21
- package/dist/esm/import.js +29 -21
- package/dist/package.json +1 -1
- package/package.json +3 -3
- package/src/import.ts +28 -19
package/dist/commonjs/import.js
CHANGED
|
@@ -138,8 +138,10 @@ function tryToResolveByDirname(dirname) {
|
|
|
138
138
|
}
|
|
139
139
|
function importResolve(filepath, options) {
|
|
140
140
|
let moduleFilePath;
|
|
141
|
-
|
|
141
|
+
const isAbsolute = node_path_1.default.isAbsolute(filepath);
|
|
142
|
+
if (isAbsolute) {
|
|
142
143
|
const stat = node_fs_1.default.statSync(filepath, { throwIfNoEntry: false });
|
|
144
|
+
// try to resolve from directory
|
|
143
145
|
if (stat?.isDirectory()) {
|
|
144
146
|
moduleFilePath = tryToResolveByDirname(filepath);
|
|
145
147
|
if (moduleFilePath) {
|
|
@@ -147,15 +149,24 @@ function importResolve(filepath, options) {
|
|
|
147
149
|
return moduleFilePath;
|
|
148
150
|
}
|
|
149
151
|
}
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
}
|
|
152
|
+
// try to resolve from file
|
|
153
|
+
moduleFilePath = tryToResolveFromFile(filepath);
|
|
154
|
+
if (moduleFilePath) {
|
|
155
|
+
debug('[importResolve] %o => %o', filepath, moduleFilePath);
|
|
156
|
+
return moduleFilePath;
|
|
156
157
|
}
|
|
157
158
|
}
|
|
158
|
-
|
|
159
|
+
const extname = node_path_1.default.extname(filepath);
|
|
160
|
+
if ((!isAbsolute && extname === '.json') || !isESM) {
|
|
161
|
+
// find *.json or CommonJS module by require.resolve
|
|
162
|
+
// e.g.: importResolve('egg/package.json', { paths })
|
|
163
|
+
const cwd = process.cwd();
|
|
164
|
+
const paths = options?.paths ?? [cwd];
|
|
165
|
+
moduleFilePath = getRequire().resolve(filepath, {
|
|
166
|
+
paths,
|
|
167
|
+
});
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
159
170
|
if (supportImportMetaResolve) {
|
|
160
171
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
161
172
|
// @ts-ignore
|
|
@@ -164,19 +175,15 @@ function importResolve(filepath, options) {
|
|
|
164
175
|
// resolve will return file:// URL on Linux and MacOS expect on Windows
|
|
165
176
|
moduleFilePath = (0, node_url_1.fileURLToPath)(moduleFilePath);
|
|
166
177
|
}
|
|
178
|
+
if (!node_fs_1.default.existsSync(moduleFilePath)) {
|
|
179
|
+
throw new TypeError(`Cannot find module ${filepath}, because ${moduleFilePath} does not exists`);
|
|
180
|
+
}
|
|
167
181
|
}
|
|
168
182
|
else {
|
|
169
183
|
moduleFilePath = getRequire().resolve(filepath);
|
|
170
184
|
}
|
|
171
185
|
}
|
|
172
|
-
|
|
173
|
-
const cwd = process.cwd();
|
|
174
|
-
const paths = options?.paths ?? [cwd];
|
|
175
|
-
moduleFilePath = require.resolve(filepath, {
|
|
176
|
-
paths,
|
|
177
|
-
});
|
|
178
|
-
}
|
|
179
|
-
debug('[importResolve] %o, options: %o => %o', filepath, options, moduleFilePath);
|
|
186
|
+
debug('[importResolve] %o, options: %o => %o, isESM: %s', filepath, options, moduleFilePath, isESM);
|
|
180
187
|
return moduleFilePath;
|
|
181
188
|
}
|
|
182
189
|
async function importModule(filepath, options) {
|
|
@@ -185,9 +192,8 @@ async function importModule(filepath, options) {
|
|
|
185
192
|
if (isESM) {
|
|
186
193
|
// esm
|
|
187
194
|
const fileUrl = (0, node_url_1.pathToFileURL)(moduleFilePath).toString();
|
|
188
|
-
debug('[importModule] await import start: %o', fileUrl);
|
|
189
195
|
obj = await import(fileUrl);
|
|
190
|
-
debug('[importModule] await import
|
|
196
|
+
debug('[importModule] await import %o', fileUrl);
|
|
191
197
|
// {
|
|
192
198
|
// default: { foo: 'bar', one: 1 },
|
|
193
199
|
// foo: 'bar',
|
|
@@ -231,7 +237,7 @@ async function importModule(filepath, options) {
|
|
|
231
237
|
else {
|
|
232
238
|
// commonjs
|
|
233
239
|
obj = require(moduleFilePath);
|
|
234
|
-
debug('[importModule] require %o
|
|
240
|
+
debug('[importModule] require %o', moduleFilePath);
|
|
235
241
|
if (obj?.__esModule === true && 'default' in obj) {
|
|
236
242
|
// 兼容 cjs 模拟 esm 的导出格式
|
|
237
243
|
// {
|
|
@@ -241,7 +247,9 @@ async function importModule(filepath, options) {
|
|
|
241
247
|
obj = obj.default;
|
|
242
248
|
}
|
|
243
249
|
}
|
|
244
|
-
debug
|
|
250
|
+
if (debug.enabled) {
|
|
251
|
+
debug('[importModule] return %o => keys: %j', filepath, obj ? Object.keys(obj) : obj);
|
|
252
|
+
}
|
|
245
253
|
return obj;
|
|
246
254
|
}
|
|
247
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
255
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQXVKQSxzQ0FpREM7QUFFRCxvQ0FnRUM7QUExUUQseUNBQXFDO0FBQ3JDLDZDQUE0QztBQUM1Qyx1Q0FBd0Q7QUFDeEQsMERBQTZCO0FBQzdCLHNEQUF5QjtBQUV6QixNQUFNLEtBQUssR0FBRyxJQUFBLG9CQUFRLEVBQUMscUJBQXFCLENBQUMsQ0FBQztBQVc5QyxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUM7QUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5RSxNQUFNLHdCQUF3QixHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztBQUV4RCxJQUFJLGNBQTJCLENBQUM7QUFDaEMsU0FBUyxVQUFVO0lBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLGNBQWMsR0FBRyxPQUFPLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcsSUFBQSwyQkFBYSxFQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELElBQUksa0JBQXVDLENBQUM7QUFDNUMsU0FBUyxtQkFBbUI7SUFDMUIsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUNyQyxNQUFNLFVBQVUsR0FBRyxVQUFVLEVBQUUsQ0FBQyxVQUFVLENBQUM7UUFDM0Msa0JBQWtCLEdBQUcsVUFBVSxDQUFDLEtBQUss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
|
package/dist/esm/import.js
CHANGED
|
@@ -131,8 +131,10 @@ function tryToResolveByDirname(dirname) {
|
|
|
131
131
|
}
|
|
132
132
|
export function importResolve(filepath, options) {
|
|
133
133
|
let moduleFilePath;
|
|
134
|
-
|
|
134
|
+
const isAbsolute = path.isAbsolute(filepath);
|
|
135
|
+
if (isAbsolute) {
|
|
135
136
|
const stat = fs.statSync(filepath, { throwIfNoEntry: false });
|
|
137
|
+
// try to resolve from directory
|
|
136
138
|
if (stat?.isDirectory()) {
|
|
137
139
|
moduleFilePath = tryToResolveByDirname(filepath);
|
|
138
140
|
if (moduleFilePath) {
|
|
@@ -140,15 +142,24 @@ export function importResolve(filepath, options) {
|
|
|
140
142
|
return moduleFilePath;
|
|
141
143
|
}
|
|
142
144
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
145
|
+
// try to resolve from file
|
|
146
|
+
moduleFilePath = tryToResolveFromFile(filepath);
|
|
147
|
+
if (moduleFilePath) {
|
|
148
|
+
debug('[importResolve] %o => %o', filepath, moduleFilePath);
|
|
149
|
+
return moduleFilePath;
|
|
149
150
|
}
|
|
150
151
|
}
|
|
151
|
-
|
|
152
|
+
const extname = path.extname(filepath);
|
|
153
|
+
if ((!isAbsolute && extname === '.json') || !isESM) {
|
|
154
|
+
// find *.json or CommonJS module by require.resolve
|
|
155
|
+
// e.g.: importResolve('egg/package.json', { paths })
|
|
156
|
+
const cwd = process.cwd();
|
|
157
|
+
const paths = options?.paths ?? [cwd];
|
|
158
|
+
moduleFilePath = getRequire().resolve(filepath, {
|
|
159
|
+
paths,
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
else {
|
|
152
163
|
if (supportImportMetaResolve) {
|
|
153
164
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
154
165
|
// @ts-ignore
|
|
@@ -157,19 +168,15 @@ export function importResolve(filepath, options) {
|
|
|
157
168
|
// resolve will return file:// URL on Linux and MacOS expect on Windows
|
|
158
169
|
moduleFilePath = fileURLToPath(moduleFilePath);
|
|
159
170
|
}
|
|
171
|
+
if (!fs.existsSync(moduleFilePath)) {
|
|
172
|
+
throw new TypeError(`Cannot find module ${filepath}, because ${moduleFilePath} does not exists`);
|
|
173
|
+
}
|
|
160
174
|
}
|
|
161
175
|
else {
|
|
162
176
|
moduleFilePath = getRequire().resolve(filepath);
|
|
163
177
|
}
|
|
164
178
|
}
|
|
165
|
-
|
|
166
|
-
const cwd = process.cwd();
|
|
167
|
-
const paths = options?.paths ?? [cwd];
|
|
168
|
-
moduleFilePath = require.resolve(filepath, {
|
|
169
|
-
paths,
|
|
170
|
-
});
|
|
171
|
-
}
|
|
172
|
-
debug('[importResolve] %o, options: %o => %o', filepath, options, moduleFilePath);
|
|
179
|
+
debug('[importResolve] %o, options: %o => %o, isESM: %s', filepath, options, moduleFilePath, isESM);
|
|
173
180
|
return moduleFilePath;
|
|
174
181
|
}
|
|
175
182
|
export async function importModule(filepath, options) {
|
|
@@ -178,9 +185,8 @@ export async function importModule(filepath, options) {
|
|
|
178
185
|
if (isESM) {
|
|
179
186
|
// esm
|
|
180
187
|
const fileUrl = pathToFileURL(moduleFilePath).toString();
|
|
181
|
-
debug('[importModule] await import start: %o', fileUrl);
|
|
182
188
|
obj = await import(fileUrl);
|
|
183
|
-
debug('[importModule] await import
|
|
189
|
+
debug('[importModule] await import %o', fileUrl);
|
|
184
190
|
// {
|
|
185
191
|
// default: { foo: 'bar', one: 1 },
|
|
186
192
|
// foo: 'bar',
|
|
@@ -224,7 +230,7 @@ export async function importModule(filepath, options) {
|
|
|
224
230
|
else {
|
|
225
231
|
// commonjs
|
|
226
232
|
obj = require(moduleFilePath);
|
|
227
|
-
debug('[importModule] require %o
|
|
233
|
+
debug('[importModule] require %o', moduleFilePath);
|
|
228
234
|
if (obj?.__esModule === true && 'default' in obj) {
|
|
229
235
|
// 兼容 cjs 模拟 esm 的导出格式
|
|
230
236
|
// {
|
|
@@ -234,7 +240,9 @@ export async function importModule(filepath, options) {
|
|
|
234
240
|
obj = obj.default;
|
|
235
241
|
}
|
|
236
242
|
}
|
|
237
|
-
debug
|
|
243
|
+
if (debug.enabled) {
|
|
244
|
+
debug('[importModule] return %o => keys: %j', filepath, obj ? Object.keys(obj) : obj);
|
|
245
|
+
}
|
|
238
246
|
return obj;
|
|
239
247
|
}
|
|
240
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
248
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDNUMsT0FBTyxFQUFFLGFBQWEsRUFBRSxhQUFhLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDeEQsT0FBTyxJQUFJLE1BQU0sV0FBVyxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUV6QixNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQVc5QyxNQUFNLEtBQUssR0FBRyxPQUFPLE9BQU8sS0FBSyxXQUFXLENBQUM7QUFDN0MsTUFBTSxnQkFBZ0IsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUM5RSxNQUFNLHdCQUF3QixHQUFHLGdCQUFnQixJQUFJLEVBQUUsQ0FBQztBQUV4RCxJQUFJLGNBQTJCLENBQUM7QUFDaEMsU0FBUyxVQUFVO0lBQ2pCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUNwQixJQUFJLE9BQU8sT0FBTyxLQUFLLFdBQVcsRUFBRSxDQUFDO1lBQ25DLGNBQWMsR0FBRyxPQUFPLENBQUM7UUFDM0IsQ0FBQzthQUFNLENBQUM7WUFDTixjQUFjLEdBQUcsYUFBYSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBQ0QsT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQUVELElBQUksa0JBQXVDLENBQUM7QUFDNUMsU0FBUyxtQkFBbUI7SUFDMUIsSUFBSSxrQkFBa0IsS0FBSyxTQUFTLEVB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
|
package/dist/package.json
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@eggjs/utils",
|
|
3
|
-
"version": "4.1.
|
|
3
|
+
"version": "4.1.4",
|
|
4
4
|
"engine": {
|
|
5
5
|
"node": ">=18.19.0"
|
|
6
6
|
},
|
|
@@ -35,10 +35,10 @@
|
|
|
35
35
|
"@types/mocha": "10",
|
|
36
36
|
"@types/node": "22",
|
|
37
37
|
"coffee": "5",
|
|
38
|
-
"egg-bin": "6",
|
|
38
|
+
"egg-bin": "^6.13.0",
|
|
39
39
|
"eslint": "8",
|
|
40
40
|
"eslint-config-egg": "14",
|
|
41
|
-
"mm": "
|
|
41
|
+
"mm": "4",
|
|
42
42
|
"npminstall": "7",
|
|
43
43
|
"rimraf": "6",
|
|
44
44
|
"runscript": "2",
|
package/src/import.ts
CHANGED
|
@@ -151,8 +151,10 @@ function tryToResolveByDirname(dirname: string): string | undefined {
|
|
|
151
151
|
|
|
152
152
|
export function importResolve(filepath: string, options?: ImportResolveOptions) {
|
|
153
153
|
let moduleFilePath: string | undefined;
|
|
154
|
-
|
|
154
|
+
const isAbsolute = path.isAbsolute(filepath);
|
|
155
|
+
if (isAbsolute) {
|
|
155
156
|
const stat = fs.statSync(filepath, { throwIfNoEntry: false });
|
|
157
|
+
// try to resolve from directory
|
|
156
158
|
if (stat?.isDirectory()) {
|
|
157
159
|
moduleFilePath = tryToResolveByDirname(filepath);
|
|
158
160
|
if (moduleFilePath) {
|
|
@@ -160,16 +162,24 @@ export function importResolve(filepath: string, options?: ImportResolveOptions)
|
|
|
160
162
|
return moduleFilePath;
|
|
161
163
|
}
|
|
162
164
|
}
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
165
|
+
// try to resolve from file
|
|
166
|
+
moduleFilePath = tryToResolveFromFile(filepath);
|
|
167
|
+
if (moduleFilePath) {
|
|
168
|
+
debug('[importResolve] %o => %o', filepath, moduleFilePath);
|
|
169
|
+
return moduleFilePath;
|
|
169
170
|
}
|
|
170
171
|
}
|
|
171
172
|
|
|
172
|
-
|
|
173
|
+
const extname = path.extname(filepath);
|
|
174
|
+
if ((!isAbsolute && extname === '.json') || !isESM) {
|
|
175
|
+
// find *.json or CommonJS module by require.resolve
|
|
176
|
+
// e.g.: importResolve('egg/package.json', { paths })
|
|
177
|
+
const cwd = process.cwd();
|
|
178
|
+
const paths = options?.paths ?? [ cwd ];
|
|
179
|
+
moduleFilePath = getRequire().resolve(filepath, {
|
|
180
|
+
paths,
|
|
181
|
+
});
|
|
182
|
+
} else {
|
|
173
183
|
if (supportImportMetaResolve) {
|
|
174
184
|
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
175
185
|
// @ts-ignore
|
|
@@ -178,17 +188,15 @@ export function importResolve(filepath: string, options?: ImportResolveOptions)
|
|
|
178
188
|
// resolve will return file:// URL on Linux and MacOS expect on Windows
|
|
179
189
|
moduleFilePath = fileURLToPath(moduleFilePath);
|
|
180
190
|
}
|
|
191
|
+
if (!fs.existsSync(moduleFilePath)) {
|
|
192
|
+
throw new TypeError(`Cannot find module ${filepath}, because ${moduleFilePath} does not exists`);
|
|
193
|
+
}
|
|
181
194
|
} else {
|
|
182
195
|
moduleFilePath = getRequire().resolve(filepath);
|
|
183
196
|
}
|
|
184
|
-
} else {
|
|
185
|
-
const cwd = process.cwd();
|
|
186
|
-
const paths = options?.paths ?? [ cwd ];
|
|
187
|
-
moduleFilePath = require.resolve(filepath, {
|
|
188
|
-
paths,
|
|
189
|
-
});
|
|
190
197
|
}
|
|
191
|
-
debug('[importResolve] %o, options: %o => %o
|
|
198
|
+
debug('[importResolve] %o, options: %o => %o, isESM: %s',
|
|
199
|
+
filepath, options, moduleFilePath, isESM);
|
|
192
200
|
return moduleFilePath;
|
|
193
201
|
}
|
|
194
202
|
|
|
@@ -198,9 +206,8 @@ export async function importModule(filepath: string, options?: ImportModuleOptio
|
|
|
198
206
|
if (isESM) {
|
|
199
207
|
// esm
|
|
200
208
|
const fileUrl = pathToFileURL(moduleFilePath).toString();
|
|
201
|
-
debug('[importModule] await import start: %o', fileUrl);
|
|
202
209
|
obj = await import(fileUrl);
|
|
203
|
-
debug('[importModule] await import
|
|
210
|
+
debug('[importModule] await import %o', fileUrl);
|
|
204
211
|
// {
|
|
205
212
|
// default: { foo: 'bar', one: 1 },
|
|
206
213
|
// foo: 'bar',
|
|
@@ -243,7 +250,7 @@ export async function importModule(filepath: string, options?: ImportModuleOptio
|
|
|
243
250
|
} else {
|
|
244
251
|
// commonjs
|
|
245
252
|
obj = require(moduleFilePath);
|
|
246
|
-
debug('[importModule] require %o
|
|
253
|
+
debug('[importModule] require %o', moduleFilePath);
|
|
247
254
|
if (obj?.__esModule === true && 'default' in obj) {
|
|
248
255
|
// 兼容 cjs 模拟 esm 的导出格式
|
|
249
256
|
// {
|
|
@@ -253,6 +260,8 @@ export async function importModule(filepath: string, options?: ImportModuleOptio
|
|
|
253
260
|
obj = obj.default;
|
|
254
261
|
}
|
|
255
262
|
}
|
|
256
|
-
debug
|
|
263
|
+
if (debug.enabled) {
|
|
264
|
+
debug('[importModule] return %o => keys: %j', filepath, obj ? Object.keys(obj) : obj);
|
|
265
|
+
}
|
|
257
266
|
return obj;
|
|
258
267
|
}
|