import logger from 'log' import * as yup from 'yup' import * as parsing from './parsing' import type {Ok} from './helpers' export * as yup from 'yup' const log = logger('config') export async function parse>(schema: yup.ObjectSchema): Promise> { log.info('Parse from env') log.trace('Start parsing') const config = await parsing.object(schema) if (!config.ok) return config log.trace('double-check') const res = await schema.isValid(config.data, {strict: true}) if (!res) { log.error('Double-check failed') log.debug('Config', config.data) return {ok: false} } return config }