1.0.0 • Published 12 months ago

@codex-team/config-loader v1.0.0

Weekly downloads
-
License
Apache-2.0
Repository
github
Last release
12 months ago

config-loader

Config loader for Cloud Native applications

Features

  • Configuration via YAML files
  • Combining and inheriting a configuration from multiple files
  • Override configuration values with environment variables
  • Provide default values for configuration

What's not included

  • Reading command line arguments with config files locations
  • Configuration validation

Installation

npm install @codex-team/config-loader

yarn add @codex-team/config-loader

Usage

In this example we will load configuration from app-config.yaml and app-config.local.yaml files. Zod is used for configuration validation, but you can use any other library.

import {loadConfig} from '@codex-team/config-loader';
import {z} from 'zod';

const AppConfig = z.object({
    host: z.string(),
    port: z.number(),
});

export type AppConfig = z.infer<typeof AppConfig>;

const defaultConfig: AppConfig = {
    host: '0.0.0.0',
    port: 3000,
};

const paths = [
    `./app-config.yaml`,
    `./app-config.local.yaml`,
];

const loadedConfig = loadConfig(...[defaultConfig, ...paths]);

const appConfig = AppConfig.parse(loadedConfig);

export default appConfig;