Skip to content

Commit 67076ff

Browse files
authored
feat!: Remove dependency on resolve module (#104)
BREAKING-CHANGE: Minimum Node version is now 8.10.0 or 9.3.0
1 parent f7b7853 commit 67076ff

File tree

3 files changed

+5
-65
lines changed

3 files changed

+5
-65
lines changed

.github/workflows/test.yml

Lines changed: 1 addition & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ jobs:
1111
test-vers:
1212
strategy:
1313
matrix:
14-
node: ['8.6', '8', '10.0', '10', '12.0', '12', '14.0', '14', '16.0', '16', '18.0', '18', '20', '22']
14+
node: ['8.10', '10.0', '10', '12.0', '12', '14.0', '14', '16.0', '16', '18.0', '18', '20', '22']
1515
runs-on: ubuntu-latest
1616
steps:
1717
- uses: actions/checkout@v3
@@ -20,15 +20,3 @@ jobs:
2020
node-version: ${{ matrix.node }}
2121
- run: npm install
2222
- run: npm test
23-
test-expose-http2:
24-
strategy:
25-
matrix:
26-
node: ['8.6']
27-
runs-on: ubuntu-latest
28-
steps:
29-
- uses: actions/checkout@v3
30-
- uses: actions/setup-node@v3
31-
with:
32-
node-version: ${{ matrix.node }}
33-
- run: npm install
34-
- run: NODE_OPTIONS='--expose-http2' npm test

index.js

Lines changed: 2 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -35,54 +35,7 @@ if (Module.isBuiltin) { // Added in node v18.6.0, v16.17.0
3535
return builtinModules.has(moduleName)
3636
}
3737
} else {
38-
const _resolve = require('resolve')
39-
const [major, minor] = process.versions.node.split('.').map(Number)
40-
if (major === 8 && minor < 8) {
41-
// For node versions `[8.0, 8.8)` the "http2" module was built-in but
42-
// behind the `--expose-http2` flag. `resolve` only considers unflagged
43-
// modules to be core: https://github.com/browserify/resolve/issues/139
44-
// However, for `ExportsCache` to work for "http2" we need it to be
45-
// considered core.
46-
isCore = moduleName => {
47-
if (moduleName === 'http2') {
48-
return true
49-
}
50-
// Prefer `resolve.core` lookup to `resolve.isCore(moduleName)` because
51-
// the latter is doing version range matches for every call.
52-
return !!_resolve.core[moduleName]
53-
}
54-
} else {
55-
isCore = moduleName => {
56-
// Prefer `resolve.core` lookup to `resolve.isCore(moduleName)` because
57-
// the latter is doing version range matches for every call.
58-
return !!_resolve.core[moduleName]
59-
}
60-
}
61-
}
62-
63-
let _resolve
64-
65-
function resolve (moduleName, basedir) {
66-
// Feature detection: This property was added in Node.js 8.9.0, the same time
67-
// as the `paths` options argument was added to the `require.resolve` function,
68-
// which is the one we want
69-
if (!_resolve) {
70-
// require.resolve might be undefined when using Node SEA mode:
71-
// https://nodejs.org/api/single-executable-applications.html
72-
// Also see https://github.com/nodejs/require-in-the-middle/issues/105
73-
if (require.resolve && require.resolve.paths) {
74-
_resolve = function (moduleName, basedir) {
75-
return require.resolve(moduleName, { paths: [basedir] })
76-
}
77-
} else {
78-
const resolve = require('resolve')
79-
_resolve = function (moduleName, basedir) {
80-
return resolve.sync(moduleName, { basedir })
81-
}
82-
}
83-
}
84-
85-
return _resolve(moduleName, basedir)
38+
throw new Error('\'require-in-the-middle\' requires Node.js >=v9.3.0 or >=v8.10.0')
8639
}
8740

8841
// 'foo/bar.js' or 'foo/bar/index.js' => 'foo/bar'
@@ -320,7 +273,7 @@ function Hook (modules, options, onrequire) {
320273
// figure out if this is the main module file, or a file inside the module
321274
let res
322275
try {
323-
res = resolve(moduleName, basedir)
276+
res = require.resolve(moduleName, { paths: [basedir] })
324277
} catch (e) {
325278
debug('could not resolve module: %s', moduleName)
326279
self._cache.set(filename, exports, core)

package.json

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
"types": "types/index.d.ts",
77
"dependencies": {
88
"debug": "^4.3.5",
9-
"module-details-from-path": "^1.0.3",
10-
"resolve": "^1.22.8"
9+
"module-details-from-path": "^1.0.3"
1110
},
1211
"devDependencies": {
1312
"@babel/core": "^7.9.0",
@@ -53,6 +52,6 @@
5352
},
5453
"homepage": "https://github.com/nodejs/require-in-the-middle#readme",
5554
"engines": {
56-
"node": ">=8.6.0"
55+
"node": ">=9.3.0 || >=8.10.0 <9.0.0"
5756
}
5857
}

0 commit comments

Comments
 (0)