1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | 9x 9x 9x 9x 9x 9x 1x 1x 2x | import { Thunk } from 'services/types'; import { unionRegistry } from './registry'; export { unionRegistry } from './registry'; import { compileUnionType } from './compiler'; interface UnionConfig { name?: string; types: Thunk<any[]>; } export function Union(config: UnionConfig): ClassDecorator { return target => { unionRegistry.set(target, () => { return compileUnionType(target, { name: target.name, ...config }); }); }; } |