From dba1f5b80a88c764bdcf0cc0c296342dbc849907 Mon Sep 17 00:00:00 2001 From: Pascal Perrenoud Date: Fri, 12 Sep 2025 10:42:23 +0200 Subject: [PATCH] Move parsing function to file --- src/index.ts | 27 +-------------------------- src/parsing.ts | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+), 26 deletions(-) diff --git a/src/index.ts b/src/index.ts index f4257b7..91c9a20 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,27 +1,2 @@ -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 -} +export {parse} from './parsing' diff --git a/src/parsing.ts b/src/parsing.ts index ca80920..d4309d5 100644 --- a/src/parsing.ts +++ b/src/parsing.ts @@ -6,6 +6,24 @@ import type {Ok} from './helpers' const log = logger('config:parsing') +export async function parse>(schema: yup.ObjectSchema): Promise> { + log.info('Parse from env') + + log.trace('Start parsing') + const config = await 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 +} + export async function object>( schema: yup.ObjectSchema, base_name: string = ''