Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 16 additions & 6 deletions types/node/fs/promises.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -153,7 +153,11 @@ declare module "node:fs/promises" {
* @return Fulfills with `undefined` upon success.
*/
appendFile(
data: string | Uint8Array,
data:
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?:
| (ObjectEncodingOptions & Abortable)
| BufferEncoding
Expand Down Expand Up @@ -470,7 +474,11 @@ declare module "node:fs/promises" {
* @since v10.0.0
*/
writeFile(
data: string | Uint8Array,
data:
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?:
| (ObjectEncodingOptions & Abortable)
| BufferEncoding
Expand Down Expand Up @@ -1208,8 +1216,7 @@ declare module "node:fs/promises" {
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>
| Stream,
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?:
| (ObjectEncodingOptions & {
mode?: Mode | undefined;
Expand Down Expand Up @@ -1240,7 +1247,11 @@ declare module "node:fs/promises" {
*/
function appendFile(
path: PathLike | FileHandle,
data: string | Uint8Array,
data:
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?: (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined }) | BufferEncoding | null,
): Promise<void>;
/**
Expand Down Expand Up @@ -1432,7 +1443,6 @@ declare module "node:fs/promises" {
* When copying a directory to another directory, globs are not supported and
* behavior is similar to `cp dir1/ dir2/`.
* @since v16.7.0
* @experimental
* @param src source path to copy.
* @param dest destination path to copy to.
* @return Fulfills with `undefined` upon success.
Expand Down
117 changes: 106 additions & 11 deletions types/node/node-tests/fs.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as fs from "node:fs";
import {
access,
appendFile as appendFileAsync,
constants,
copyFile,
cp as cpAsync,
Expand All @@ -10,6 +11,7 @@ import {
watch as watchAsync,
writeFile as writeFileAsync,
} from "node:fs/promises";
import { Readable } from "node:stream";
import { URL } from "node:url";
import * as util from "node:util";
import assert = require("node:assert");
Expand Down Expand Up @@ -669,17 +671,110 @@ async function testPromisify() {
}

(async () => {
await writeFileAsync("test", "test");
await writeFileAsync("test", Buffer.from("test"));
await writeFileAsync("test", ["test", "test2"]);
await writeFileAsync(
"test",
async function*() {
yield "yeet";
}(),
);
await writeFileAsync("test", process.stdin);
await writeFileAsync("test", "test", { flush: true });
const buffer = Buffer.from("");
const readable = Readable.from(["a", "b", "c"]);

await appendFileAsync("test", buffer);
await appendFileAsync("test", "x~yz".repeat(100));
await appendFileAsync("test", readable);
await appendFileAsync("test", {
*[Symbol.iterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid iterables
await appendFileAsync("test", [42, 42n, {}, Symbol("42"), true, undefined, null, NaN]);
await appendFileAsync("test", Readable.from(["ümlaut", " ", "sechzig"]), "latin1");
await appendFileAsync("test", {
*[Symbol.iterator]() {
yield Buffer.from("a");
yield Buffer.from("b");
yield Buffer.from("c");
},
});
await appendFileAsync("test", {
async *[Symbol.asyncIterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid value
appendFileAsync("test", 42);
// @ts-expect-error - Invalid value
appendFileAsync("test", 42n);
// @ts-expect-error - Invalid value
appendFileAsync("test", {});
// @ts-expect-error - Invalid value
appendFileAsync("test", Symbol("42"));
// @ts-expect-error - Invalid value
appendFileAsync("test", true);
// @ts-expect-error - Invalid value
appendFileAsync("test", undefined);
// @ts-expect-error - Invalid value
appendFileAsync("test", null);
// @ts-expect-error - Invalid value
appendFileAsync("test", NaN);

appendFileAsync("test", new Uint8Array(buffer.buffer));
appendFileAsync("test", new Uint16Array(buffer.buffer));
appendFileAsync("test", new Uint32Array(buffer.buffer));
});

(async () => {
const buffer = Buffer.from("");
const readable = Readable.from(["a", "b", "c"]);

await writeFileAsync("test", buffer);
await writeFileAsync("test", "x~yz".repeat(100));
await writeFileAsync("test", readable);
await writeFileAsync("test", readable, { signal: new AbortController().signal });
await writeFileAsync("test", {
*[Symbol.iterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid iterables
await writeFileAsync("test", [42, 42n, {}, Symbol("42"), true, undefined, null, NaN]);
await writeFileAsync("test", Readable.from(["ümlaut", " ", "sechzig"]), "latin1");
await writeFileAsync("test", {
*[Symbol.iterator]() {
yield Buffer.from("a");
yield Buffer.from("b");
yield Buffer.from("c");
},
});
await writeFileAsync("test", {
async *[Symbol.asyncIterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid value
writeFileAsync("test", 42);
// @ts-expect-error - Invalid value
writeFileAsync("test", 42n);
// @ts-expect-error - Invalid value
writeFileAsync("test", {});
// @ts-expect-error - Invalid value
writeFileAsync("test", Symbol("42"));
// @ts-expect-error - Invalid value
writeFileAsync("test", true);
// @ts-expect-error - Invalid value
writeFileAsync("test", undefined);
// @ts-expect-error - Invalid value
writeFileAsync("test", null);
// @ts-expect-error - Invalid value
writeFileAsync("test", NaN);

writeFileAsync("test", new Uint8Array(buffer.buffer));
writeFileAsync("test", new Uint16Array(buffer.buffer));
writeFileAsync("test", new Uint32Array(buffer.buffer));
});

{
Expand Down
21 changes: 16 additions & 5 deletions types/node/v22/fs/promises.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -111,7 +111,11 @@ declare module "fs/promises" {
* @return Fulfills with `undefined` upon success.
*/
appendFile(
data: string | Uint8Array,
data:
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?:
| (ObjectEncodingOptions & Abortable)
| BufferEncoding
Expand Down Expand Up @@ -393,7 +397,11 @@ declare module "fs/promises" {
* @since v10.0.0
*/
writeFile(
data: string | Uint8Array,
data:
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?:
| (ObjectEncodingOptions & Abortable)
| BufferEncoding
Expand Down Expand Up @@ -1035,8 +1043,7 @@ declare module "fs/promises" {
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>
| Stream,
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?:
| (ObjectEncodingOptions & {
mode?: Mode | undefined;
Expand Down Expand Up @@ -1067,7 +1074,11 @@ declare module "fs/promises" {
*/
function appendFile(
path: PathLike | FileHandle,
data: string | Uint8Array,
data:
| string
| NodeJS.ArrayBufferView
| Iterable<string | NodeJS.ArrayBufferView>
| AsyncIterable<string | NodeJS.ArrayBufferView>,
options?: (ObjectEncodingOptions & FlagAndOpenMode & { flush?: boolean | undefined }) | BufferEncoding | null,
): Promise<void>;
/**
Expand Down
117 changes: 106 additions & 11 deletions types/node/v22/test/fs.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
import * as fs from "node:fs";
import {
access,
appendFile as appendFileAsync,
constants,
copyFile,
cp as cpAsync,
Expand All @@ -10,6 +11,7 @@ import {
watch as watchAsync,
writeFile as writeFileAsync,
} from "node:fs/promises";
import { Readable } from "node:stream";
import { URL } from "node:url";
import * as util from "node:util";
import assert = require("node:assert");
Expand Down Expand Up @@ -653,17 +655,110 @@ async function testPromisify() {
}

(async () => {
await writeFileAsync("test", "test");
await writeFileAsync("test", Buffer.from("test"));
await writeFileAsync("test", ["test", "test2"]);
await writeFileAsync(
"test",
async function*() {
yield "yeet";
}(),
);
await writeFileAsync("test", process.stdin);
await writeFileAsync("test", "test", { flush: true });
const buffer = Buffer.from("");
const readable = Readable.from(["a", "b", "c"]);

await appendFileAsync("test", buffer);
await appendFileAsync("test", "x~yz".repeat(100));
await appendFileAsync("test", readable);
await appendFileAsync("test", {
*[Symbol.iterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid iterables
await appendFileAsync("test", [42, 42n, {}, Symbol("42"), true, undefined, null, NaN]);
await appendFileAsync("test", Readable.from(["ümlaut", " ", "sechzig"]), "latin1");
await appendFileAsync("test", {
*[Symbol.iterator]() {
yield Buffer.from("a");
yield Buffer.from("b");
yield Buffer.from("c");
},
});
await appendFileAsync("test", {
async *[Symbol.asyncIterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid value
appendFileAsync("test", 42);
// @ts-expect-error - Invalid value
appendFileAsync("test", 42n);
// @ts-expect-error - Invalid value
appendFileAsync("test", {});
// @ts-expect-error - Invalid value
appendFileAsync("test", Symbol("42"));
// @ts-expect-error - Invalid value
appendFileAsync("test", true);
// @ts-expect-error - Invalid value
appendFileAsync("test", undefined);
// @ts-expect-error - Invalid value
appendFileAsync("test", null);
// @ts-expect-error - Invalid value
appendFileAsync("test", NaN);

appendFileAsync("test", new Uint8Array(buffer.buffer));
appendFileAsync("test", new Uint16Array(buffer.buffer));
appendFileAsync("test", new Uint32Array(buffer.buffer));
});

(async () => {
const buffer = Buffer.from("");
const readable = Readable.from(["a", "b", "c"]);

await writeFileAsync("test", buffer);
await writeFileAsync("test", "x~yz".repeat(100));
await writeFileAsync("test", readable);
await writeFileAsync("test", readable, { signal: new AbortController().signal });
await writeFileAsync("test", {
*[Symbol.iterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid iterables
await writeFileAsync("test", [42, 42n, {}, Symbol("42"), true, undefined, null, NaN]);
await writeFileAsync("test", Readable.from(["ümlaut", " ", "sechzig"]), "latin1");
await writeFileAsync("test", {
*[Symbol.iterator]() {
yield Buffer.from("a");
yield Buffer.from("b");
yield Buffer.from("c");
},
});
await writeFileAsync("test", {
async *[Symbol.asyncIterator]() {
yield "a";
yield "b";
yield "c";
},
});
// @ts-expect-error - Invalid value
writeFileAsync("test", 42);
// @ts-expect-error - Invalid value
writeFileAsync("test", 42n);
// @ts-expect-error - Invalid value
writeFileAsync("test", {});
// @ts-expect-error - Invalid value
writeFileAsync("test", Symbol("42"));
// @ts-expect-error - Invalid value
writeFileAsync("test", true);
// @ts-expect-error - Invalid value
writeFileAsync("test", undefined);
// @ts-expect-error - Invalid value
writeFileAsync("test", null);
// @ts-expect-error - Invalid value
writeFileAsync("test", NaN);

writeFileAsync("test", new Uint8Array(buffer.buffer));
writeFileAsync("test", new Uint16Array(buffer.buffer));
writeFileAsync("test", new Uint32Array(buffer.buffer));
});

{
Expand Down
Loading