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
14 lines
504 B
3 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>;
|
||
|
}
|