diff --git a/.gitignore b/.gitignore index d4d7e3f..3a351d5 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ node_modules +!test/fixture/package/node_modules dist *.log diff --git a/src/resolve.ts b/src/resolve.ts index 60a5670..5ea065d 100644 --- a/src/resolve.ts +++ b/src/resolve.ts @@ -104,6 +104,9 @@ function _resolve(id: string, options: ResolveOptions = {}): string { break; } } + if (resolved) { + break; + } } // Throw error if not found diff --git a/test/exports.test.ts b/test/exports.test.ts index 6bee5c9..2b67432 100644 --- a/test/exports.test.ts +++ b/test/exports.test.ts @@ -280,6 +280,20 @@ describe("resolveModuleExportNames", () => { `); }); + it("star exports with package", async () => { + expect( + await resolveModuleExportNames( + new URL("fixture/package/exports.mjs", import.meta.url).toString() + ) + ).toMatchInlineSnapshot(` + [ + "StaticRouter", + "unstable_StaticRouterProvider", + "unstable_createStaticRouter", + ] + `); + }); + it("multiple inline", () => { const code = ` export { foo } from 'foo1';export { bar } from 'foo2';export * as foobar from 'foo2'; diff --git a/test/fixture/package/exports.mjs b/test/fixture/package/exports.mjs new file mode 100644 index 0000000..1f1edfb --- /dev/null +++ b/test/fixture/package/exports.mjs @@ -0,0 +1 @@ +export * from "react-router-dom/server"; diff --git a/test/fixture/package/node_modules/react-router-dom/package.json b/test/fixture/package/node_modules/react-router-dom/package.json new file mode 100644 index 0000000..9db4895 --- /dev/null +++ b/test/fixture/package/node_modules/react-router-dom/package.json @@ -0,0 +1,12 @@ +{ + "name": "react-router-dom", + "version": "6.4.3", + "sideEffects": false, + "main": "./dist/main.js", + "module": "./dist/index.js", + "files": [ + "dist/", + "server.js", + "server.mjs" + ] +} diff --git a/test/fixture/package/node_modules/react-router-dom/server.js b/test/fixture/package/node_modules/react-router-dom/server.js new file mode 100644 index 0000000..3bb6709 --- /dev/null +++ b/test/fixture/package/node_modules/react-router-dom/server.js @@ -0,0 +1,13 @@ +"use strict"; + +Object.defineProperty(exports, "__esModule", { value: true }); + +function StaticRouter() {} + +function unstable_StaticRouterProvider() {} + +function unstable_createStaticRouter() {} + +exports.StaticRouter = StaticRouter; +exports.unstable_StaticRouterProvider = unstable_StaticRouterProvider; +exports.unstable_createStaticRouter = unstable_createStaticRouter; diff --git a/test/fixture/package/node_modules/react-router-dom/server.mjs b/test/fixture/package/node_modules/react-router-dom/server.mjs new file mode 100644 index 0000000..ea91abe --- /dev/null +++ b/test/fixture/package/node_modules/react-router-dom/server.mjs @@ -0,0 +1,7 @@ +function StaticRouter() {} + +function unstable_StaticRouterProvider() {} + +function unstable_createStaticRouter() {} + +export { StaticRouter, unstable_StaticRouterProvider, unstable_createStaticRouter }; diff --git a/test/fixture/package/package.json b/test/fixture/package/package.json new file mode 100644 index 0000000..e68c717 --- /dev/null +++ b/test/fixture/package/package.json @@ -0,0 +1,5 @@ +{ + "name": "package", + "private": true, + "dependencies": {} +}