summaryrefslogtreecommitdiff
path: root/ext/node/polyfills/internal/util/parse_args/utils.js
diff options
context:
space:
mode:
Diffstat (limited to 'ext/node/polyfills/internal/util/parse_args/utils.js')
-rw-r--r--ext/node/polyfills/internal/util/parse_args/utils.js13
1 files changed, 13 insertions, 0 deletions
diff --git a/ext/node/polyfills/internal/util/parse_args/utils.js b/ext/node/polyfills/internal/util/parse_args/utils.js
index a51a46098..1ceed0b9e 100644
--- a/ext/node/polyfills/internal/util/parse_args/utils.js
+++ b/ext/node/polyfills/internal/util/parse_args/utils.js
@@ -173,6 +173,18 @@ function findLongOptionForShort(shortOption, options) {
return longOptionEntry?.[0] ?? shortOption;
}
+/**
+ * Check if the given option includes a default value
+ * and that option has not been set by the input args.
+ * @param {string} longOption - long option name e.g. 'foo'
+ * @param {object} optionConfig - the option configuration properties
+ * @param {object} values - option values returned in `values` by parseArgs
+ */
+function useDefaultValueOption(longOption, optionConfig, values) {
+ return objectGetOwn(optionConfig, "default") !== undefined &&
+ values[longOption] === undefined;
+}
+
export {
findLongOptionForShort,
isLoneLongOption,
@@ -184,4 +196,5 @@ export {
isShortOptionGroup,
objectGetOwn,
optionsGetOwn,
+ useDefaultValueOption,
};