ts-cast
Version:
Runtime typechecking
8 lines (7 loc) • 403 B
JavaScript
import { throwTypeError } from './throw-type-error';
const defValue = (casterFn, defaultValue) => {
const defaultCaster = (value, context, reportError = throwTypeError) => (value !== undefined ? casterFn(value, context, reportError) : defaultValue);
Object.defineProperty(defaultCaster, 'name', { value: casterFn.name.replace(/\?$/, '') });
return defaultCaster;
};
export default defValue;