-
-
Notifications
You must be signed in to change notification settings - Fork 37.1k
Add a way to get the enabled conditions #55824
Copy link
Copy link
Closed as not planned
Labels
feature requestIssues requesting new Node.js features.Issues requesting new Node.js features.moduleIssues and PRs related to the module subsystem.Issues and PRs related to the module subsystem.staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.
Description
Activity
Metadata
Metadata
Assignees
Labels
feature requestIssues requesting new Node.js features.Issues requesting new Node.js features.moduleIssues and PRs related to the module subsystem.Issues and PRs related to the module subsystem.staleIssues and PRs marked stale due to inactivity and scheduled for automatic closure.Issues and PRs marked stale due to inactivity and scheduled for automatic closure.
Type
Projects
- StatusShow more project fieldsTriaged
What is the problem this feature will solve?
Currently there is no way to get the enabled conditions easily. It requires checking
process.env.NODE_OPTIONSandprocess.execArgvwhich is not robust. It should be noted that although it is an edge case, theprocess.env.NODE_OPTIONScheck should be done before any code that modifies that variable.Some concrete cases:
parentparameter ofimport.meta.resolveis out of experimental, but I guess exposingconditionsis less controversial than graduating that API from experimental)requireorimportso it uses the custom resolver. If Vite usesrequireorimport, the resolve result is gets cached and requires the program to be restarted.customconditions, to show a warning they have to parse the conditions to do that for now.What is the feature you are proposing to solve the problem?
Add
conditionsvariable innode:module.Example code:
I didn't add
nodetoconditionsin the example above, but maybe it makes sense to add that too.But for
importandrequire, I'm not sure if those should be added in that case. Probably the option would be to add both or neither.What alternatives have you considered?
getOptionValue([Feature] Expose getOptionValue via process.getOptionValue #36935): this one got stale because it is difficult to make the API stable.