univ-conv
Version:
The universal binary and text converter
58 lines • 3.44 kB
TypeScript
/// <reference types="node" />
/// <reference types="node" />
import type { Readable, Writable } from "stream";
export declare type Charset = "utf8" | "utf16le" | "utf16be" | "jis" | "eucjp" | "sjis";
export declare type URLType = "data" | "blob" | string;
export declare type StringType = "text" | "url" | "base64" | "binary" | "hex";
export declare type BinaryType = "arraybuffer" | "uint8array" | "blob";
export declare type BlockType = StringType | BinaryType;
export declare type StreamType = "readable" | "readablestream";
export declare type DataType = BlockType | StreamType | "unknown";
export declare type BlockData = string | ArrayBuffer | Uint8Array | Buffer | Blob;
export declare type StreamData = Readable | ReadableStream<Uint8Array>;
export declare type Data = BlockData | StreamData;
export interface Options {
bufferSize: number;
bufferToTextCharset: Charset;
fetchRequestInit?: RequestInit;
inputStringType: StringType;
outputURL?: URLType;
textToBufferCharset: Charset;
}
export interface ConvertOptions extends Options {
length?: number;
start?: number;
}
export interface Converter<T extends Data> {
type: DataType;
empty(): T;
from(input: Data, options?: Partial<ConvertOptions>): Promise<T>;
is(input: unknown, options?: Partial<ConvertOptions>): input is T;
merge(chunks: T[], options?: Partial<Options>): Promise<T>;
size(input: T, options?: Partial<Options>): Promise<number>;
toArrayBuffer(input: T, options: ConvertOptions): Promise<ArrayBuffer>;
toBase64(input: T, options: ConvertOptions): Promise<string>;
toText(input: T, options: ConvertOptions): Promise<string>;
toUint8Array(input: T, options: ConvertOptions): Promise<Uint8Array>;
}
export declare type ReturnData<T extends DataType> = T extends "arraybuffer" ? ArrayBuffer : T extends "uint8array" ? Uint8Array : T extends "buffer" ? Buffer : T extends "blob" ? Blob : T extends "readable" ? Readable : T extends "readablestream" ? ReadableStream<Uint8Array> : T extends "text" ? string : T extends "base64" ? string : T extends "binary" ? string : T extends "hex" ? string : T extends "url" ? string : Data;
export interface UnivConv {
convert<T extends DataType>(returnType: T, input: Data, options?: Partial<ConvertOptions>): Promise<ReturnData<T>>;
is<T extends DataType>(type: T, input: unknown, options?: Partial<ConvertOptions>): input is ReturnData<T>;
merge<T extends DataType>(returnType: T, chunks: Data[], options?: Partial<Options>): Promise<ReturnData<T>>;
pipe(input: Data, output: Writable | WritableStream<Uint8Array>, options?: Partial<ConvertOptions>): Promise<void>;
size(input: Data, options?: Partial<Options>): Promise<number>;
slice<T extends Data>(input: T, options: Partial<ConvertOptions>): Promise<T>;
}
export declare const DEFAULT_BUFFER_SIZE: number;
export declare const EMPTY_ARRAY_BUFFER: ArrayBuffer;
export declare const EMPTY_UINT8_ARRAY: Uint8Array;
export declare function getStartEnd(options: ConvertOptions, size?: number): {
start: number;
end: number | undefined;
};
export declare function deleteStartLength(options: ConvertOptions): ConvertOptions;
export declare function hasNoStartLength(options: ConvertOptions): boolean;
export declare function isEmpty(input: Data, options?: Partial<ConvertOptions>): boolean;
export declare function getType(input: unknown): string;
//# sourceMappingURL=core.d.ts.map