import MissingConfigurationValueError from '../errors/MissingConfigurationValueError' import type { NonUndefined, ValueOf } from '../types' const requireConfig = <T>(isomorphicConfig: T, key: keyof T) => { const valueUnderKey = isomorphicConfig[key] if (typeof valueUnderKey === 'undefined') { throw new MissingConfigurationValueError( `Value for configuration key ${key} was undefined.` ) } return valueUnderKey as NonUndefined<ValueOf<T>> } export default requireConfig