All files / domains/union index.ts

62.5% Statements 10/16
50% Branches 3/6
75% Functions 3/4
66.67% Lines 10/15
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 199x               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 });
    });
  };
}