@zenfs/core
Version:
A filesystem, anywhere
76 lines (75 loc) • 2.52 kB
TypeScript
/// <reference path="../../types/readable-stream.d.ts" preserve="true" />
import type { Abortable } from 'node:events';
import type * as fs from 'node:fs';
import type { CreateReadStreamOptions, CreateWriteStreamOptions } from 'node:fs/promises';
import type { Callback } from '../utils.js';
import type { FileHandle } from './promises.js';
import { Readable, Writable } from 'readable-stream';
interface FSImplementation {
open?: (...args: unknown[]) => unknown;
close?: (...args: unknown[]) => unknown;
}
interface StreamOptions extends Abortable {
flags?: string;
encoding?: BufferEncoding;
fd?: number | FileHandle;
mode?: number;
autoClose?: boolean;
emitClose?: boolean;
start?: number;
highWaterMark?: number;
}
/**
* This type is from node:fs but not exported.
* @hidden
*/
export interface ReadStreamOptions extends StreamOptions {
fs?: FSImplementation & {
read: (...args: unknown[]) => unknown;
};
end?: number;
}
/**
* This type is from node:fs but not exported.
* @hidden
*/
export interface WriteStreamOptions extends StreamOptions {
flush?: boolean;
fs?: FSImplementation & {
write: (...args: unknown[]) => unknown;
writev?: (...args: unknown[]) => unknown;
};
}
/**
* A ReadStream implementation that wraps an underlying global ReadableStream.
*/
export declare class ReadStream extends Readable implements fs.ReadStream {
pending: boolean;
private _path;
private _bytesRead;
private reader?;
private ready;
constructor(opts: CreateReadStreamOptions | undefined, handleOrPromise: FileHandle | Promise<FileHandle>);
_read(): Promise<void>;
close(callback?: Callback<[void]>): void;
get path(): string;
get bytesRead(): number;
wrap(oldStream: NodeJS.ReadableStream): this;
}
/**
* A WriteStream implementation that wraps an underlying global WritableStream.
*/
export declare class WriteStream extends Writable implements fs.WriteStream {
pending: boolean;
private _path;
private _bytesWritten;
private writer?;
private ready;
constructor(opts: CreateWriteStreamOptions | undefined, handleOrPromise: FileHandle | Promise<FileHandle>);
_write(chunk: any, encoding: BufferEncoding | 'buffer', callback: (error?: Error | null) => void): Promise<void>;
_final(callback: (error?: Error | null) => void): Promise<void>;
close(callback?: Callback<[void]>): void;
get path(): string;
get bytesWritten(): number;
}
export {};