export function normalizeOptions( enableDefault: boolean, defaultOptions: T, key: string, ) { return function (options: U): T | false { if (options === false) { return false; } if (typeof options === 'undefined') { if (enableDefault) { return defaultOptions; } else { return false; } } if (options === true) { return defaultOptions; } if (options && typeof options === 'object') { return { ...(defaultOptions as T), ...options, }; } throw new Error( `Unexpected type for \`${key}\`, expect boolean/undefined/object, got: ${typeof options}`, ); }; }