@e-mc/types
Version:
Type definitions for E-mc.
29 lines (21 loc) • 1.52 kB
TypeScript
import type { CompressFormat as ICompressFormat, CompressLevel as ICompressLevel, MimeTypeAction, WorkerAction } from './squared';
import type { LogBaseOptions, LogTime } from './logger';
import type { ThrowsAction } from './module';
import type { BrotliOptions, ZlibOptions } from 'node:zlib';
type ResultCallback<T = Buffer | Uint8Array | null> = (err: unknown, data?: T, ext?: string) => void;
type ResultData = Buffer | Uint8Array | string | null;
export interface CompressFormat extends ICompressFormat, LogBaseOptions, ReadableOptions, MimeTypeAction, WorkerAction {
filename?: string;
startTime?: LogTime;
etag?: string;
outExt?: string;
outFile?: string;
}
export interface CompressLevel extends ICompressLevel, ReadableOptions, ZlibOptions {}
export interface BrotliCompressLevel extends CompressLevel, BrotliOptions, MimeTypeAction {}
export interface ReadableOptions extends ThrowsAction {}
export type BufferLike = Buffer | Uint8Array | ArrayBuffer | SharedArrayBuffer | readonly number[];
export type TryFileCompressor = (data: Bufferable, output: string, config: CompressFormat, callback?: ResultCallback<ResultData>) => Promise<ResultData | void>;
export type TryFileCompressorAsync = (data: Bufferable, output: string, config: CompressFormat) => Promise<ResultData>;
export type BufferResult = Buffer | Uint8Array | null;
export type PluginCompressor = FunctionArgs<[CompressFormat["options"], CompressFormat["metadata"]?], FunctionArgs<[Buffer], Promise<Buffer | Uint8Array>>>;