diff --git a/doc/api/deprecations.md b/doc/api/deprecations.md index e8c4bc2a371a54..9972e75d8cf074 100644 --- a/doc/api/deprecations.md +++ b/doc/api/deprecations.md @@ -878,7 +878,7 @@ changes: description: Documentation-only deprecation. --> -Type: Documentation-only +Type: Runtime The [`require.extensions`][] property is deprecated. diff --git a/lib/internal/modules/helpers.js b/lib/internal/modules/helpers.js index c3122118cab75d..03e964d33cf289 100644 --- a/lib/internal/modules/helpers.js +++ b/lib/internal/modules/helpers.js @@ -26,7 +26,7 @@ const { pathToFileURL, fileURLToPath } = require('internal/url'); const assert = require('internal/assert'); const { getOptionValue } = require('internal/options'); -const { setOwnProperty, getLazy } = require('internal/util'); +const { setOwnProperty, getLazy, deprecate } = require('internal/util'); const { inspect } = require('internal/util/inspect'); const lazyTmpdir = getLazy(() => require('os').tmpdir()); @@ -160,8 +160,19 @@ function makeRequireFunction(mod) { setOwnProperty(require, 'main', process.mainModule); + let extensions = Module._extensions; // Enable support to add extra extension types. - require.extensions = Module._extensions; + ObjectDefineProperty(require, 'extensions', { + __proto__: null, + get: deprecate(() => { + return extensions; + }, 'require.extensions is deprecated', 'DEP0039'), + set: deprecate((value) => { + extensions = value; + }, 'require.extensions is deprecated', 'DEP0039'), + configurable: true, + enumerable: true, + }); require.cache = Module._cache;