You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

14 lines
504 B

2 weeks ago
import { JSONValue } from './types.js';
export interface CustomTransfomer<I, O extends JSONValue> {
name: string;
isApplicable: (v: any) => v is I;
serialize: (v: I) => O;
deserialize: (v: O) => I;
}
export declare class CustomTransformerRegistry {
private transfomers;
register<I, O extends JSONValue>(transformer: CustomTransfomer<I, O>): void;
findApplicable<T>(v: T): CustomTransfomer<T, JSONValue> | undefined;
findByName(name: string): CustomTransfomer<any, any>;
}