Files
node/test/parallel/test-internal-util-isinsidenodemodules.js
Chengzhong Wu 32ea48d749 lib,src: isInsideNodeModules should test on the first non-internal frame
PR-URL: https://github.com/nodejs/node/pull/60991
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Marco Ippolito <marcoippolito54@gmail.com>
Reviewed-By: Daniel Lemire <daniel@lemire.me>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
2025-12-10 13:59:35 +00:00

37 lines
942 B
JavaScript

'use strict';
// Flags: --expose-internals
const common = require('../common');
const assert = require('assert');
const vm = require('vm');
const { internalBinding } = require('internal/test/binding');
const { isInsideNodeModules } = internalBinding('util');
const script = new vm.Script(`
const runInsideNodeModules = (cb) => {
return cb();
};
runInsideNodeModules;
`, {
filename: '/workspace/node_modules/test.js',
});
const runInsideNodeModules = script.runInThisContext();
// Test when called directly inside node_modules
assert.strictEqual(runInsideNodeModules(isInsideNodeModules), true);
// Test when called inside a user callback from node_modules
runInsideNodeModules(common.mustCall(() => {
function nonNodeModulesFunction() {
assert.strictEqual(isInsideNodeModules(), false);
}
nonNodeModulesFunction();
}));
// Test when called outside node_modules
assert.strictEqual(isInsideNodeModules(), false);