From 9951506506ded805ff5eb09b52fb0235c0c3df79 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bartek=20Iwa=C5=84czuk?= Date: Fri, 26 Jan 2024 00:36:03 +0100 Subject: [PATCH] fix(node): remove deprecation warnings (#22120) Closes https://github.com/denoland/deno/issues/22116 --- cli/tests/node_compat/test.ts | 1 - ext/fs/30_fs.js | 2 ++ ext/node/polyfills/_fs/_fs_open.ts | 8 +++++--- .../polyfills/internal_binding/stream_wrap.ts | 16 +++++++++++----- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/cli/tests/node_compat/test.ts b/cli/tests/node_compat/test.ts index f0df6ca6f0..a57fd11a52 100644 --- a/cli/tests/node_compat/test.ts +++ b/cli/tests/node_compat/test.ts @@ -81,7 +81,6 @@ async function runTest(t: Deno.TestContext, path: string): Promise { "run", "-A", "--quiet", - "--unstable", //"--unsafely-ignore-certificate-errors", "--unstable-bare-node-builtins", "--v8-flags=" + v8Flags.join(), diff --git a/ext/fs/30_fs.js b/ext/fs/30_fs.js index 2e7eba2428..0a3e1ceb9f 100644 --- a/ext/fs/30_fs.js +++ b/ext/fs/30_fs.js @@ -655,12 +655,14 @@ function create(path) { } class FsFile { + [SymbolFor("Deno.internal.rid")] = 0; #rid = 0; #readable; #writable; constructor(rid, symbol) { + this[SymbolFor("Deno.internal.rid")] = rid; this.#rid = rid; if (!symbol || symbol !== SymbolFor("Deno.internal.FsFile")) { internals.warnOnDeprecatedApi( diff --git a/ext/node/polyfills/_fs/_fs_open.ts b/ext/node/polyfills/_fs/_fs_open.ts index a2b2917e6c..9b4de4ce43 100644 --- a/ext/node/polyfills/_fs/_fs_open.ts +++ b/ext/node/polyfills/_fs/_fs_open.ts @@ -137,7 +137,7 @@ export function open( path as string, convertFlagAndModeToOptions(flags as openFlags, mode), ).then( - (file) => callback!(null, file.rid), + (file) => callback!(null, file[Symbol.for("Deno.internal.rid")]), (err) => (callback as (err: Error) => void)(err), ); } @@ -186,8 +186,10 @@ export function openSync( throw new Error(`EEXIST: file already exists, open '${path}'`); } - return Deno.openSync(path as string, convertFlagAndModeToOptions(flags, mode)) - .rid; + return Deno.openSync( + path as string, + convertFlagAndModeToOptions(flags, mode), + )[Symbol.for("Deno.internal.rid")]; } function existenceCheckRequired(flags: openFlags | number) { diff --git a/ext/node/polyfills/internal_binding/stream_wrap.ts b/ext/node/polyfills/internal_binding/stream_wrap.ts index 87371bf7aa..8480a7d644 100644 --- a/ext/node/polyfills/internal_binding/stream_wrap.ts +++ b/ext/node/polyfills/internal_binding/stream_wrap.ts @@ -46,6 +46,8 @@ import { } from "ext:deno_node/internal_binding/async_wrap.ts"; import { codeMap } from "ext:deno_node/internal_binding/uv.ts"; +const DENO_RID_SYMBOL = Symbol.for("Deno.internal.rid"); + interface Reader { read(p: Uint8Array): Promise; } @@ -203,7 +205,7 @@ export class LibuvStreamWrap extends HandleWrap { allBuffers: boolean, ): number { const supportsWritev = this.provider === providerType.TCPSERVERWRAP; - const rid = this[kStreamBaseField]!.rid; + const rid = this[kStreamBaseField]![DENO_RID_SYMBOL]; // Fast case optimization: two chunks, and all buffers. if ( chunks.length === 2 && allBuffers && supportsWritev && @@ -317,13 +319,15 @@ export class LibuvStreamWrap extends HandleWrap { async #read() { let buf = this.#buf; let nread: number | null; - const ridBefore = this[kStreamBaseField]!.rid; + const ridBefore = this[kStreamBaseField]![DENO_RID_SYMBOL]; try { nread = await this[kStreamBaseField]!.read(buf); } catch (e) { // Try to read again if the underlying stream resource // changed. This can happen during TLS upgrades (eg. STARTTLS) - if (ridBefore != this[kStreamBaseField]!.rid) { + if ( + ridBefore != this[kStreamBaseField]![DENO_RID_SYMBOL] + ) { return this.#read(); } @@ -373,7 +377,7 @@ export class LibuvStreamWrap extends HandleWrap { async #write(req: WriteWrap, data: Uint8Array) { const { byteLength } = data; - const ridBefore = this[kStreamBaseField]!.rid; + const ridBefore = this[kStreamBaseField]![DENO_RID_SYMBOL]; let nwritten = 0; try { @@ -386,7 +390,9 @@ export class LibuvStreamWrap extends HandleWrap { } catch (e) { // Try to read again if the underlying stream resource // changed. This can happen during TLS upgrades (eg. STARTTLS) - if (ridBefore != this[kStreamBaseField]!.rid) { + if ( + ridBefore != this[kStreamBaseField]![DENO_RID_SYMBOL] + ) { return this.#write(req, data.subarray(nwritten)); }