Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | 19x 2x | import { Serdes } from "../types"; export interface ClazzSerdes<T> extends Serdes<T> { readonly clazz: { new (): T }; } export type ClazzFactory = <T, C extends T>( clazz: { new (): C }, sd: Serdes<T> ) => ClazzSerdes<C>; export const clazz: ClazzFactory = (clazz, sd) => ({ clazz, ser: sd.ser, des: (ctx) => Object.assign(new clazz(), sd.des(ctx)) }); |