custom-transformer-registry.d.ts 504 B

12345678910111213
  1. import { JSONValue } from './types.js';
  2. export interface CustomTransfomer<I, O extends JSONValue> {
  3. name: string;
  4. isApplicable: (v: any) => v is I;
  5. serialize: (v: I) => O;
  6. deserialize: (v: O) => I;
  7. }
  8. export declare class CustomTransformerRegistry {
  9. private transfomers;
  10. register<I, O extends JSONValue>(transformer: CustomTransfomer<I, O>): void;
  11. findApplicable<T>(v: T): CustomTransfomer<T, JSONValue> | undefined;
  12. findByName(name: string): CustomTransfomer<any, any>;
  13. }