bare-module-traverse 2.1.1 → 2.2.0
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/README.md +4 -1
- package/index.d.ts +3 -0
- package/index.js +32 -4
- package/lib/resolve/bare.js +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -62,7 +62,10 @@ options = {
|
|
|
62
62
|
aliases: {
|
|
63
63
|
// Map an extension to a supported extension, e.g. `'.ts': '.js'`. The
|
|
64
64
|
// aliased extension is used for module type detection, so `readModule()`
|
|
65
|
-
// must return source compatible with that type.
|
|
65
|
+
// must return source compatible with that type. Aliased modules are also
|
|
66
|
+
// emitted with the aliased extension, and resolutions to them are
|
|
67
|
+
// rewritten to match, so `'.ts': '.js'` yields a `file:///foo.js`
|
|
68
|
+
// dependency rather than `file:///foo.ts`.
|
|
66
69
|
},
|
|
67
70
|
resolve: resolve.default
|
|
68
71
|
}
|
package/index.d.ts
CHANGED
package/index.js
CHANGED
|
@@ -109,6 +109,26 @@ module.exports = exports = function traverse(entry, opts, readModule, listPrefix
|
|
|
109
109
|
exports.constants = constants
|
|
110
110
|
exports.resolve = resolve
|
|
111
111
|
|
|
112
|
+
exports.alias = function alias(url, opts = {}) {
|
|
113
|
+
const { aliases = null } = opts
|
|
114
|
+
|
|
115
|
+
if (aliases === null) return url
|
|
116
|
+
|
|
117
|
+
const match = url.pathname.match(/\.[a-z]+$/)
|
|
118
|
+
|
|
119
|
+
if (match === null) return url
|
|
120
|
+
|
|
121
|
+
const [extension] = match
|
|
122
|
+
|
|
123
|
+
if (extension in aliases === false) return url
|
|
124
|
+
|
|
125
|
+
url = new URL(url)
|
|
126
|
+
|
|
127
|
+
url.pathname = url.pathname.slice(0, -extension.length) + aliases[extension]
|
|
128
|
+
|
|
129
|
+
return url
|
|
130
|
+
}
|
|
131
|
+
|
|
112
132
|
exports.module = function* (url, source, attributes, artifacts, visited, opts = {}) {
|
|
113
133
|
const { resolutions = null, defaultType = constants.SCRIPT, aliases = null } = opts
|
|
114
134
|
|
|
@@ -200,7 +220,8 @@ exports.module = function* (url, source, attributes, artifacts, visited, opts =
|
|
|
200
220
|
if (aliases !== null && extension in aliases) extension = aliases[extension]
|
|
201
221
|
|
|
202
222
|
switch (extension) {
|
|
203
|
-
case '.js':
|
|
223
|
+
case '.js':
|
|
224
|
+
case '.ts': {
|
|
204
225
|
const isESM =
|
|
205
226
|
defaultType === constants.MODULE || (info !== null && info.type === 'module')
|
|
206
227
|
|
|
@@ -208,9 +229,11 @@ exports.module = function* (url, source, attributes, artifacts, visited, opts =
|
|
|
208
229
|
break
|
|
209
230
|
}
|
|
210
231
|
case '.cjs':
|
|
232
|
+
case '.cts':
|
|
211
233
|
type = constants.SCRIPT
|
|
212
234
|
break
|
|
213
235
|
case '.mjs':
|
|
236
|
+
case '.mts':
|
|
214
237
|
type = constants.MODULE
|
|
215
238
|
break
|
|
216
239
|
case '.json':
|
|
@@ -242,7 +265,12 @@ exports.module = function* (url, source, attributes, artifacts, visited, opts =
|
|
|
242
265
|
}
|
|
243
266
|
|
|
244
267
|
yield {
|
|
245
|
-
dependency: {
|
|
268
|
+
dependency: {
|
|
269
|
+
url: exports.alias(url, opts),
|
|
270
|
+
source,
|
|
271
|
+
imports: compressImportsMap(imports),
|
|
272
|
+
lexer
|
|
273
|
+
}
|
|
246
274
|
}
|
|
247
275
|
|
|
248
276
|
return true
|
|
@@ -317,7 +345,7 @@ exports.preresolved = function* (url, source, resolutions, artifacts, visited, o
|
|
|
317
345
|
|
|
318
346
|
yield {
|
|
319
347
|
dependency: {
|
|
320
|
-
url,
|
|
348
|
+
url: exports.alias(url, opts),
|
|
321
349
|
source,
|
|
322
350
|
imports: compressImportsMap(imports),
|
|
323
351
|
lexer: { imports: [] }
|
|
@@ -421,7 +449,7 @@ exports.imports = function* (parentURL, source, imports, artifacts, lexer, visit
|
|
|
421
449
|
const source = yield { module: url }
|
|
422
450
|
|
|
423
451
|
if (source !== null) {
|
|
424
|
-
addResolution(imports, specifier, matchedConditions, url)
|
|
452
|
+
addResolution(imports, specifier, matchedConditions, exports.alias(url, opts))
|
|
425
453
|
|
|
426
454
|
let attributes = entry.attributes
|
|
427
455
|
|
package/lib/resolve/bare.js
CHANGED
|
@@ -24,7 +24,7 @@ module.exports = function (entry, parentURL, opts = {}) {
|
|
|
24
24
|
if (entry.type & lex.constants.ASSET) {
|
|
25
25
|
conditions = conditions.map((conditions) => ['asset', ...conditions])
|
|
26
26
|
} else {
|
|
27
|
-
extensions = ['.js', '.cjs', '.mjs', '.json', '.bare', '.node']
|
|
27
|
+
extensions = ['.js', '.cjs', '.mjs', '.ts', '.cts', '.mts', '.json', '.bare', '.node']
|
|
28
28
|
|
|
29
29
|
if (entry.type & lex.constants.REQUIRE) {
|
|
30
30
|
conditions = conditions.map((conditions) => ['require', ...conditions])
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "bare-module-traverse",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Low-level module graph traversal for Bare",
|
|
5
5
|
"exports": {
|
|
6
6
|
".": {
|
|
@@ -55,7 +55,7 @@
|
|
|
55
55
|
"homepage": "https://github.com/holepunchto/bare-module-traverse#readme",
|
|
56
56
|
"dependencies": {
|
|
57
57
|
"bare-addon-resolve": "^1.5.0",
|
|
58
|
-
"bare-module-lexer": "^1.
|
|
58
|
+
"bare-module-lexer": "^1.6.0",
|
|
59
59
|
"bare-module-resolve": "^1.7.0"
|
|
60
60
|
},
|
|
61
61
|
"devDependencies": {
|