Skip to content

Commit c04cae1

Browse files
committed
test(commonjs): add regression for wrapped external Node built-ins under strictRequires
- New fixture: module-side-effects-external-node-builtin-wrapped - Ensures transform doesn’t crash when resolving moduleSideEffects for wrapped externals - Provides __filename in test context to avoid env-dependent failures Refs #1913
1 parent 8f298e1 commit c04cae1

4 files changed

Lines changed: 52 additions & 0 deletions

File tree

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
module.exports = {
2+
description:
3+
'does not crash and does not mark external node: builtins as pure when strictRequires is true',
4+
pluginOptions: {
5+
strictRequires: true
6+
},
7+
context: {
8+
__filename: __filename
9+
}
10+
};
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
// Top-level require of a Node builtin ensures the transform computes
2+
// wrappedModuleSideEffects for an external wrapped dependency.
3+
function unused() {
4+
// External Node builtin require; not executed at runtime
5+
require('node:crypto');
6+
}
7+
8+
module.exports = 1;

packages/commonjs/test/snapshots/function.js.md

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6697,6 +6697,40 @@ Generated by [AVA](https://avajs.dev).
66976697
`,
66986698
}
66996699

6700+
## module-side-effects-external-node-builtin-wrapped
6701+
6702+
> Snapshot 1
6703+
6704+
{
6705+
'main.js': `'use strict';␊
6706+
6707+
var node_module = require('node:module');␊
6708+
6709+
var _documentCurrentScript = typeof document !== 'undefined' ? document.currentScript : null;␊
6710+
function getDefaultExportFromCjs (x) {␊
6711+
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;␊
6712+
}␊
6713+
6714+
node_module.createRequire((typeof document === 'undefined' ? require('u' + 'rl').pathToFileURL(__filename).href : (_documentCurrentScript && _documentCurrentScript.src || new URL('main.js', document.baseURI).href)));␊
6715+
6716+
var main$1;␊
6717+
var hasRequiredMain;␊
6718+
6719+
function requireMain () {␊
6720+
if (hasRequiredMain) return main$1;␊
6721+
hasRequiredMain = 1;␊
6722+
6723+
main$1 = 1;␊
6724+
return main$1;␊
6725+
}␊
6726+
6727+
var mainExports = requireMain();␊
6728+
var main = /*@__PURE__*/getDefaultExportFromCjs(mainExports);␊
6729+
6730+
module.exports = main;␊
6731+
`,
6732+
}
6733+
67006734
## module-side-effects-import-wrapped
67016735

67026736
> Snapshot 1
180 Bytes
Binary file not shown.

0 commit comments

Comments
 (0)