Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

util: add default value option to parsearg #44631

Merged
merged 5 commits into from
Oct 7, 2022

Conversation

Eomm
Copy link
Member

@Eomm Eomm commented Sep 13, 2022

This PR adds to the parseArgs utility feature a new default input field option.
The developer will be able to define a default value to retrieve when the input arguments are processed.

This PR has a downstream to pkgjs/parseargs#142

@nodejs-github-bot nodejs-github-bot added needs-ci PRs that need a full CI run. util Issues and PRs related to the built-in util module. labels Sep 13, 2022
doc/api/util.md Outdated
@@ -1053,6 +1056,8 @@ changes:
times. If `true`, all values will be collected in an array. If
`false`, values for the option are last-wins. **Default:** `false`.
* `short` {string} A single character alias for the option.
* `default` {string | boolean | string[] | boolean[]} The default option
value when it is not set by args.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Document that this must match the arg type?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done, adding the multiple case too

@Eomm Eomm force-pushed the parseargs-default-value branch from 5196cdd to 0b001a3 Compare September 14, 2022 05:58
Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@lpinca lpinca added the semver-minor PRs that contain new features and should be released in the next minor version. label Sep 14, 2022
@bakkot
Copy link

bakkot commented Sep 22, 2022

After thinking on it for a while, I think undefined should be a legal value for default, and should be treated exactly like default being missing. (So, in particular, setting default: undefined should not cause the key to appear in the values object.) cc @shadowspawn since you expressed the opposite opinion above.

Specifically, accepting undefined makes it easier to do stuff like

let options = { endpoint: { type: 'string', default: process.env.MY_PROJECT_ENDPOINT } };
let { values } = parseArgs({ options });

which is a convenient pattern, especially since this utility almost certainly doesn't want to handle this sort of default-to-env behavior itself.

If undefined isn't allowed, then you would have to write something like

let options = { endpoint: { type: 'string' } };
if (process.env.MY_PROJECT_ENDPOINT != null) {
  opts.endpoint.default = process.env.MY_PROJECT_ENDPOINT;
}
let { values } = parseArgs({ options });

which is much less pleasant all around.

@tniessen
Copy link
Member

Does this have the same semantics as destructuring with defaults?

let { values: { foo = 'default' } } = util.parseArgs({ options: { foo: { type: 'string' } } })

@shadowspawn
Copy link
Member

After thinking on it for a while, I think undefined should be a legal value for default, and should be treated exactly like default being missing. (So, in particular, setting default: undefined should not cause the key to appear in the values object.)

The env use case seems pretty reasonable and convenient. I like it.

