From e87d6f5a35641da157dff001befbc9759583e7a4 Mon Sep 17 00:00:00 2001 From: sapphi-red <49056869+sapphi-red@users.noreply.github.com> Date: Sun, 30 Mar 2025 16:37:56 +0900 Subject: [PATCH] module: add module.customConditions Add module.customConditions which exposes the custom resolution conditions specified by the user. Fixes: https://github.com/nodejs/node/issues/55824 --- doc/api/module.md | 40 +++++++++++++++++++ lib/module.js | 16 ++++++++ .../test-module-customConditions-empty.js | 7 ++++ .../test-module-customConditions-multiple.js | 12 ++++++ .../test-module-customConditions-single.js | 9 +++++ 5 files changed, 84 insertions(+) create mode 100644 test/parallel/test-module-customConditions-empty.js create mode 100644 test/parallel/test-module-customConditions-multiple.js create mode 100644 test/parallel/test-module-customConditions-single.js diff --git a/doc/api/module.md b/doc/api/module.md index f4259a35cd0d50..34429c41eb9c8a 100644 --- a/doc/api/module.md +++ b/doc/api/module.md @@ -66,6 +66,46 @@ const require = createRequire(import.meta.url); const siblingModule = require('./sibling-module'); ``` +### `module.customConditions` + + + +* Type: {Set} + +The custom resolution conditions specified by the user. The default Node.js conditions are not included. + +For example, assuming the following script for `module-customconditions.js`: + +```mjs +import module from 'node:module'; + +if (module.customConditions.has('development')) { + console.warn('warning: running in development mode'); +} +``` + +```cjs +const module = require('node:module'); + +if (module.customConditions.has('development')) { + console.warn('warning: running in development mode'); +} +``` + +Launching the Node.js process as: + +```console +$ node -C development module-customconditions.js +``` + +Would generate the output: + +```text +warning: running in development mode +``` + ### `module.findPackageJSON(specifier[, base])`