Skip to content

Commit

Permalink
test: ensure cli.md is in alphabetical order
Browse files Browse the repository at this point in the history
Co-authored-by: RedYetiDev <redyetidev@gmail.com>
  • Loading branch information
aduh95 and RedYetiDev committed Nov 27, 2024
1 parent 585f7bc commit 5b4a6fb
Show file tree
Hide file tree
Showing 2 changed files with 119 additions and 104 deletions.
208 changes: 104 additions & 104 deletions doc/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -556,6 +556,18 @@ Affects the default output directory of:
* [`--heap-prof-dir`][]
* [`--redirect-warnings`][]

### `--disable-proto=mode`

<!-- YAML
added:
- v13.12.0
- v12.17.0
-->

Disable the `Object.prototype.__proto__` property. If `mode` is `delete`, the
property is removed entirely. If `mode` is `throw`, accesses to the
property throw an exception with the code `ERR_PROTO_ACCESS`.

### `--disable-warning=code-or-type`

> Stability: 1.1 - Active development
Expand Down Expand Up @@ -650,18 +662,6 @@ users can at least run WebAssembly (with less optimal performance)
when the virtual memory address space available to their Node.js
process is lower than what the V8 WebAssembly memory cage needs.

### `--disable-proto=mode`

<!-- YAML
added:
- v13.12.0
- v12.17.0
-->

Disable the `Object.prototype.__proto__` property. If `mode` is `delete`, the
property is removed entirely. If `mode` is `throw`, accesses to the
property throw an exception with the code `ERR_PROTO_ACCESS`.

### `--disallow-code-generation-from-strings`

<!-- YAML
Expand All @@ -672,25 +672,6 @@ Make built-in language features like `eval` and `new Function` that generate
code from strings throw an exception instead. This does not affect the Node.js
`node:vm` module.

### `--expose-gc`

<!-- YAML
added:
- v22.3.0
- v20.18.0
-->

> Stability: 1 - Experimental. This flag is inherited from V8 and is subject to
> change upstream.
This flag will expose the gc extension from V8.

```js
if (globalThis.gc) {
globalThis.gc();
}
```

### `--dns-result-order=order`

