1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-23 15:16:54 -05:00

BREAKING(fs): remove Deno.FsFile.prototype.rid (#25499)

Towards #22079

---------

Signed-off-by: Asher Gomez <ashersaupingomez@gmail.com>
This commit is contained in:
Asher Gomez 2024-09-11 07:19:34 +10:00 committed by GitHub
parent f9007d3386
commit a69b1e699e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
17 changed files with 38 additions and 44 deletions

View file

@ -1815,15 +1815,6 @@ declare namespace Deno {
* @category File System
*/
export class FsFile implements Seeker, SeekerSync, Disposable {
/**
* The resource ID associated with the file instance. The resource ID
* should be considered an opaque reference to resource.
*
* @deprecated This will be removed in Deno 2.0. See the
* {@link https://docs.deno.com/runtime/manual/advanced/migrate_deprecations | Deno 1.x to 2.x Migration Guide}
* for migration instructions.
*/
readonly rid: number;
/** A {@linkcode ReadableStream} instance representing to the byte contents
* of the file. This makes it easy to interoperate with other web streams
* based APIs.
@ -1973,7 +1964,7 @@ declare namespace Deno {
* resolves to the new position within the resource (bytes from the start).
*
* ```ts
* // Given file pointing to file with "Hello world", which is 11 bytes long:
* // Given the file contains "Hello world" text, which is 11 bytes long:
* using file = await Deno.open(
* "hello.txt",
* { read: true, write: true, truncate: true, create: true },
@ -1991,7 +1982,7 @@ declare namespace Deno {
* The seek modes work as follows:
*
* ```ts
* // Given file.rid pointing to file with "Hello world", which is 11 bytes long:
* // Given the file contains "Hello world" text, which is 11 bytes long:
* const file = await Deno.open(
* "hello.txt",
* { read: true, write: true, truncate: true, create: true },
@ -2028,7 +2019,7 @@ declare namespace Deno {
* The seek modes work as follows:
*
* ```ts
* // Given file.rid pointing to file with "Hello world", which is 11 bytes long:
* // Given the file contains "Hello world" text, which is 11 bytes long:
* using file = Deno.openSync(
* "hello.txt",
* { read: true, write: true, truncate: true, create: true },

View file

@ -1,6 +1,6 @@
// Copyright 2018-2024 the Deno authors. All rights reserved. MIT license.
import { core, internals, primordials } from "ext:core/mod.js";
import { core, primordials } from "ext:core/mod.js";
const {
isDate,
internalRidSymbol,
@ -581,15 +581,6 @@ class FsFile {
}
}
get rid() {
internals.warnOnDeprecatedApi(
"Deno.FsFile.rid",
new Error().stack,
"Use `Deno.FsFile` methods directly instead.",
);
return this.#rid;
}
write(p) {
return write(this.#rid, p);
}

View file

@ -783,7 +783,6 @@ function bootstrapMainRuntime(runtimeOptions, warmup = false) {
}
if (internals.future) {
delete globalThis.window;
delete Deno.FsFile.prototype.rid;
}
} else {
// Warmup
@ -930,10 +929,6 @@ function bootstrapWorkerRuntime(
nodeDebug,
});
}
if (internals.future) {
delete Deno.FsFile.prototype.rid;
}
} else {
// Warmup
return;

View file

@ -1,8 +1,4 @@
console.log("window is", globalThis.window);
console.log(
"Deno.FsFile.prototype.rid is",
Deno.openSync(import.meta.filename).rid,
);
// TCP
// Since these tests may run in parallel, ensure this port is unique to this file

View file

@ -1,5 +1,4 @@
window is undefined
Deno.FsFile.prototype.rid is undefined
Deno.Listener.prototype.rid is undefined
Deno.TlsListener.prototype.rid is undefined
Deno.FsFile constructor is illegal

View file

@ -26,7 +26,6 @@ Deno.test(
const filename = "tests/testdata/assets/fixture.json";
using file = await Deno.open(filename);
assert(file instanceof Deno.FsFile);
assert(file.rid > 2);
const bytesWritten = await copy(file, Deno.stdout);
const fileSize = Deno.statSync(filename).size;
assertEquals(bytesWritten, fileSize);

View file

@ -6,7 +6,6 @@ import {
assertStrictEquals,
assertStringIncludes,
assertThrows,
DENO_FUTURE,
} from "./test_util.ts";
Deno.test(
@ -363,8 +362,6 @@ Deno.test(
Deno.test(
{
// Ignoring because uses `file.rid`
ignore: DENO_FUTURE,
permissions: { run: true, write: true, read: true },
},
async function runRedirectStdoutStderr() {
@ -382,10 +379,12 @@ Deno.test(
"eval",
"Deno.stderr.write(new TextEncoder().encode('error\\n')); Deno.stdout.write(new TextEncoder().encode('output\\n'));",
],
stdout: file.rid,
stderr: file.rid,
stdout: "piped",
stderr: "piped",
});
await p.stdout.readable.pipeTo(file.writable, { preventClose: true });
await p.stderr.readable.pipeTo(file.writable);
await p.status();
p.close();
@ -402,8 +401,6 @@ Deno.test(
Deno.test(
{
// Ignoring because uses `file.rid`
ignore: DENO_FUTURE,
permissions: { run: true, write: true, read: true },
},
async function runRedirectStdin() {
@ -425,9 +422,10 @@ Deno.test(
}
`,
],
stdin: file.rid,
stdin: "piped",
});
await file.readable.pipeTo(p.stdin.writable);
const status = await p.status();
assertEquals(status.code, 0);
p.close();

View file

@ -75,6 +75,7 @@ Deno.test({
read: true,
});
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
appendFile(file.rid, "hello world", (err) => {
if (err) reject();
else resolve();
@ -166,6 +167,7 @@ Deno.test({
write: true,
read: true,
});
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
appendFileSync(file.rid, "hello world");
const data = Deno.readFileSync(tempFile);
assertEquals(decoder.decode(data), "hello world");

View file

@ -13,6 +13,7 @@ Deno.test({
const file: Deno.FsFile = await Deno.open(tempFile);
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
close(file.rid, (err) => {
if (err !== null) reject();
else resolve();
@ -45,6 +46,7 @@ Deno.test({
let foo: string;
const promise = new Promise<void>((resolve) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
close(file.rid, () => {
assert(foo === "bar");
resolve();
@ -66,6 +68,7 @@ Deno.test({
const tempFile: string = Deno.makeTempFileSync();
const file: Deno.FsFile = Deno.openSync(tempFile);
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
closeSync(file.rid);
Deno.removeSync(tempFile);
},

View file

@ -19,6 +19,7 @@ Deno.test({
await file.write(data);
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
fdatasync(file.rid, (err: Error | null) => {
if (err !== null) reject();
else resolve();
@ -55,6 +56,7 @@ Deno.test({
file.writeSync(data);
try {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
fdatasyncSync(file.rid);
assertEquals(Deno.readFileSync(filePath), data);
} finally {

View file

@ -15,6 +15,7 @@ Deno.test({
using file = await Deno.open(filePath);
await new Promise<Stats>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
fstat(file.rid, (err: Error | null, stat: Stats) => {
if (err) reject(err);
resolve(stat);
@ -43,6 +44,7 @@ Deno.test({
await new Promise<BigIntStats>((resolve, reject) => {
fstat(
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
file.rid,
{ bigint: true },
(err: Error | null, stat: BigIntStats) => {
@ -71,6 +73,7 @@ Deno.test({
using file = Deno.openSync(filePath);
try {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
assertStats(fstatSync(file.rid), file.statSync());
} finally {
Deno.removeSync(filePath);
@ -89,9 +92,11 @@ Deno.test({
try {
// HEAD
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
assertStatsBigInt(fstatSync(file.rid, { bigint: true }), file.statSync());
//
assertStatsBigInt(
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
fstatSync(file.rid, { bigint: true }),
file.statSync(),
);

View file

@ -18,6 +18,7 @@ Deno.test({
await file.truncate(size);
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
fsync(file.rid, (err: Error | null) => {
if (err !== null) reject();
else resolve();
@ -53,6 +54,7 @@ Deno.test({
file.truncateSync(size);
try {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
fsyncSync(file.rid);
assertEquals(Deno.statSync(filePath).size, size);
} finally {

View file

@ -31,6 +31,7 @@ Deno.test({
});
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
ftruncate(file.rid, (err: Error | null) => {
if (err !== null) reject();
else resolve();
@ -66,6 +67,7 @@ Deno.test({
});
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
ftruncate(file.rid, 3, (err: Error | null) => {
if (err !== null) reject();
else resolve();
@ -101,6 +103,7 @@ Deno.test({
});
try {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
ftruncateSync(file.rid);
const fileInfo: Deno.FileInfo = Deno.lstatSync(filePath);
assertEquals(fileInfo.size, 0);
@ -125,6 +128,7 @@ Deno.test({
});
try {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
ftruncateSync(file.rid, 3);
const fileInfo: Deno.FileInfo = Deno.lstatSync(filePath);
assertEquals(fileInfo.size, 3);

View file

@ -15,6 +15,7 @@ Deno.test({
using file = await Deno.open(filePath, { create: true, write: true });
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
futimes(file.rid, randomDate, randomDate, (err: Error | null) => {
if (err !== null) reject();
else resolve();
@ -73,6 +74,7 @@ Deno.test({
using file = Deno.openSync(filePath, { create: true, write: true });
try {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
futimesSync(file.rid, randomDate, randomDate);
const fileInfo: Deno.FileInfo = Deno.lstatSync(filePath);

View file

@ -119,6 +119,7 @@ Deno.test(
});
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
writeFile(file.rid, "hello world", (err) => {
if (err) return reject(err);
resolve();
@ -234,6 +235,7 @@ Deno.test(
});
await new Promise<void>((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
writeFile(file.rid, "hello world", { mode: 0o777 }, (err) => {
if (err) return reject(err);
resolve();
@ -288,6 +290,7 @@ Deno.test(
read: true,
});
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
writeFileSync(file.rid, "hello world");
const data = Deno.readFileSync(tempFile);

View file

@ -22,6 +22,7 @@ Deno.test({
});
const buffer = Buffer.from("hello world");
const bytesWrite = await new Promise((resolve, reject) => {
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
write(file.rid, buffer, 0, 5, (err: unknown, nwritten: number) => {
if (err) return reject(err);
resolve(nwritten);
@ -49,6 +50,7 @@ Deno.test({
read: true,
});
const buffer = Buffer.from("hello world");
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
const bytesWrite = writeSync(file.rid, buffer, 0, 5);
const data = Deno.readFileSync(tempFile);
@ -75,6 +77,7 @@ Deno.test({
const str = "hello world";
const buffer = Buffer.from(str);
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
const bytesWritten = writeSync(file.rid, buffer, 0, str.length, 4);
const data = Deno.readFileSync(tempFile);
@ -122,6 +125,7 @@ Deno.test({
for (let i = 0; i < bytes.length; i++) {
buffer[offset + i] = i;
}
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
let nWritten = writeSync(file.rid, buffer, offset, bytes.length, 0);
let data = Deno.readFileSync(tempFile);
@ -131,6 +135,7 @@ Deno.test({
assertEquals(data, new Uint8Array(bytes));
nWritten = await new Promise((resolve, reject) =>
write(
// @ts-ignore (iuioiua) `file.rid` should no longer be needed once FDs are used
file.rid,
buffer,
offset,

View file

@ -10,9 +10,6 @@ Deno.test("[node/tty isatty] returns true when fd is a tty, false otherwise", ()
assert(Deno.stdin.isTerminal() === isatty((Deno as any).stdin.rid));
assert(Deno.stdout.isTerminal() === isatty((Deno as any).stdout.rid));
assert(Deno.stderr.isTerminal() === isatty((Deno as any).stderr.rid));
using file = Deno.openSync("README.md");
assert(!isatty(file.rid));
});
Deno.test("[node/tty isatty] returns false for irrelevant values", () => {