All files / domains/field index.ts

72.73% Statements 16/22
50% Branches 3/6
66.67% Functions 2/3
76.19% Lines 16/21

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 18 19 20 21 22 23 24 25 26 27 28 29 30 31 3219x               19x 19x 19x 19x 19x 19x 19x 19x 19x 19x 19x   100x 100x 100x     19x            
import { fieldsRegistry, FieldInnerConfig } from './registry';

export {
  FieldInnerConfig,
  fieldsRegistry,
  queryFieldsRegistry,
} from './registry';
export { compileAllFields, compileFieldConfig } from './compiler';
export { FieldError } from './error';
 
export interface FieldOptions {
  description?: string;
  type?: any;
  name?: string;
  isNullable?: boolean;
}
 
export function Field(options?: FieldOptions): PropertyDecorator {
  return (targetInstance: Object, fieldName: string) => {
    const finalConfig: FieldInnerConfig = {
      property: fieldName,
      name: fieldName,
      isNullable: true,
      ...options,
    };
 
    fieldsRegistry.set(targetInstance.constructor, fieldName, {
      ...finalConfig,
    });
  };
}