import 'reflect-metadata';

const DEFAULT_REQUIRED_VALUE = true;

export type PropOptions<T = any> = {
  required?: boolean;
  default?: T;
};

export const determineRequiredValue = (options: PropOptions): boolean => {
  let required = options.required === undefined ? DEFAULT_REQUIRED_VALUE : options.required;
  if (options.default !== undefined) {
    required = false;
  }
  return required;
};