<!-- YAML
Expand Down Expand Up @@ -797,6 +778,15 @@ node --entry-url --experimental-strip-types 'file.ts?query#hash'
node --entry-url 'data:text/javascript,console.log("Hello")'
```

### `--env-file-if-exists=config`

<!-- YAML
added: v22.9.0
-->

Behavior is the same as [`--env-file`][], but an error is not thrown if the file
does not exist.

### `--env-file=config`

> Stability: 1.1 - Active development
Expand Down Expand Up @@ -864,15 +854,6 @@ export USERNAME="nodejs" # will result in `nodejs` as the value.
If you want to load environment variables from a file that may not exist, you
can use the [`--env-file-if-exists`][] flag instead.

### `--env-file-if-exists=config`

<!-- YAML
added: v22.9.0
-->

Behavior is the same as [`--env-file`][], but an error is not thrown if the file
does not exist.

### `-e`, `--eval "script"`

<!-- YAML
Expand Down Expand Up @@ -928,17 +909,6 @@ files with no extension will be treated as WebAssembly if they begin with the
WebAssembly magic number (`\0asm`); otherwise they will be treated as ES module
JavaScript.

### `--experimental-transform-types`

<!-- YAML
added: v22.7.0
-->

> Stability: 1.1 - Active development
Enables the transformation of TypeScript-only syntax into JavaScript code.
Implies `--experimental-strip-types` and `--enable-source-maps`.

### `--experimental-eventsource`

<!-- YAML
Expand Down Expand Up @@ -1018,6 +988,18 @@ following permissions are restricted:
* WASI - manageable through [`--allow-wasi`][] flag
* Addons - manageable through [`--allow-addons`][] flag

### `--experimental-print-required-tla`

<!-- YAML
added:
- v22.0.0
- v20.17.0
-->

If the ES module being `require()`'d contains top-level `await`, this flag
allows Node.js to evaluate the module, try to locate the
top-level awaits, and print their location to help users find them.

### `--experimental-require-module`

<!-- YAML
Expand Down Expand Up @@ -1114,6 +1096,17 @@ added:
Enable module mocking in the test runner.

### `--experimental-transform-types`

<!-- YAML
added: v22.7.0
-->

> Stability: 1.1 - Active development
Enables the transformation of TypeScript-only syntax into JavaScript code.
Implies `--experimental-strip-types` and `--enable-source-maps`.

### `--experimental-vm-modules`

<!-- YAML
Expand Down Expand Up @@ -1159,6 +1152,25 @@ added: v22.4.0

Enable experimental [`Web Storage`][] support.

### `--expose-gc`

<!-- YAML
added:
- v22.3.0
- v20.18.0
-->

> Stability: 1 - Experimental. This flag is inherited from V8 and is subject to
> change upstream.
This flag will expose the gc extension from V8.

```js
if (globalThis.gc) {
globalThis.gc();
}
```

### `--force-context-aware`

<!-- YAML
Expand Down Expand Up @@ -1437,20 +1449,6 @@ When enabled, the parser will accept the following:
All the above will expose your application to request smuggling
or poisoning attack. Avoid using this option.

### `--inspect[=[host:]port]`

<!-- YAML
added: v6.3.0
-->

Activate inspector on `host:port`. Default is `127.0.0.1:9229`. If port `0` is
specified, a random available port will be used.

V8 inspector integration allows tools such as Chrome DevTools and IDEs to debug
and profile Node.js instances. The tools attach to Node.js instances via a
tcp port and communicate using the [Chrome DevTools Protocol][].
See [V8 Inspector integration for Node.js][] for further explanation on Node.js debugger.

<!-- Anchor to make sure old links find a target -->

<a id="inspector_security"></a>
Expand Down Expand Up @@ -1519,6 +1517,20 @@ a random available port will be used.

See [V8 Inspector integration for Node.js][] for further explanation on Node.js debugger.

### `--inspect[=[host:]port]`

<!-- YAML
added: v6.3.0
-->

Activate inspector on `host:port`. Default is `127.0.0.1:9229`. If port `0` is
specified, a random available port will be used.

V8 inspector integration allows tools such as Chrome DevTools and IDEs to debug
and profile Node.js instances. The tools attach to Node.js instances via a
tcp port and communicate using the [Chrome DevTools Protocol][].
See [V8 Inspector integration for Node.js][] for further explanation on Node.js debugger.

### `-i`, `--interactive`

<!-- YAML
Expand Down Expand Up @@ -1879,18 +1891,6 @@ changes:

Identical to `-e` but prints the result.

### `--experimental-print-required-tla`

<!-- YAML
added:
- v22.0.0
- v20.17.0
-->

If the ES module being `require()`'d contains top-level `await`, this flag
allows Node.js to evaluate the module, try to locate the
top-level awaits, and print their location to help users find them.

### `--prof`

<!-- YAML
Expand Down Expand Up @@ -2166,6 +2166,17 @@ The following environment variables are set when running a script with `--run`:
* `NODE_RUN_PACKAGE_JSON_PATH`: The path to the `package.json` that is being
processed.

### `--secure-heap-min=n`

<!-- YAML
added: v15.6.0
-->

When using `--secure-heap`, the `--secure-heap-min` flag specifies the
minimum allocation from the secure heap. The minimum value is `2`.
The maximum value is the lesser of `--secure-heap` or `2147483647`.
The value given must be a power of two.

### `--secure-heap=n`

<!-- YAML
Expand All @@ -2191,17 +2202,6 @@ The secure heap is not available on Windows.

See [`CRYPTO_secure_malloc_init`][] for more details.

### `--secure-heap-min=n`

<!-- YAML
added: v15.6.0
-->

When using `--secure-heap`, the `--secure-heap-min` flag specifies the
minimum allocation from the secure heap. The minimum value is `2`.
The maximum value is the lesser of `--secure-heap` or `2147483647`.
The value given must be a power of two.

### `--snapshot-blob=path`

<!-- YAML
Expand Down Expand Up @@ -2912,11 +2912,6 @@ and `NODE_DISABLE_COLORS` environment variables are ignored.

Any other value will result in colorized output being disabled.

### `NO_COLOR=<any>`

[`NO_COLOR`][] is an alias for `NODE_DISABLE_COLORS`. The value of the
environment variable is arbitrary.

### `NODE_COMPILE_CACHE=dir`

<!-- YAML
Expand Down Expand Up @@ -3323,6 +3318,11 @@ easier to instrument applications that call the `child_process.spawn()` family
of functions. `NODE_V8_COVERAGE` can be set to an empty string, to prevent
propagation.

### `NO_COLOR=<any>`

[`NO_COLOR`][] is an alias for `NODE_DISABLE_COLORS`. The value of the
environment variable is arbitrary.

#### Coverage output

Coverage is output as an array of [ScriptCoverage][] objects on the top-level
Expand Down Expand Up @@ -3507,19 +3507,9 @@ documented here:

### `--harmony-shadow-realm`

### `--jitless`

### `--interpreted-frames-native-stack`

### `--prof`

### `--perf-basic-prof`

### `--perf-basic-prof-only-functions`

### `--perf-prof`

### `--perf-prof-unwinding-info`
### `--jitless`

<!-- Anchor to make sure old links find a target -->

Expand Down Expand Up @@ -3571,6 +3561,16 @@ for MiB in 16 32 64 128; do
done
```

### `--perf-basic-prof`

### `--perf-basic-prof-only-functions`

### `--perf-prof`

### `--perf-prof-unwinding-info`

### `--prof`

### `--security-revert`

### `--stack-trace-limit=limit`
Expand Down
15 changes: 15 additions & 0 deletions test/parallel/test-cli-node-options-docs.js
Original file line number Diff line number Diff line change
Expand Up @@ -123,6 +123,21 @@ for (const [, envVar, config] of nodeOptionsCC.matchAll(addOptionRE)) {
}
}

{
const sections = /^## (.+)$/mg;
const cliOptionPattern = /^### (?:`-\w.*`, )?`([^`]+)`/mg;
let match;
let previousIndex = 0;
do {
const sectionTitle = match?.[1];
match = sections.exec(cliText);
const filteredCLIText = cliText.slice(previousIndex, match?.index);
const options = Array.from(filteredCLIText.matchAll(cliOptionPattern), (match) => match[1]);
assert.deepStrictEqual(options, options.toSorted(), `doc/api/cli.md ${sectionTitle} subsections are not in alphabetical order`);
previousIndex = match?.index;
} while (match);
}

// add alias handling
manPagesOptions.delete('-trace-events-enabled');

Expand Down

0 comments on commit 5b4a6fb

Please sign in to comment.