UNPKG

@openapi-typescript-infra/service

Version:

An opinionated framework for building configuration driven services - web, api, or ob. Uses OpenAPI, pino logging, express, confit, Typescript and vitest.

24 lines (20 loc) 662 B
import { ConfigurationSchema } from './schema.js'; export interface ConfigValidationError { path: string; message: string; } export type ConfigurationValidator<Config extends ConfigurationSchema> = (config: Config) => { success: boolean; errors: ConfigValidationError[]; }; export function validateConfiguration<Config extends ConfigurationSchema>( config: Config, validator: ConfigurationValidator<Config>, ) { const result = validator(config); if (!result.success) { const errorMessages = result.errors.map((e) => ` - ${e.path}: ${e.message}`).join('\n'); throw new Error(`Configuration validation failed: ${errorMessages}`); } }