@e-mc/types
Version:
Type definitions for E-mc.
27 lines (20 loc) • 1.44 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';
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 {}
export interface BrotliCompressLevel extends CompressLevel, MimeTypeAction {}
export interface ReadableOptions extends ThrowsAction {}
export type BufferLike = Buffer | Uint8Array | ArrayBuffer | SharedArrayBuffer | readonly number[];
export type TryFileCompressor = (data: string | Buffer, output: string, config: CompressFormat, callback?: ResultCallback<ResultData>) => Promise<ResultData | void>;
export type TryFileCompressorAsync = (data: string | Buffer, 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>>>;