Configuration parsing

Load, parse and validate your configuration

Get Started →

# Introduction

configuration-parsing helps you loading, parsing, and validating your configuration. This package aims to create a workflow to manage all your application's configuration no matter what format or source you are using.

# Simple usage

import { fromLoadable, loaders, parsers, FileLoaderOptions } from '@configuration-parsing/core'
import { joiConfigurationValidator } from '@configuration-parsing/validator-joi'
import Joi from 'joi'

type MyAppConfig = { /* fields */ }

const appConfigSchema = Joi.object(/* your schema */)

const configurationFactory = 
    // Load from file system
    fromLoadable<MyAppConfig, FileLoaderOptions>(loaders.file())
        // Parse using JSON.parse
        .parsingWith(parsers.json())
        // Validate with the passed joi schema
        .validatingWith(joiConfigurationValidator(appConfigSchema))

const myConfiguration = await configurationFactory.create({ location: 'path/to/my/config.json' })