From 1572e0975cebcce6c884091fc40aab58f55fa2a7 Mon Sep 17 00:00:00 2001 From: Marco Ippolito Date: Mon, 9 Jun 2025 11:36:23 +0200 Subject: [PATCH] module: runtime deprecate require.extensions --- doc/api/deprecations.md | 2 +- lib/internal/modules/helpers.js | 15 +++++++++++++-- 2 files changed, 14 insertions(+), 3 deletions(-) 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;