From b8174ceef94eeb6ed45f76048092ff4e8a3e1ddb Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 21 Jun 2024 14:26:22 -0700 Subject: [PATCH 01/13] fix: Handle the scenario where a package.json#browser field could be set to {'./some-path': false} --- src/resolve-dependency.ts | 15 ++++++++++++++- .../unit/browser-remappings-false copy/.gitignore | 2 ++ test/unit/browser-remappings-false copy/input.js | 2 ++ .../node_modules/pkg/browser.js | 1 + .../node_modules/pkg/index.js | 2 ++ .../node_modules/pkg/package.json | 7 +++++++ test/unit/browser-remappings-false copy/output.js | 7 +++++++ .../browser-remappings-false copy/test-opts.json | 3 +++ test/unit/browser-remappings-false/.gitignore | 2 ++ test/unit/browser-remappings-false/input.js | 2 ++ .../node_modules/pkg/browser.js | 1 + .../node_modules/pkg/index.js | 2 ++ .../node_modules/pkg/package.json | 7 +++++++ test/unit/browser-remappings-false/output.js | 7 +++++++ test/unit/browser-remappings-false/test-opts.json | 3 +++ 15 files changed, 62 insertions(+), 1 deletion(-) create mode 100644 test/unit/browser-remappings-false copy/.gitignore create mode 100644 test/unit/browser-remappings-false copy/input.js create mode 100644 test/unit/browser-remappings-false copy/node_modules/pkg/browser.js create mode 100644 test/unit/browser-remappings-false copy/node_modules/pkg/index.js create mode 100644 test/unit/browser-remappings-false copy/node_modules/pkg/package.json create mode 100644 test/unit/browser-remappings-false copy/output.js create mode 100644 test/unit/browser-remappings-false copy/test-opts.json create mode 100644 test/unit/browser-remappings-false/.gitignore create mode 100644 test/unit/browser-remappings-false/input.js create mode 100644 test/unit/browser-remappings-false/node_modules/pkg/browser.js create mode 100644 test/unit/browser-remappings-false/node_modules/pkg/index.js create mode 100644 test/unit/browser-remappings-false/node_modules/pkg/package.json create mode 100644 test/unit/browser-remappings-false/output.js create mode 100644 test/unit/browser-remappings-false/test-opts.json diff --git a/src/resolve-dependency.ts b/src/resolve-dependency.ts index 826e86c7..179f5432 100644 --- a/src/resolve-dependency.ts +++ b/src/resolve-dependency.ts @@ -128,7 +128,7 @@ interface PkgCfg { main: string | undefined; exports: PackageTarget; imports: { [key: string]: PackageTarget }; - browser?: string | { [key: string]: string }; + browser?: unknown; } async function getPkgCfg( @@ -259,8 +259,21 @@ async function resolveRemappings( ): Promise<void> { if (job.conditions?.includes('browser')) { const { browser: pkgBrowser } = pkgCfg; + if (!pkgBrowser) { + return; + } + if (typeof pkgBrowser === 'string') { + return; + } if (typeof pkgBrowser === 'object') { for (const [key, value] of Object.entries(pkgBrowser)) { + if (typeof value !== 'string') { + /** + * `false` can be used to specify that a file is not meant to be included. + * Downstream processing is expected to handle this case, and it should remain in the mapping result + */ + continue; + } if (!key.startsWith('./') || !value.startsWith('./')) { continue; } diff --git a/test/unit/browser-remappings-false copy/.gitignore b/test/unit/browser-remappings-false copy/.gitignore new file mode 100644 index 00000000..a9412d2d --- /dev/null +++ b/test/unit/browser-remappings-false copy/.gitignore @@ -0,0 +1,2 @@ +# include node_modules for testing +!node_modules diff --git a/test/unit/browser-remappings-false copy/input.js b/test/unit/browser-remappings-false copy/input.js new file mode 100644 index 00000000..76b86cf7 --- /dev/null +++ b/test/unit/browser-remappings-false copy/input.js @@ -0,0 +1,2 @@ +require('pkg'); + diff --git a/test/unit/browser-remappings-false copy/node_modules/pkg/browser.js b/test/unit/browser-remappings-false copy/node_modules/pkg/browser.js new file mode 100644 index 00000000..a5ceac31 --- /dev/null +++ b/test/unit/browser-remappings-false copy/node_modules/pkg/browser.js @@ -0,0 +1 @@ +module.exports = 'browser code'; diff --git a/test/unit/browser-remappings-false copy/node_modules/pkg/index.js b/test/unit/browser-remappings-false copy/node_modules/pkg/index.js new file mode 100644 index 00000000..da058b11 --- /dev/null +++ b/test/unit/browser-remappings-false copy/node_modules/pkg/index.js @@ -0,0 +1,2 @@ +module.exports = 'legacy index'; +require("./browser") diff --git a/test/unit/browser-remappings-false copy/node_modules/pkg/package.json b/test/unit/browser-remappings-false copy/node_modules/pkg/package.json new file mode 100644 index 00000000..33d8de58 --- /dev/null +++ b/test/unit/browser-remappings-false copy/node_modules/pkg/package.json @@ -0,0 +1,7 @@ +{ + "name": "pkg", + "main": "index.js", + "browser": { + "./browser.js": false + } +} diff --git a/test/unit/browser-remappings-false copy/output.js b/test/unit/browser-remappings-false copy/output.js new file mode 100644 index 00000000..bc5f3405 --- /dev/null +++ b/test/unit/browser-remappings-false copy/output.js @@ -0,0 +1,7 @@ +[ + "package.json", + "test/unit/browser-remappings-false/input.js", + "test/unit/browser-remappings-false/node_modules/pkg/browser.js", + "test/unit/browser-remappings-false/node_modules/pkg/index.js", + "test/unit/browser-remappings-false/node_modules/pkg/package.json" +] diff --git a/test/unit/browser-remappings-false copy/test-opts.json b/test/unit/browser-remappings-false copy/test-opts.json new file mode 100644 index 00000000..9e01628e --- /dev/null +++ b/test/unit/browser-remappings-false copy/test-opts.json @@ -0,0 +1,3 @@ +{ + "conditions": ["browser"] +} diff --git a/test/unit/browser-remappings-false/.gitignore b/test/unit/browser-remappings-false/.gitignore new file mode 100644 index 00000000..a9412d2d --- /dev/null +++ b/test/unit/browser-remappings-false/.gitignore @@ -0,0 +1,2 @@ +# include node_modules for testing +!node_modules diff --git a/test/unit/browser-remappings-false/input.js b/test/unit/browser-remappings-false/input.js new file mode 100644 index 00000000..76b86cf7 --- /dev/null +++ b/test/unit/browser-remappings-false/input.js @@ -0,0 +1,2 @@ +require('pkg'); + diff --git a/test/unit/browser-remappings-false/node_modules/pkg/browser.js b/test/unit/browser-remappings-false/node_modules/pkg/browser.js new file mode 100644 index 00000000..a5ceac31 --- /dev/null +++ b/test/unit/browser-remappings-false/node_modules/pkg/browser.js @@ -0,0 +1 @@ +module.exports = 'browser code'; diff --git a/test/unit/browser-remappings-false/node_modules/pkg/index.js b/test/unit/browser-remappings-false/node_modules/pkg/index.js new file mode 100644 index 00000000..da058b11 --- /dev/null +++ b/test/unit/browser-remappings-false/node_modules/pkg/index.js @@ -0,0 +1,2 @@ +module.exports = 'legacy index'; +require("./browser") diff --git a/test/unit/browser-remappings-false/node_modules/pkg/package.json b/test/unit/browser-remappings-false/node_modules/pkg/package.json new file mode 100644 index 00000000..33d8de58 --- /dev/null +++ b/test/unit/browser-remappings-false/node_modules/pkg/package.json @@ -0,0 +1,7 @@ +{ + "name": "pkg", + "main": "index.js", + "browser": { + "./browser.js": false + } +} diff --git a/test/unit/browser-remappings-false/output.js b/test/unit/browser-remappings-false/output.js new file mode 100644 index 00000000..bc5f3405 --- /dev/null +++ b/test/unit/browser-remappings-false/output.js @@ -0,0 +1,7 @@ +[ + "package.json", + "test/unit/browser-remappings-false/input.js", + "test/unit/browser-remappings-false/node_modules/pkg/browser.js", + "test/unit/browser-remappings-false/node_modules/pkg/index.js", + "test/unit/browser-remappings-false/node_modules/pkg/package.json" +] diff --git a/test/unit/browser-remappings-false/test-opts.json b/test/unit/browser-remappings-false/test-opts.json new file mode 100644 index 00000000..9e01628e --- /dev/null +++ b/test/unit/browser-remappings-false/test-opts.json @@ -0,0 +1,3 @@ +{ + "conditions": ["browser"] +} From a68c80ae6423315225b7f524a11e9d751262418a Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 21 Jun 2024 14:36:58 -0700 Subject: [PATCH 02/13] Update src/resolve-dependency.ts Co-authored-by: Steven <steven@ceriously.com> --- src/resolve-dependency.ts | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/resolve-dependency.ts b/src/resolve-dependency.ts index 179f5432..3695f5a0 100644 --- a/src/resolve-dependency.ts +++ b/src/resolve-dependency.ts @@ -262,9 +262,6 @@ async function resolveRemappings( if (!pkgBrowser) { return; } - if (typeof pkgBrowser === 'string') { - return; - } if (typeof pkgBrowser === 'object') { for (const [key, value] of Object.entries(pkgBrowser)) { if (typeof value !== 'string') { From 30fcf6048da88f22056dfb43288f776f4da202df Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 21 Jun 2024 15:05:50 -0700 Subject: [PATCH 03/13] Remove extra test fixture --- test/unit/browser-remappings-false copy/.gitignore | 2 -- test/unit/browser-remappings-false copy/input.js | 2 -- .../node_modules/pkg/browser.js | 1 - .../node_modules/pkg/index.js | 2 -- .../node_modules/pkg/package.json | 7 ------- test/unit/browser-remappings-false copy/output.js | 7 ------- test/unit/browser-remappings-false copy/test-opts.json | 3 --- 7 files changed, 24 deletions(-) delete mode 100644 test/unit/browser-remappings-false copy/.gitignore delete mode 100644 test/unit/browser-remappings-false copy/input.js delete mode 100644 test/unit/browser-remappings-false copy/node_modules/pkg/browser.js delete mode 100644 test/unit/browser-remappings-false copy/node_modules/pkg/index.js delete mode 100644 test/unit/browser-remappings-false copy/node_modules/pkg/package.json delete mode 100644 test/unit/browser-remappings-false copy/output.js delete mode 100644 test/unit/browser-remappings-false copy/test-opts.json diff --git a/test/unit/browser-remappings-false copy/.gitignore b/test/unit/browser-remappings-false copy/.gitignore deleted file mode 100644 index a9412d2d..00000000 --- a/test/unit/browser-remappings-false copy/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# include node_modules for testing -!node_modules diff --git a/test/unit/browser-remappings-false copy/input.js b/test/unit/browser-remappings-false copy/input.js deleted file mode 100644 index 76b86cf7..00000000 --- a/test/unit/browser-remappings-false copy/input.js +++ /dev/null @@ -1,2 +0,0 @@ -require('pkg'); - diff --git a/test/unit/browser-remappings-false copy/node_modules/pkg/browser.js b/test/unit/browser-remappings-false copy/node_modules/pkg/browser.js deleted file mode 100644 index a5ceac31..00000000 --- a/test/unit/browser-remappings-false copy/node_modules/pkg/browser.js +++ /dev/null @@ -1 +0,0 @@ -module.exports = 'browser code'; diff --git a/test/unit/browser-remappings-false copy/node_modules/pkg/index.js b/test/unit/browser-remappings-false copy/node_modules/pkg/index.js deleted file mode 100644 index da058b11..00000000 --- a/test/unit/browser-remappings-false copy/node_modules/pkg/index.js +++ /dev/null @@ -1,2 +0,0 @@ -module.exports = 'legacy index'; -require("./browser") diff --git a/test/unit/browser-remappings-false copy/node_modules/pkg/package.json b/test/unit/browser-remappings-false copy/node_modules/pkg/package.json deleted file mode 100644 index 33d8de58..00000000 --- a/test/unit/browser-remappings-false copy/node_modules/pkg/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "pkg", - "main": "index.js", - "browser": { - "./browser.js": false - } -} diff --git a/test/unit/browser-remappings-false copy/output.js b/test/unit/browser-remappings-false copy/output.js deleted file mode 100644 index bc5f3405..00000000 --- a/test/unit/browser-remappings-false copy/output.js +++ /dev/null @@ -1,7 +0,0 @@ -[ - "package.json", - "test/unit/browser-remappings-false/input.js", - "test/unit/browser-remappings-false/node_modules/pkg/browser.js", - "test/unit/browser-remappings-false/node_modules/pkg/index.js", - "test/unit/browser-remappings-false/node_modules/pkg/package.json" -] diff --git a/test/unit/browser-remappings-false copy/test-opts.json b/test/unit/browser-remappings-false copy/test-opts.json deleted file mode 100644 index 9e01628e..00000000 --- a/test/unit/browser-remappings-false copy/test-opts.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "conditions": ["browser"] -} From 103aac35ec1dda42d326e11198ce7c555f0d6769 Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 21 Jun 2024 15:07:59 -0700 Subject: [PATCH 04/13] Bump after editing pr title From d36adc4f24e4f769edd262c037117eef3a300cda Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Mon, 24 Jun 2024 15:49:57 -0700 Subject: [PATCH 05/13] Add test where browser setting is undefined --- .DS_Store | Bin 0 -> 6148 bytes test/unit.test.js | 1 + .../unit/browser-remappings-undefined/.gitignore | 2 ++ test/unit/browser-remappings-undefined/input.js | 2 ++ .../node_modules/pkg/index.js | 1 + .../node_modules/pkg/package.json | 13 +++++++++++++ .../node_modules/pkg/require-main.cjs | 2 ++ .../pkg/subdir/import-main-browser.js | 1 + .../node_modules/pkg/subdir/import-main.js | 1 + .../node_modules/pkg/subdir/package.json | 1 + test/unit/browser-remappings-undefined/output.js | 9 +++++++++ .../browser-remappings-undefined/test-opts.json | 3 +++ test/unit/browser-remappings/output.js | 2 +- 13 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 .DS_Store create mode 100644 test/unit/browser-remappings-undefined/.gitignore create mode 100644 test/unit/browser-remappings-undefined/input.js create mode 100644 test/unit/browser-remappings-undefined/node_modules/pkg/index.js create mode 100644 test/unit/browser-remappings-undefined/node_modules/pkg/package.json create mode 100644 test/unit/browser-remappings-undefined/node_modules/pkg/require-main.cjs create mode 100644 test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main-browser.js create mode 100644 test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main.js create mode 100644 test/unit/browser-remappings-undefined/node_modules/pkg/subdir/package.json create mode 100644 test/unit/browser-remappings-undefined/output.js create mode 100644 test/unit/browser-remappings-undefined/test-opts.json diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..1ad899dbcdc748036dd701eacb0ec11e243703d4 GIT binary patch literal 6148 zcmeHKyJ`bL3>+mc4$`<xxxbJ<Sd8-p{sEiBxCu5G?D{HyS3b?72O;L1CXgnKK$=~x zW{;cVbOK<D)B6iB2Qbhbaq%!UKX;$lLuHIe=N(6Eu*3GeI_@Xc_Y=+?@P-4<*na1K z9QM1s_dZcsDIf);fE17dQs7q#c<-eRPl<|BKnh5KF9rPj(CCi6a7>I(2Sbbi#2M3J zT*oXyY@Q(Y!ZDE<nkAK(RI3rglFodqx?VUYCLLD8ht-p<CKQXO^Zpj)u%4(W1*E{O z0*|?!d;fo>|1kgGlC+ZoQs7@HV6)|Fx!@~RZ=JlH_u58Z)4k@C?#6Xc7@{2$qaAbO f?f5y0vab1>=e=-D3_9~cC+cUwb&*MdzgFN1-fR_w literal 0 HcmV?d00001 diff --git a/test/unit.test.js b/test/unit.test.js index 0bf62b1b..70092eb6 100644 --- a/test/unit.test.js +++ b/test/unit.test.js @@ -65,6 +65,7 @@ function resetFileIOMocks() { } afterEach(resetFileIOMocks); +// const unitTests2 = [{ testName: 'browser-remappings-string', isRoot: false }]; for (const { testName, isRoot } of unitTests) { const testSuffix = `${testName} from ${isRoot ? 'root' : 'cwd'}`; diff --git a/test/unit/browser-remappings-undefined/.gitignore b/test/unit/browser-remappings-undefined/.gitignore new file mode 100644 index 00000000..a9412d2d --- /dev/null +++ b/test/unit/browser-remappings-undefined/.gitignore @@ -0,0 +1,2 @@ +# include node_modules for testing +!node_modules diff --git a/test/unit/browser-remappings-undefined/input.js b/test/unit/browser-remappings-undefined/input.js new file mode 100644 index 00000000..76b86cf7 --- /dev/null +++ b/test/unit/browser-remappings-undefined/input.js @@ -0,0 +1,2 @@ +require('pkg'); + diff --git a/test/unit/browser-remappings-undefined/node_modules/pkg/index.js b/test/unit/browser-remappings-undefined/node_modules/pkg/index.js new file mode 100644 index 00000000..914a7c58 --- /dev/null +++ b/test/unit/browser-remappings-undefined/node_modules/pkg/index.js @@ -0,0 +1 @@ +module.exports = 'legacy index'; diff --git a/test/unit/browser-remappings-undefined/node_modules/pkg/package.json b/test/unit/browser-remappings-undefined/node_modules/pkg/package.json new file mode 100644 index 00000000..a43212cb --- /dev/null +++ b/test/unit/browser-remappings-undefined/node_modules/pkg/package.json @@ -0,0 +1,13 @@ +{ + "name": "pkg", + "main": "index.js", + "exports": { + ".": { + "import": "./subdir/import-main.js", + "require": "./require-main.cjs" + }, + "./asdf": { + "import": "./subdir/import-main.js" + } + } +} diff --git a/test/unit/browser-remappings-undefined/node_modules/pkg/require-main.cjs b/test/unit/browser-remappings-undefined/node_modules/pkg/require-main.cjs new file mode 100644 index 00000000..43b69844 --- /dev/null +++ b/test/unit/browser-remappings-undefined/node_modules/pkg/require-main.cjs @@ -0,0 +1,2 @@ +import('pkg/asdf'); +module.exports = 'require main'; diff --git a/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main-browser.js b/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main-browser.js new file mode 100644 index 00000000..72b9016b --- /dev/null +++ b/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main-browser.js @@ -0,0 +1 @@ +export default 'import main browser'; diff --git a/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main.js b/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main.js new file mode 100644 index 00000000..95bc9efa --- /dev/null +++ b/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main.js @@ -0,0 +1 @@ +export default 'import main'; diff --git a/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/package.json b/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/package.json new file mode 100644 index 00000000..6990891f --- /dev/null +++ b/test/unit/browser-remappings-undefined/node_modules/pkg/subdir/package.json @@ -0,0 +1 @@ +{"type": "module"} diff --git a/test/unit/browser-remappings-undefined/output.js b/test/unit/browser-remappings-undefined/output.js new file mode 100644 index 00000000..f94da2b5 --- /dev/null +++ b/test/unit/browser-remappings-undefined/output.js @@ -0,0 +1,9 @@ +[ + "package.json", + "test/unit/browser-remappings-undefined/input.js", + "test/unit/browser-remappings-undefined/node_modules/pkg/index.js", + "test/unit/browser-remappings-undefined/node_modules/pkg/package.json", + "test/unit/browser-remappings-undefined/node_modules/pkg/require-main.cjs", + "test/unit/browser-remappings-undefined/node_modules/pkg/subdir/import-main.js", + "test/unit/browser-remappings-undefined/node_modules/pkg/subdir/package.json" +] diff --git a/test/unit/browser-remappings-undefined/test-opts.json b/test/unit/browser-remappings-undefined/test-opts.json new file mode 100644 index 00000000..9e01628e --- /dev/null +++ b/test/unit/browser-remappings-undefined/test-opts.json @@ -0,0 +1,3 @@ +{ + "conditions": ["browser"] +} diff --git a/test/unit/browser-remappings/output.js b/test/unit/browser-remappings/output.js index 9864d640..546aa4a8 100644 --- a/test/unit/browser-remappings/output.js +++ b/test/unit/browser-remappings/output.js @@ -7,4 +7,4 @@ "test/unit/browser-remappings/node_modules/pkg/subdir/import-main-browser.js", "test/unit/browser-remappings/node_modules/pkg/subdir/import-main.js", "test/unit/browser-remappings/node_modules/pkg/subdir/package.json" -] \ No newline at end of file +] From 416fca33215e6b774e1a763a05ca72d04d606856 Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Mon, 24 Jun 2024 16:00:34 -0700 Subject: [PATCH 06/13] Cleanup --- .DS_Store | Bin 6148 -> 0 bytes test/unit.test.js | 1 - 2 files changed, 1 deletion(-) delete mode 100644 .DS_Store diff --git a/.DS_Store b/.DS_Store deleted file mode 100644 index 1ad899dbcdc748036dd701eacb0ec11e243703d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6148 zcmeHKyJ`bL3>+mc4$`<xxxbJ<Sd8-p{sEiBxCu5G?D{HyS3b?72O;L1CXgnKK$=~x zW{;cVbOK<D)B6iB2Qbhbaq%!UKX;$lLuHIe=N(6Eu*3GeI_@Xc_Y=+?@P-4<*na1K z9QM1s_dZcsDIf);fE17dQs7q#c<-eRPl<|BKnh5KF9rPj(CCi6a7>I(2Sbbi#2M3J zT*oXyY@Q(Y!ZDE<nkAK(RI3rglFodqx?VUYCLLD8ht-p<CKQXO^Zpj)u%4(W1*E{O z0*|?!d;fo>|1kgGlC+ZoQs7@HV6)|Fx!@~RZ=JlH_u58Z)4k@C?#6Xc7@{2$qaAbO f?f5y0vab1>=e=-D3_9~cC+cUwb&*MdzgFN1-fR_w diff --git a/test/unit.test.js b/test/unit.test.js index 70092eb6..0bf62b1b 100644 --- a/test/unit.test.js +++ b/test/unit.test.js @@ -65,7 +65,6 @@ function resetFileIOMocks() { } afterEach(resetFileIOMocks); -// const unitTests2 = [{ testName: 'browser-remappings-string', isRoot: false }]; for (const { testName, isRoot } of unitTests) { const testSuffix = `${testName} from ${isRoot ? 'root' : 'cwd'}`; From 5f5e7f678c204041d8c680ec64776c4d18080cdd Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 28 Jun 2024 09:04:36 -0700 Subject: [PATCH 07/13] Debug windows-specific issue --- src/resolve-dependency.ts | 23 +++++++++++++++-------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/src/resolve-dependency.ts b/src/resolve-dependency.ts index 3695f5a0..5859a5d3 100644 --- a/src/resolve-dependency.ts +++ b/src/resolve-dependency.ts @@ -250,6 +250,7 @@ function resolveExportsImports( } return undefined; } +import os from 'os'; async function resolveRemappings( pkgPath: string, @@ -259,18 +260,24 @@ async function resolveRemappings( ): Promise<void> { if (job.conditions?.includes('browser')) { const { browser: pkgBrowser } = pkgCfg; - if (!pkgBrowser) { - return; + if (os.platform() !== 'win32') { + if (!pkgBrowser) { + return; + } } if (typeof pkgBrowser === 'object') { + // @ts-ignore for (const [key, value] of Object.entries(pkgBrowser)) { - if (typeof value !== 'string') { - /** - * `false` can be used to specify that a file is not meant to be included. - * Downstream processing is expected to handle this case, and it should remain in the mapping result - */ - continue; + if (os.platform() !== 'win32') { + if (typeof value !== 'string') { + /** + * `false` can be used to specify that a file is not meant to be included. + * Downstream processing is expected to handle this case, and it should remain in the mapping result + */ + continue; + } } + // @ts-ignore if (!key.startsWith('./') || !value.startsWith('./')) { continue; } From 4e3ece6b2a12e9248c0e4b89a3b901661826fe8b Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 28 Jun 2024 11:31:34 -0700 Subject: [PATCH 08/13] Undo windows debug --- src/resolve-dependency.ts | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/src/resolve-dependency.ts b/src/resolve-dependency.ts index 5859a5d3..3695f5a0 100644 --- a/src/resolve-dependency.ts +++ b/src/resolve-dependency.ts @@ -250,7 +250,6 @@ function resolveExportsImports( } return undefined; } -import os from 'os'; async function resolveRemappings( pkgPath: string, @@ -260,24 +259,18 @@ async function resolveRemappings( ): Promise<void> { if (job.conditions?.includes('browser')) { const { browser: pkgBrowser } = pkgCfg; - if (os.platform() !== 'win32') { - if (!pkgBrowser) { - return; - } + if (!pkgBrowser) { + return; } if (typeof pkgBrowser === 'object') { - // @ts-ignore for (const [key, value] of Object.entries(pkgBrowser)) { - if (os.platform() !== 'win32') { - if (typeof value !== 'string') { - /** - * `false` can be used to specify that a file is not meant to be included. - * Downstream processing is expected to handle this case, and it should remain in the mapping result - */ - continue; - } + if (typeof value !== 'string') { + /** + * `false` can be used to specify that a file is not meant to be included. + * Downstream processing is expected to handle this case, and it should remain in the mapping result + */ + continue; } - // @ts-ignore if (!key.startsWith('./') || !value.startsWith('./')) { continue; } From 154b2036b6d5d91289ca45440ff35a15f4b3ff66 Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Mon, 1 Jul 2024 09:54:11 -0700 Subject: [PATCH 09/13] Bump From c2016325454f1d763135db10ded7b94ea4baf171 Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 5 Jul 2024 10:24:56 -0700 Subject: [PATCH 10/13] Add test for when the browser field is a string --- test/unit.test.js | 4 +++- test/unit/browser-remappings-string/.gitignore | 2 ++ test/unit/browser-remappings-string/input.js | 2 ++ .../browser-remappings-string/node_modules/pkg/browser.js | 1 + .../browser-remappings-string/node_modules/pkg/index.js | 2 ++ .../node_modules/pkg/package.json | 7 +++++++ test/unit/browser-remappings-string/output.js | 7 +++++++ test/unit/browser-remappings-string/test-opts.json | 3 +++ 8 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 test/unit/browser-remappings-string/.gitignore create mode 100644 test/unit/browser-remappings-string/input.js create mode 100644 test/unit/browser-remappings-string/node_modules/pkg/browser.js create mode 100644 test/unit/browser-remappings-string/node_modules/pkg/index.js create mode 100644 test/unit/browser-remappings-string/node_modules/pkg/package.json create mode 100644 test/unit/browser-remappings-string/output.js create mode 100644 test/unit/browser-remappings-string/test-opts.json diff --git a/test/unit.test.js b/test/unit.test.js index 0bf62b1b..7dad91e5 100644 --- a/test/unit.test.js +++ b/test/unit.test.js @@ -66,7 +66,9 @@ function resetFileIOMocks() { afterEach(resetFileIOMocks); -for (const { testName, isRoot } of unitTests) { +const unitTests2 = [{ testName: 'browser-remappings-string', isRoot: false }]; + +for (const { testName, isRoot } of unitTests2) { const testSuffix = `${testName} from ${isRoot ? 'root' : 'cwd'}`; if ( process.platform === 'win32' && diff --git a/test/unit/browser-remappings-string/.gitignore b/test/unit/browser-remappings-string/.gitignore new file mode 100644 index 00000000..a9412d2d --- /dev/null +++ b/test/unit/browser-remappings-string/.gitignore @@ -0,0 +1,2 @@ +# include node_modules for testing +!node_modules diff --git a/test/unit/browser-remappings-string/input.js b/test/unit/browser-remappings-string/input.js new file mode 100644 index 00000000..76b86cf7 --- /dev/null +++ b/test/unit/browser-remappings-string/input.js @@ -0,0 +1,2 @@ +require('pkg'); + diff --git a/test/unit/browser-remappings-string/node_modules/pkg/browser.js b/test/unit/browser-remappings-string/node_modules/pkg/browser.js new file mode 100644 index 00000000..a5ceac31 --- /dev/null +++ b/test/unit/browser-remappings-string/node_modules/pkg/browser.js @@ -0,0 +1 @@ +module.exports = 'browser code'; diff --git a/test/unit/browser-remappings-string/node_modules/pkg/index.js b/test/unit/browser-remappings-string/node_modules/pkg/index.js new file mode 100644 index 00000000..41deffde --- /dev/null +++ b/test/unit/browser-remappings-string/node_modules/pkg/index.js @@ -0,0 +1,2 @@ +module.exports = 'legacy index'; +require("pkg/browser") diff --git a/test/unit/browser-remappings-string/node_modules/pkg/package.json b/test/unit/browser-remappings-string/node_modules/pkg/package.json new file mode 100644 index 00000000..d8f9bb94 --- /dev/null +++ b/test/unit/browser-remappings-string/node_modules/pkg/package.json @@ -0,0 +1,7 @@ +{ + "name": "pkg", + "main": "index.js", + "browser": { + "./browser.js": "browser.js" + } +} diff --git a/test/unit/browser-remappings-string/output.js b/test/unit/browser-remappings-string/output.js new file mode 100644 index 00000000..1f3ecac2 --- /dev/null +++ b/test/unit/browser-remappings-string/output.js @@ -0,0 +1,7 @@ +[ + "package.json", + "test/unit/browser-remappings-string/input.js", + "test/unit/browser-remappings-string/node_modules/pkg/browser.js", + "test/unit/browser-remappings-string/node_modules/pkg/index.js", + "test/unit/browser-remappings-string/node_modules/pkg/package.json" +] diff --git a/test/unit/browser-remappings-string/test-opts.json b/test/unit/browser-remappings-string/test-opts.json new file mode 100644 index 00000000..9e01628e --- /dev/null +++ b/test/unit/browser-remappings-string/test-opts.json @@ -0,0 +1,3 @@ +{ + "conditions": ["browser"] +} From 18927d8ee942f4f9b1ef72e74c63ac3955798726 Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Fri, 5 Jul 2024 10:26:30 -0700 Subject: [PATCH 11/13] Undo test fixture change --- test/unit.test.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/unit.test.js b/test/unit.test.js index 7dad91e5..0bf62b1b 100644 --- a/test/unit.test.js +++ b/test/unit.test.js @@ -66,9 +66,7 @@ function resetFileIOMocks() { afterEach(resetFileIOMocks); -const unitTests2 = [{ testName: 'browser-remappings-string', isRoot: false }]; - -for (const { testName, isRoot } of unitTests2) { +for (const { testName, isRoot } of unitTests) { const testSuffix = `${testName} from ${isRoot ? 'root' : 'cwd'}`; if ( process.platform === 'win32' && From 1d48d953972beff712a5a9610741614993e03edb Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Tue, 9 Jul 2024 16:52:29 -0700 Subject: [PATCH 12/13] Change browser string test to a string value --- test/unit.test.js | 4 +++- .../browser-remappings-string/node_modules/pkg/package.json | 4 +--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/test/unit.test.js b/test/unit.test.js index 0bf62b1b..7dad91e5 100644 --- a/test/unit.test.js +++ b/test/unit.test.js @@ -66,7 +66,9 @@ function resetFileIOMocks() { afterEach(resetFileIOMocks); -for (const { testName, isRoot } of unitTests) { +const unitTests2 = [{ testName: 'browser-remappings-string', isRoot: false }]; + +for (const { testName, isRoot } of unitTests2) { const testSuffix = `${testName} from ${isRoot ? 'root' : 'cwd'}`; if ( process.platform === 'win32' && diff --git a/test/unit/browser-remappings-string/node_modules/pkg/package.json b/test/unit/browser-remappings-string/node_modules/pkg/package.json index d8f9bb94..5300cb04 100644 --- a/test/unit/browser-remappings-string/node_modules/pkg/package.json +++ b/test/unit/browser-remappings-string/node_modules/pkg/package.json @@ -1,7 +1,5 @@ { "name": "pkg", "main": "index.js", - "browser": { - "./browser.js": "browser.js" - } + "browser": "./browser.js" } From 4195963d54ab64f31727ad67861c3fac26cf8f38 Mon Sep 17 00:00:00 2001 From: Jeff See <jeffsee.55@gmail.com> Date: Tue, 9 Jul 2024 16:53:41 -0700 Subject: [PATCH 13/13] Fix unit test --- test/unit.test.js | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/test/unit.test.js b/test/unit.test.js index 7dad91e5..0bf62b1b 100644 --- a/test/unit.test.js +++ b/test/unit.test.js @@ -66,9 +66,7 @@ function resetFileIOMocks() { afterEach(resetFileIOMocks); -const unitTests2 = [{ testName: 'browser-remappings-string', isRoot: false }]; - -for (const { testName, isRoot } of unitTests2) { +for (const { testName, isRoot } of unitTests) { const testSuffix = `${testName} from ${isRoot ? 'root' : 'cwd'}`; if ( process.platform === 'win32' &&