Skip to content

Commit

Permalink
lib: enable WebSocket by default
Browse files Browse the repository at this point in the history
  • Loading branch information
Uzlopak committed Jan 31, 2024
1 parent 64c6d97 commit 2722af1
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 20 deletions.
20 changes: 9 additions & 11 deletions doc/api/cli.md
Original file line number Diff line number Diff line change
Expand Up @@ -931,16 +931,6 @@ added: v12.3.0

Enable experimental WebAssembly module support.

### `--experimental-websocket`

<!-- YAML
added:
- v21.0.0
- v20.10.0
-->

Enable experimental [`WebSocket`][] support.

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

<!-- YAML
Expand Down Expand Up @@ -1359,6 +1349,14 @@ added: v16.6.0

Use this flag to disable top-level await in REPL.

### `--no-experimental-websocket`

<!-- YAML
added: REPLACEME
-->

Use this flag to disable experimental [`WebSocket`][] support.

### `--no-extra-info-on-fatal-exception`

<!-- YAML
Expand Down Expand Up @@ -2493,7 +2491,6 @@ Node.js options that are allowed are:
* `--experimental-vm-modules`
* `--experimental-wasi-unstable-preview1`
* `--experimental-wasm-modules`
* `--experimental-websocket`
* `--force-context-aware`
* `--force-fips`
* `--force-node-api-uncaught-exceptions-policy`
Expand All @@ -2518,6 +2515,7 @@ Node.js options that are allowed are:
* `--no-experimental-global-navigator`
* `--no-experimental-global-webcrypto`
* `--no-experimental-repl-await`
* `--no-experimental-websocket`
* `--no-extra-info-on-fatal-exception`
* `--no-force-async-hooks-checks`
* `--no-global-search-paths`
Expand Down
10 changes: 7 additions & 3 deletions doc/api/globals.md
Original file line number Diff line number Diff line change
Expand Up @@ -1097,12 +1097,16 @@ The object that acts as the namespace for all W3C
added:
- v21.0.0
- v20.10.0
changes:
- version: REPLACEME
pr-url: https://github.com/nodejs/node/pull/51594
description: No longer behind `--experimental-websocket` CLI flag.
-->

> Stability: 1 - Experimental.
A browser-compatible implementation of [`WebSocket`][]. Enable this API
with the [`--experimental-websocket`][] CLI flag.
A browser-compatible implementation of [`WebSocket`][]. Disable this API
with the [`--no-experimental-websocket`][] CLI flag.

## Class: `WritableStream`

Expand Down Expand Up @@ -1139,10 +1143,10 @@ A browser-compatible implementation of [`WritableStreamDefaultWriter`][].
[Navigator API]: https://html.spec.whatwg.org/multipage/system-state.html#the-navigator-object
[RFC 5646]: https://www.rfc-editor.org/rfc/rfc5646.txt
[Web Crypto API]: webcrypto.md
[`--experimental-websocket`]: cli.md#--experimental-websocket
[`--no-experimental-global-customevent`]: cli.md#--no-experimental-global-customevent
[`--no-experimental-global-navigator`]: cli.md#--no-experimental-global-navigator
[`--no-experimental-global-webcrypto`]: cli.md#--no-experimental-global-webcrypto
[`--no-experimental-websocket`]: cli.md#--no-experimental-websocket
[`AbortController`]: https://developer.mozilla.org/en-US/docs/Web/API/AbortController
[`ByteLengthQueuingStrategy`]: webstreams.md#class-bytelengthqueuingstrategy
[`CompressionStream`]: webstreams.md#class-compressionstream
Expand Down
6 changes: 3 additions & 3 deletions doc/node.1
Original file line number Diff line number Diff line change
Expand Up @@ -186,12 +186,12 @@ Use this flag to enable ShadowRealm support.
.It Fl -experimental-test-coverage
Enable code coverage in the test runner.
.
.It Fl -experimental-websocket
Enable experimental support for the WebSocket API.
.
.It Fl -no-experimental-fetch
Disable experimental support for the Fetch API.
.
.It Fl -no-experimental-websocket
Disable experimental support for the WebSocket API.
.
.It Fl -no-experimental-global-customevent
Disable exposition of the CustomEvent on the global scope.
.
Expand Down
2 changes: 1 addition & 1 deletion lib/internal/process/pre_execution.js
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,7 @@ function setupUndici() {
});
}

if (getOptionValue('--experimental-websocket')) {
if (!getOptionValue('--no-experimental-websocket')) {
ObjectDefineProperties(globalThis, {
WebSocket: lazyInterface('WebSocket'),
});
Expand Down
2 changes: 1 addition & 1 deletion src/node_options.h
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,7 @@ class EnvironmentOptions : public Options {
std::string dns_result_order;
bool enable_source_maps = false;
bool experimental_fetch = true;
bool experimental_websocket = false;
bool experimental_websocket = true;
bool experimental_global_customevent = true;
bool experimental_global_navigator = true;
bool experimental_global_web_crypto = true;
Expand Down
7 changes: 7 additions & 0 deletions test/parallel/test-websocket-disabled.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
// Flags: --no-experimental-websocket
'use strict';

require('../common');
const assert = require('assert');

assert.strictEqual(typeof WebSocket, 'undefined');
1 change: 0 additions & 1 deletion test/parallel/test-websocket.js
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@
// Flags: --experimental-websocket
'use strict';

require('../common');
Expand Down

0 comments on commit 2722af1

Please sign in to comment.