UNPKG

@khoohaoyit/image-size

Version:

A stream based image size extractor in Node

46 lines 2.08 kB
/// <reference types="node" /> import { formats } from "../formats"; import { StreamReader } from "./streamReader"; import { StreamParser } from "./streamParser"; import { TransformOptions } from "stream"; interface Event<TName extends string, TValues extends unknown[]> { addListener(event: TName, listener: (...args: TValues) => void): this; emit(event: TName, ...args: TValues): boolean; on(event: TName, listener: (...args: TValues) => void): this; once(event: TName, listener: (...args: TValues) => void): this; prependListener(event: TName, listener: (...args: TValues) => void): this; prependOnceListener(event: TName, listener: (...args: TValues) => void): this; removeListener(event: TName, listener: (...args: TValues) => void): this; } export interface ExtractSize { (stream: StreamParser): AsyncGenerator<{ width: number; height: number; }, void, void>; } type TExtracted<TFormat extends typeof formats = typeof formats> = { [K in keyof TFormat]: [data: ReturnType<TFormat[K][1]> extends AsyncGenerator<infer TResult> ? TResult : any, format: TFormat[K][0]]; }[any]; export type ExtractedSize = TExtracted; type SizeExtractorEvent = Event<'parseError', [error: unknown, format: ExtractedSize[1]]> & Event<'parseDone', [format: ExtractedSize[1]]> & Event<'parseAllDone', []> & Event<'size', ExtractedSize>; export interface ISize { width: number | undefined; height: number | undefined; orientation?: number; type?: string; } export interface ISizeCalculationResult extends ISize { images?: ISize[]; } declare const SizeExtractor_base: (abstract new (...args: any) => SizeExtractorEvent) & typeof StreamReader; export declare class SizeExtractor extends SizeExtractor_base { imageSize?: ISizeCalculationResult; sizes: ExtractedSize[]; constructor(options: { passthrough: boolean; whitelistFormats?: ExtractedSize[1][]; blacklistFormats?: ExtractedSize[1][]; }, transformOptions?: TransformOptions); } export {}; //# sourceMappingURL=sizeExtractor.d.ts.map