diff --git a/src/resolver/resolver.zig b/src/resolver/resolver.zig index ae9562d142..b31b5f75c9 100644 --- a/src/resolver/resolver.zig +++ b/src/resolver/resolver.zig @@ -2877,8 +2877,8 @@ pub const Resolver = struct { // because we want the output to always be deterministic if (strings.startsWith(path, prefix) and strings.endsWith(path, suffix) and - (prefix.len >= longest_match_prefix_length and - suffix.len > longest_match_suffix_length)) + (prefix.len > longest_match_prefix_length or + (prefix.len == longest_match_prefix_length and suffix.len > longest_match_suffix_length))) { longest_match_prefix_length = @as(i32, @intCast(prefix.len)); longest_match_suffix_length = @as(i32, @intCast(suffix.len)); diff --git a/test/js/bun/resolve/bar/larger-index.js b/test/js/bun/resolve/bar/larger-index.js new file mode 100644 index 0000000000..5837bb3bbb --- /dev/null +++ b/test/js/bun/resolve/bar/larger-index.js @@ -0,0 +1,2 @@ +// this file is used in resolve.test.js +export default {}; diff --git a/test/js/bun/resolve/resolve-test.js b/test/js/bun/resolve/resolve-test.js index 242834b6fe..38198ef1d5 100644 --- a/test/js/bun/resolve/resolve-test.js +++ b/test/js/bun/resolve/resolve-test.js @@ -71,6 +71,7 @@ it("import.meta.resolve", async () => { expect(await import.meta.resolve("foo/bar")).toBe(join(import.meta.path, "../baz.js")); expect(await import.meta.resolve("@faasjs/baz")).toBe(join(import.meta.path, "../baz.js")); expect(await import.meta.resolve("@faasjs/bar")).toBe(join(import.meta.path, "../bar/src/index.js")); + expect(await import.meta.resolve("@faasjs/larger/bar")).toBe(join(import.meta.path, "../bar/larger-index.js")); // works with package.json "exports" expect(await import.meta.resolve("package-json-exports/baz")).toBe( diff --git a/test/tsconfig.json b/test/tsconfig.json index 09eecec640..248cb67477 100644 --- a/test/tsconfig.json +++ b/test/tsconfig.json @@ -26,7 +26,8 @@ "node-harness": ["js/node/harness.ts"], "deno:harness": ["js/deno/harness.ts"], "foo/bar": ["js/bun/resolve/baz.js"], - "@faasjs/*": ["js/bun/resolve/*.js", "js/bun/resolve/*/src/index.js"] + "@faasjs/*": ["js/bun/resolve/*.js", "js/bun/resolve/*/src/index.js"], + "@faasjs/larger/*": ["js/bun/resolve/*/larger-index.js"] } },