summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/node_resolver/resolution.rs7
-rw-r--r--tests/specs/node/imports_wildcard/__test__.jsonc7
-rw-r--r--tests/specs/node/imports_wildcard/main.mjs4
-rw-r--r--tests/specs/node/imports_wildcard/main.out2
-rw-r--r--tests/specs/node/imports_wildcard/node_modules/package/index.js2
-rw-r--r--tests/specs/node/imports_wildcard/node_modules/package/inner/add/index.js3
-rw-r--r--tests/specs/node/imports_wildcard/node_modules/package/native/subtract.js3
-rw-r--r--tests/specs/node/imports_wildcard/node_modules/package/package.json11
-rw-r--r--tests/specs/node/imports_wildcard/package.json2
9 files changed, 37 insertions, 4 deletions
diff --git a/ext/node_resolver/resolution.rs b/ext/node_resolver/resolution.rs
index f4b2e8056..772bc5d34 100644
--- a/ext/node_resolver/resolution.rs
+++ b/ext/node_resolver/resolution.rs
@@ -597,7 +597,7 @@ impl<TEnv: NodeResolverEnv> NodeResolver<TEnv> {
for key in imports.keys() {
let pattern_index = key.find('*');
if let Some(pattern_index) = pattern_index {
- let key_sub = &key[0..=pattern_index];
+ let key_sub = &key[0..pattern_index];
if name.starts_with(key_sub) {
let pattern_trailer = &key[pattern_index + 1..];
if name.len() > key.len()
@@ -607,8 +607,7 @@ impl<TEnv: NodeResolverEnv> NodeResolver<TEnv> {
{
best_match = key;
best_match_subpath = Some(
- name[pattern_index..=(name.len() - pattern_trailer.len())]
- .to_string(),
+ &name[pattern_index..(name.len() - pattern_trailer.len())],
);
}
}
@@ -620,7 +619,7 @@ impl<TEnv: NodeResolverEnv> NodeResolver<TEnv> {
let maybe_resolved = self.resolve_package_target(
package_json_path.as_ref().unwrap(),
target,
- &best_match_subpath.unwrap(),
+ best_match_subpath.unwrap(),
best_match,
maybe_referrer,
referrer_kind,
diff --git a/tests/specs/node/imports_wildcard/__test__.jsonc b/tests/specs/node/imports_wildcard/__test__.jsonc
new file mode 100644
index 000000000..a71e27063
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/__test__.jsonc
@@ -0,0 +1,7 @@
+{
+ "envs": {
+ "DENO_FUTURE": "1"
+ },
+ "args": "run main.mjs",
+ "output": "main.out"
+}
diff --git a/tests/specs/node/imports_wildcard/main.mjs b/tests/specs/node/imports_wildcard/main.mjs
new file mode 100644
index 000000000..e351344cd
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/main.mjs
@@ -0,0 +1,4 @@
+import { add, subtract } from "package";
+
+console.log(add(1, 2));
+console.log(subtract(4, 2));
diff --git a/tests/specs/node/imports_wildcard/main.out b/tests/specs/node/imports_wildcard/main.out
new file mode 100644
index 000000000..f1e5eeed2
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/main.out
@@ -0,0 +1,2 @@
+3
+2
diff --git a/tests/specs/node/imports_wildcard/node_modules/package/index.js b/tests/specs/node/imports_wildcard/node_modules/package/index.js
new file mode 100644
index 000000000..9be014607
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/node_modules/package/index.js
@@ -0,0 +1,2 @@
+module.exports.add = require("#add");
+module.exports.subtract = require("#native/subtract");
diff --git a/tests/specs/node/imports_wildcard/node_modules/package/inner/add/index.js b/tests/specs/node/imports_wildcard/node_modules/package/inner/add/index.js
new file mode 100644
index 000000000..b21ffddbc
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/node_modules/package/inner/add/index.js
@@ -0,0 +1,3 @@
+module.exports = function(a, b) {
+ return a + b;
+};
diff --git a/tests/specs/node/imports_wildcard/node_modules/package/native/subtract.js b/tests/specs/node/imports_wildcard/node_modules/package/native/subtract.js
new file mode 100644
index 000000000..8afc41eb1
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/node_modules/package/native/subtract.js
@@ -0,0 +1,3 @@
+module.exports = function(a, b) {
+ return a - b;
+};
diff --git a/tests/specs/node/imports_wildcard/node_modules/package/package.json b/tests/specs/node/imports_wildcard/node_modules/package/package.json
new file mode 100644
index 000000000..c1b2bedf8
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/node_modules/package/package.json
@@ -0,0 +1,11 @@
+{
+ "name": "package",
+ "imports": {
+ "#*": {
+ "default": "./inner/*/index.js"
+ },
+ "#native/*": {
+ "default": "./native/*.js"
+ }
+ }
+} \ No newline at end of file
diff --git a/tests/specs/node/imports_wildcard/package.json b/tests/specs/node/imports_wildcard/package.json
new file mode 100644
index 000000000..2c63c0851
--- /dev/null
+++ b/tests/specs/node/imports_wildcard/package.json
@@ -0,0 +1,2 @@
+{
+}