mirror of
https://github.com/nodejs/node.git
synced 2025-12-28 07:50:41 +00:00
This reduces the impact of https://redirect.github.com/nodejs/node/pull/59679 by delaying the require.cache population of ESM until they are directly required. After that, it's necessary for them to be in the cache to maintain correctness. PR-URL: https://github.com/nodejs/node/pull/59874 Refs: https://github.com/nodejs/node/issues/59868 Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Geoffrey Booth <webadmin@geoffreybooth.com>
26 lines
1.0 KiB
JavaScript
26 lines
1.0 KiB
JavaScript
// This tests the behavior of ESM in require.cache when it's loaded from require.
|
|
'use strict';
|
|
require('../common');
|
|
const assert = require('node:assert');
|
|
const fixtures = require('../common/fixtures');
|
|
const filename = fixtures.path('es-modules', 'esm-in-require-cache', 'esm.mjs');
|
|
|
|
// Requiring ESM indirectly should not put it in the cache.
|
|
let { name } = require('../fixtures/es-modules/esm-in-require-cache/import-esm.mjs');
|
|
assert.strictEqual(name, 'esm');
|
|
assert(!require.cache[filename]);
|
|
|
|
({ name } = require('../fixtures/es-modules/esm-in-require-cache/require-import-esm.cjs'));
|
|
assert.strictEqual(name, 'esm');
|
|
assert(!require.cache[filename]);
|
|
|
|
// After being required directly, it should be in the cache.
|
|
({ name } = require('../fixtures/es-modules/esm-in-require-cache/esm.mjs'));
|
|
assert.strictEqual(name, 'esm');
|
|
assert(require.cache[filename]);
|
|
delete require.cache[filename];
|
|
|
|
({ name } = require('../fixtures/es-modules/esm-in-require-cache/import-require-esm.mjs'));
|
|
assert.strictEqual(name, 'esm');
|
|
assert(require.cache[filename]);
|