feat(ext/node): implement FileHandle.readLines() (#31107)
Some checks are pending
ci / test release macos-x86_64 (push) Blocked by required conditions
ci / test debug windows-x86_64 (push) Blocked by required conditions
ci / test release windows-x86_64 (push) Blocked by required conditions
ci / pre-build (push) Waiting to run
ci / test debug linux-aarch64 (push) Blocked by required conditions
ci / test release linux-aarch64 (push) Blocked by required conditions
ci / test debug macos-aarch64 (push) Blocked by required conditions
ci / test release macos-aarch64 (push) Blocked by required conditions
ci / bench release linux-x86_64 (push) Blocked by required conditions
ci / lint debug linux-x86_64 (push) Blocked by required conditions
ci / lint debug macos-x86_64 (push) Blocked by required conditions
ci / lint debug windows-x86_64 (push) Blocked by required conditions
ci / test debug linux-x86_64 (push) Blocked by required conditions
ci / test release linux-x86_64 (push) Blocked by required conditions
ci / test debug macos-x86_64 (push) Blocked by required conditions
ci / build libs (push) Blocked by required conditions
ci / publish canary (push) Blocked by required conditions

Closes https://github.com/denoland/deno/issues/31104
This commit is contained in:
Felipe Cardozo 2025-10-28 06:10:45 -03:00 committed by GitHub
parent 58f21ae597
commit 86ce21e7a9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 10 additions and 0 deletions

View file

@ -4,6 +4,8 @@ import { EventEmitter } from "node:events";
import { Buffer } from "node:buffer";
import { Mode, promises, read, ReadStream, write, WriteStream } from "node:fs";
import type { ReadAsyncOptions } from "node:fs";
import { createInterface } from "node:readline";
import type { Interface as ReadlineInterface } from "node:readline";
import { core, primordials } from "ext:core/mod.js";
export type { BigIntStats, Stats } from "ext:deno_node/_fs/_fs_stat.ts";
import {
@ -219,6 +221,13 @@ export class FileHandle extends EventEmitter {
return new WriteStream(undefined, { ...options, fd: this.fd });
}
readLines(options?: CreateReadStreamOptions): ReadlineInterface {
return createInterface({
input: this.createReadStream({ ...options, autoClose: false }),
crlfDelay: Infinity,
});
}
[SymbolAsyncDispose]() {
return this.close();
}

View file

@ -455,6 +455,7 @@
"parallel/test-fs-open-numeric-flags.js" = {}
"parallel/test-fs-open.js" = {}
"parallel/test-fs-promises-exists.js" = {}
"parallel/test-fs-promises-file-handle-readLines.mjs" = {}
"parallel/test-fs-promises-readfile-empty.js" = {}
"parallel/test-fs-promisified.js" = {}
"parallel/test-fs-read-empty-buffer.js" = {}