cc @shadowspawn since you expressed the opposite opinion [above (https://github.com//pull/44631#discussion_r971695523).

My comment was in context of the commented code, that I didn't see a need to treat undefined as a valid value for output values. So not in opposition to your suggestion that is useful to allow for input config.

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@Eomm
Copy link
Member Author

Eomm commented Sep 24, 2022

If undefined isn't allowed, then you would have to write something like

Fair usage, I will update this PR 👍🏽

Does this have the same semantics as destructuring with defaults?

Yes, it does. Doing so would be like moving the "default burden logic" to the caller instead of callee, and this is unwanted in my opinion.

Copy link
Member

@shadowspawn shadowspawn left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM (not a collaborator)

doc/api/util.md Outdated
@@ -1031,6 +1031,9 @@ added:
- v18.3.0
- v16.17.0
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/44631
description: add support for default values in input `config`.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
description: add support for default values in input `config`.
description: Add support for default values in input `config`.

Comment on lines 336 to 345
if (optionType === 'string' && !multipleOption) {
validateString(defaultValue, `options.${longOption}.default`);
} else if (optionType === 'string' && multipleOption) {
validateStringArray(defaultValue, `options.${longOption}.default`);
} else if (optionType === 'boolean' && !multipleOption) {
validateBoolean(defaultValue, `options.${longOption}.default`);
} else if (optionType === 'boolean' && multipleOption) {
validateBooleanArray(defaultValue, `options.${longOption}.default`);
}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nit: we could avoid the code repetition here.

Suggested change
if (optionType === 'string' && !multipleOption) {
validateString(defaultValue, `options.${longOption}.default`);
} else if (optionType === 'string' && multipleOption) {
validateStringArray(defaultValue, `options.${longOption}.default`);
} else if (optionType === 'boolean' && !multipleOption) {
validateBoolean(defaultValue, `options.${longOption}.default`);
} else if (optionType === 'boolean' && multipleOption) {
validateBooleanArray(defaultValue, `options.${longOption}.default`);
}
let validator;
switch(optionType) {
case 'string':
validator = multipleOption ? validateStringArray : validateString;
break;
case 'boolean':
validator = multipleOption ? validateBooleanArray : validateBoolean;
break;
}
validator(defaultValue, `options.${longOption}.default`);

@Eomm
Copy link
Member Author

Eomm commented Sep 26, 2022

Completed all the feedbacks

Not sure about the failed CI check: should I rebase this branch?

@Eomm Eomm force-pushed the parseargs-default-value branch from 1a7aae6 to eb0c843 Compare September 29, 2022 19:37
@mcollina mcollina added the request-ci Add this label to start a Jenkins CI on a PR. label Sep 30, 2022
@github-actions github-actions bot removed the request-ci Add this label to start a Jenkins CI on a PR. label Sep 30, 2022
@nodejs-github-bot
Copy link
Collaborator

@nodejs-github-bot
Copy link
Collaborator

Copy link
Member

@mcollina mcollina left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@mcollina mcollina added commit-queue Add this label to land a pull request using GitHub Actions. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. and removed needs-ci PRs that need a full CI run. labels Oct 7, 2022
danielleadams added a commit that referenced this pull request Oct 13, 2022
watch mode (experimental):

Running in 'watch' mode using `node --watch` restarts the process when an
imported file is changed.

Contributed by Moshe Atlow in #44366

Other notable changes:

* fs:
  * (SEMVER-MINOR) add `FileHandle.prototype.readLines` (Antoine du Hamel)
  #42590
* http:
  * (SEMVER-MINOR) add writeEarlyHints function to ServerResponse (Wing)
  #44180
* http2:
  * (SEMVER-MINOR) make early hints generic (Yagiz Nizipli) #44820
* lib:
  * (SEMVER-MINOR) refactor transferable AbortSignal (flakey5) #44048
* src:
  * (SEMVER-MINOR) add detailed embedder process initialization API (Anna
  Henningsen) #44121
* util:
  * (SEMVER-MINOR) add default value option to parsearg (Manuel Spigolon)
  #44631

PR-URL: #44968
danielleadams added a commit that referenced this pull request Oct 13, 2022
watch mode (experimental):

Running in 'watch' mode using `node --watch` restarts the process when an
imported file is changed.

Contributed by Moshe Atlow in #44366

Other notable changes:

* fs:
  * (SEMVER-MINOR) add `FileHandle.prototype.readLines` (Antoine du Hamel)
  #42590
* http:
  * (SEMVER-MINOR) add writeEarlyHints function to ServerResponse (Wing)
  #44180
* http2:
  * (SEMVER-MINOR) make early hints generic (Yagiz Nizipli) #44820
* lib:
  * (SEMVER-MINOR) refactor transferable AbortSignal (flakey5) #44048
* src:
  * (SEMVER-MINOR) add detailed embedder process initialization API (Anna
  Henningsen) #44121
* util:
  * (SEMVER-MINOR) add default value option to parsearg (Manuel Spigolon)
  #44631

PR-URL: #44968
danielleadams added a commit that referenced this pull request Oct 13, 2022
watch mode (experimental):

Running in 'watch' mode using `node --watch` restarts the process when an
imported file is changed.

Contributed by Moshe Atlow in #44366

Other notable changes:

* fs:
  * (SEMVER-MINOR) add `FileHandle.prototype.readLines` (Antoine du Hamel)
  #42590
* http:
  * (SEMVER-MINOR) add writeEarlyHints function to ServerResponse (Wing)
  #44180
* http2:
  * (SEMVER-MINOR) make early hints generic (Yagiz Nizipli) #44820
* lib:
  * (SEMVER-MINOR) refactor transferable AbortSignal (flakey5) #44048
* src:
  * (SEMVER-MINOR) add detailed embedder process initialization API (Anna
  Henningsen) #44121
* util:
  * (SEMVER-MINOR) add default value option to parsearg (Manuel Spigolon)
  #44631

PR-URL: #44968
@shadowspawn
Copy link
Member

This PR has landed in v18.11.0

parseArgs has also been included in Node.js v16. Is there any additional work require to land this PR in v16, so default is also available there, or will it happen automatically?

@aduh95
Copy link
Contributor

aduh95 commented Oct 15, 2022

Node.js 16.x is going into maintenance mode next tuesday (see https://github.com/nodejs/Release#release-schedule), and there are no scheduled release until then, so PRs won't be "automatically" backported anymore. That means someone would need to open a backport PR for this to land on v16.x.

@shadowspawn
Copy link
Member

shadowspawn commented Oct 15, 2022

Thanks for info @aduh95

Light question: might adding default support be acceptable as a back port at this late stage? (i.e. v16.x not in maintenance mode yet, but will be very soon!)

@aduh95
Copy link
Contributor

aduh95 commented Oct 16, 2022

It should be, as long as someone opens a backport PR, see https://github.com/nodejs/node/blob/0f9087971c085ea0c93b9fd867e442afe11c0ae0/doc/contributing/backporting-to-release-lines.md for more info.

@targos
Copy link
Member

targos commented Oct 16, 2022

There doesn't have to be a backport PR. Another option (especially if the commit can be cherry-picked without conflicts) is to add the lts-watch-v16.x label.

@Eomm Eomm deleted the parseargs-default-value branch October 16, 2022 14:04
tniessen added a commit to tniessen/node that referenced this pull request Oct 19, 2022
nodejs-github-bot pushed a commit that referenced this pull request Oct 20, 2022
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
RafaelGSS pushed a commit that referenced this pull request Nov 1, 2022
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
RafaelGSS pushed a commit that referenced this pull request Nov 10, 2022
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
richardlau pushed a commit that referenced this pull request Nov 24, 2022
Users can set a default
value for every expected
input argument

PR-URL: #44631
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
richardlau pushed a commit that referenced this pull request Nov 24, 2022
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
@richardlau richardlau mentioned this pull request Dec 8, 2022
mwalbeck pushed a commit to mwalbeck/docker-cyberchef that referenced this pull request Dec 14, 2022
This PR contains the following updates:

| Package | Type | Update | Change |
|---|---|---|---|
| [node](https://github.com/nodejs/node) | stage | minor | `16.18.1-bullseye` -> `16.19.0-bullseye` |

---

### Release Notes

<details>
<summary>nodejs/node</summary>

### [`v16.19.0`](https://github.com/nodejs/node/releases/tag/v16.19.0): 2022-12-13, Version 16.19.0 &#x27;Gallium&#x27; (LTS), @&#8203;richardlau

[Compare Source](nodejs/node@v16.18.1...v16.19.0)

##### Notable Changes

##### OpenSSL 1.1.1s

This update is a bugfix release and does not address any security
vulnerabilities.

##### Root certificates updated to NSS 3.85

Certificates added:

-   Autoridad de Certificacion Firmaprofesional CIF [`A626340`](nodejs/node@A62634068)
-   Certainly Root E1
-   Certainly Root R1
-   D-TRUST BR Root CA 1 2020
-   D-TRUST EV Root CA 1 2020
-   DigiCert TLS ECC P384 Root G5
-   DigiCert TLS RSA4096 Root G5
-   E-Tugra Global Root CA ECC v3
-   E-Tugra Global Root CA RSA v3
-   HiPKI Root CA - G1
-   ISRG Root X2
-   Security Communication ECC RootCA1
-   Security Communication RootCA3
-   Telia Root CA v2
-   vTrus ECC Root CA
-   vTrus Root CA

Certificates removed:

-   Cybertrust Global Root
-   DST Root CA X3
-   GlobalSign Root CA - R2
-   Hellenic Academic and Research Institutions RootCA 2011

##### Time zone update to 2022f

Time zone data has been updated to 2022f. This includes changes to Daylight
Savings Time (DST) for Fiji and Mexico. For more information, see
<https://mm.icann.org/pipermail/tz-announce/2022-October/000075.html>.

##### Other Notable Changes

-   \[[`33707dcd03`](nodejs/node@33707dcd03)] - **dgram**: add dgram send queue info (theanarkh) [#&#8203;44149](nodejs/node#44149)

Dependency updates:

-   \[[`3b2b70d792`](nodejs/node@3b2b70d792)] - **deps**: upgrade npm to 8.19.3 (npm team) [#&#8203;45322](nodejs/node#45322)

Experimental features:

-   \[[`1e0dcd1ee0`](nodejs/node@1e0dcd1ee0)] - **cli**: add `--watch` (Moshe Atlow) [#&#8203;44366](nodejs/node#44366)
-   \[[`8c73279ebb`](nodejs/node@8c73279ebb)] - **util**: add default value option to parsearg (Manuel Spigolon) [#&#8203;44631](nodejs/node#44631)

##### Commits

-   \[[`bbef3c42f6`](nodejs/node@bbef3c42f6)] - **build**: add version info to timezone update PR (Darshan Sen) [#&#8203;45021](nodejs/node#45021)
-   \[[`cc2c7648e0`](nodejs/node@cc2c7648e0)] - **build**: support Python 3.11 (Luigi Pinca) [#&#8203;45191](nodejs/node#45191)
-   \[[`ac24c80663`](nodejs/node@ac24c80663)] - **build**: remove redundant condition from common.gypi (Richard Lau) [#&#8203;45076](nodejs/node#45076)
-   \[[`03dcbe3030`](nodejs/node@03dcbe3030)] - **build**: fix bad upstream merge (Stephen Gallagher) [#&#8203;44642](nodejs/node#44642)
-   \[[`1e0dcd1ee0`](nodejs/node@1e0dcd1ee0)] - **cli**: add `--watch` (Moshe Atlow) [#&#8203;44366](nodejs/node#44366)
-   \[[`96d131665e`](nodejs/node@96d131665e)] - **cluster**: use inspector utils (Moshe Atlow) [#&#8203;44592](nodejs/node#44592)
-   \[[`704836033a`](nodejs/node@704836033a)] - **crypto**: update root certificates (Luigi Pinca) [#&#8203;45490](nodejs/node#45490)
-   \[[`5a776d4a69`](nodejs/node@5a776d4a69)] - **deps**: update timezone to 2022f (Richard Lau) [#&#8203;45613](nodejs/node#45613)
-   \[[`3b2b70d792`](nodejs/node@3b2b70d792)] - **deps**: upgrade npm to 8.19.3 (npm team) [#&#8203;45322](nodejs/node#45322)
-   \[[`9fbc8b21db`](nodejs/node@9fbc8b21db)] - **deps**: update corepack to 0.15.1 (Node.js GitHub Bot) [#&#8203;45331](nodejs/node#45331)
-   \[[`87e3d002ca`](nodejs/node@87e3d002ca)] - **deps**: update corepack to 0.15.0 (Node.js GitHub Bot) [#&#8203;45235](nodejs/node#45235)
-   \[[`e972ff7b13`](nodejs/node@e972ff7b13)] - **deps**: V8: backport [`bbd800c`](nodejs/node@bbd800c6e359) (Chengzhong Wu) [#&#8203;44947](nodejs/node#44947)
-   \[[`af9d8217c0`](nodejs/node@af9d8217c0)] - **deps**: V8: cherry-pick [`b953542`](nodejs/node@b95354290941) (Chengzhong Wu) [#&#8203;44947](nodejs/node#44947)
-   \[[`38202d321b`](nodejs/node@38202d321b)] - **deps**: update undici to 5.12.0 (Node.js GitHub Bot) [#&#8203;45236](nodejs/node#45236)
-   \[[`7c0da6adf9`](nodejs/node@7c0da6adf9)] - **deps**: update archs files for OpenSSL-1.1.1s (RafaelGSS) [#&#8203;45274](nodejs/node#45274)
-   \[[`1149ead6f7`](nodejs/node@1149ead6f7)] - **deps**: upgrade openssl sources to OpenSSL\_1\_1\_1s (RafaelGSS) [#&#8203;45274](nodejs/node#45274)
-   \[[`cd54bce4f5`](nodejs/node@cd54bce4f5)] - **deps**: update timezone (Node.js GitHub Bot) [#&#8203;44950](nodejs/node#44950)
-   \[[`2901abe4f0`](nodejs/node@2901abe4f0)] - **deps**: update undici to 5.11.0 (Node.js GitHub Bot) [#&#8203;44929](nodejs/node#44929)
-   \[[`c80cf97033`](nodejs/node@c80cf97033)] - **deps**: update corepack to 0.14.2 (Node.js GitHub Bot) [#&#8203;44775](nodejs/node#44775)
-   \[[`33707dcd03`](nodejs/node@33707dcd03)] - **dgram**: add dgram send queue info (theanarkh) [#&#8203;44149](nodejs/node#44149)
-   \[[`c708d9bb94`](nodejs/node@c708d9bb94)] - **doc**: fix typo in parseArgs default value (Tobias Nießen) [#&#8203;45083](nodejs/node#45083)
-   \[[`5a0efa05d2`](nodejs/node@5a0efa05d2)] - **node-api**: handle no support for external buffers (Michael Dawson) [#&#8203;45181](nodejs/node#45181)
-   \[[`db31de634e`](nodejs/node@db31de634e)] - **readline**: refactor to avoid unsafe regex primordials (Antoine du Hamel) [#&#8203;43475](nodejs/node#43475)
-   \[[`fbc52e5729`](nodejs/node@fbc52e5729)] - **src**: disambiguate terms used to refer to builtins and addons (Joyee Cheung) [#&#8203;44135](nodejs/node#44135)
-   \[[`953072d3db`](nodejs/node@953072d3db)] - **src**: let http2 streams end after session close (Santiago Gimeno) [#&#8203;45153](nodejs/node#45153)
-   \[[`54608d8dc3`](nodejs/node@54608d8dc3)] - **src**: split property helpers from node::Environment (Chengzhong Wu) [#&#8203;44056](nodejs/node#44056)
-   \[[`6733556783`](nodejs/node@6733556783)] - **test**: add test to validate changelogs for releases (Richard Lau) [#&#8203;45325](nodejs/node#45325)
-   \[[`821d832cef`](nodejs/node@821d832cef)] - **test**: mark test-watch-mode\* as flaky on all platforms (Pierrick Bouvier) [#&#8203;45049](nodejs/node#45049)
-   \[[`02a18eac69`](nodejs/node@02a18eac69)] - **test**: fix test-runner-inspect (Moshe Atlow) [#&#8203;44620](nodejs/node#44620)
-   \[[`197df63f74`](nodejs/node@197df63f74)] - **test**: add a test to ensure the correctness of timezone upgrades (Darshan Sen) [#&#8203;45299](nodejs/node#45299)
-   \[[`42e9d8016a`](nodejs/node@42e9d8016a)] - **test**: fix textdecoder test for small-icu builds (Richard Lau) [#&#8203;45225](nodejs/node#45225)
-   \[[`6d736a56d8`](nodejs/node@6d736a56d8)] - **test**: fix watch mode test flake (Moshe Atlow) [#&#8203;44739](nodejs/node#44739)
-   \[[`543d3d2bf3`](nodejs/node@543d3d2bf3)] - **test**: deflake watch mode tests (Moshe Atlow) [#&#8203;44621](nodejs/node#44621)
-   \[[`97f6caf4eb`](nodejs/node@97f6caf4eb)] - **test**: split watch mode inspector tests to sequential (Moshe Atlow) [#&#8203;44551](nodejs/node#44551)
-   \[[`499750ff7a`](nodejs/node@499750ff7a)] - **test**: update list of known globals (Antoine du Hamel) [#&#8203;45255](nodejs/node#45255)
-   \[[`64d343af74`](nodejs/node@64d343af74)] - **test_runner**: support using `--inspect` with `--test` (Moshe Atlow) [#&#8203;44520](nodejs/node#44520)
-   \[[`99ee5e484d`](nodejs/node@99ee5e484d)] - **test_runner**: fix `duration_ms` to be milliseconds (Moshe Atlow) [#&#8203;44450](nodejs/node#44450)
-   \[[`37e909251c`](nodejs/node@37e909251c)] - **test_runner**: support programmatically running `--test` (Moshe Atlow) [#&#8203;44241](nodejs/node#44241)
-   \[[`0ae5694f88`](nodejs/node@0ae5694f88)] - **tools**: update certdata.txt (Luigi Pinca) [#&#8203;45490](nodejs/node#45490)
-   \[[`891368cefd`](nodejs/node@891368cefd)] - **tools**: remove faulty early termination logic from update-timezone.mjs (Darshan Sen) [#&#8203;44870](nodejs/node#44870)
-   \[[`543493c242`](nodejs/node@543493c242)] - **tools**: fix timezone update tool (Darshan Sen) [#&#8203;44870](nodejs/node#44870)
-   \[[`c77f660b75`](nodejs/node@c77f660b75)] - **tools**: fix `create-or-update-pull-request-action` hash on GHA (Antoine du Hamel) [#&#8203;45166](nodejs/node#45166)
-   \[[`58c30dd049`](nodejs/node@58c30dd049)] - **tools**: update gr2m/create-or-update-pull-request-action (Luigi Pinca) [#&#8203;45022](nodejs/node#45022)
-   \[[`749a4b3e5e`](nodejs/node@749a4b3e5e)] - **tools**: use Python 3.11 in GitHub Actions workflows (Luigi Pinca) [#&#8203;45191](nodejs/node#45191)
-   \[[`6f541d99a5`](nodejs/node@6f541d99a5)] - **tools**: have test-asan use ubuntu-20.04 (Filip Skokan) [#&#8203;45581](nodejs/node#45581)
-   \[[`e7ed56f501`](nodejs/node@e7ed56f501)] - **tools**: make license-builder.sh comply with shellcheck 0.8.0 (Rich Trott) [#&#8203;41258](nodejs/node#41258)
-   \[[`cc819b4bf8`](nodejs/node@cc819b4bf8)] - **tools**: fix typo in `avoid-prototype-pollution` lint rule (Antoine du Hamel) [#&#8203;44446](nodejs/node#44446)
-   \[[`254358c81e`](nodejs/node@254358c81e)] - **tools**: refactor `avoid-prototype-pollution` lint rule (Antoine du Hamel) [#&#8203;43476](nodejs/node#43476)
-   \[[`8c73279ebb`](nodejs/node@8c73279ebb)] - **util**: add default value option to parsearg (Manuel Spigolon) [#&#8203;44631](nodejs/node#44631)

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).

🚦 **Automerge**: Disabled by config. Please merge this manually once you are satisfied.

♻ **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update again.

---

 - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box

---

This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate).
<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNC41NS4wIiwidXBkYXRlZEluVmVyIjoiMzQuNTUuMCJ9-->

Reviewed-on: https://git.walbeck.it/mwalbeck/docker-cyberchef/pulls/143
Co-authored-by: renovate-bot <bot@walbeck.it>
Co-committed-by: renovate-bot <bot@walbeck.it>
danielleadams pushed a commit that referenced this pull request Dec 30, 2022
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
danielleadams pushed a commit that referenced this pull request Dec 30, 2022
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
guangwong pushed a commit to noslate-project/node that referenced this pull request Jan 3, 2023
Users can set a default
value for every expected
input argument

PR-URL: nodejs/node#44631
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
guangwong pushed a commit to noslate-project/node that referenced this pull request Jan 3, 2023
Refs: nodejs/node#44631
PR-URL: nodejs/node#45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
guangwong pushed a commit to noslate-project/node that referenced this pull request Jan 3, 2023
Users can set a default
value for every expected
input argument

PR-URL: nodejs/node#44631
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
guangwong pushed a commit to noslate-project/node that referenced this pull request Jan 3, 2023
Refs: nodejs/node#44631
PR-URL: nodejs/node#45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
danielleadams pushed a commit that referenced this pull request Jan 3, 2023
Refs: #44631
PR-URL: #45083
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Zeyu "Alex" Yang <himself65@outlook.com>
Reviewed-By: Rich Trott <rtrott@gmail.com>
Reviewed-By: Daijiro Wachi <daijiro.wachi@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
author ready PRs that have at least one approval, no pending requests for changes, and a CI started. commit-queue-squash Add this label to instruct the Commit Queue to squash all the PR commits into the first one. semver-minor PRs that contain new features and should be released in the next minor version. util Issues and PRs related to the built-in util module.
Projects
None yet
Development

Successfully merging this pull request may close these issues.