UNPKG

alwz

Version:

Extendable library for typecasting

63 lines (62 loc) 2.5 kB
/// <reference types="node" /> import Converter from './Converter.js'; import Registry from './Registry.js'; /** * @ignore * @example * const odd = new Converter((input) => typeof input === 'number' && Boolean(input % 2), () => 1); * const even = new Converter((input) => typeof input === 'number' && !(input % 2), () => 2); * const Aggregator = new Aggregator(); * aggregator.register('odd', odd); * aggregator.register('even', even); * aggregator.to('odd')(3); // 3 * aggregator.to('odd')(4); // 1 * aggregator.to('even')(4); // 4 * aggregator.to('even')(5); // 2 */ export declare class Aggregator extends Registry<string, Converter<any>> { static DuplicateConverter: { new (message?: string | undefined, value?: unknown, options?: unknown): { value?: unknown; throw(): void; name: string; message: string; stack?: string | undefined; }; captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void; prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; stackTraceLimit: number; }; static InvalidConverter: { new (message?: string | undefined, value?: unknown, options?: unknown): { value?: unknown; throw(): void; name: string; message: string; stack?: string | undefined; }; captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void; prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; stackTraceLimit: number; }; static AbsentConverter: { new (message?: string | undefined, value?: unknown, options?: unknown): { value?: unknown; throw(): void; name: string; message: string; stack?: string | undefined; }; captureStackTrace(targetObject: object, constructorOpt?: Function | undefined): void; prepareStackTrace?: ((err: Error, stackTraces: NodeJS.CallSite[]) => any) | undefined; stackTraceLimit: number; }; constructor(); get converters(): [string, Converter<any>][]; register(name: string, converter: Converter<any>): this; unregister(name: string): this; converter: (name: string) => Converter<any>; to: (name: any) => (input?: unknown) => any; } export default Aggregator; //# sourceMappingURL=Aggregator.d.ts.map