@codecat/config

Configuration handling for projects.

Usage no npm install needed!

<script type="module">
  import codecatConfig from 'https://cdn.skypack.dev/@codecat/config';
</script>

README

@codecat/config

Configuration handling for projects.

Features

  • Ability to load nested config files
  • Ability to put ENV variables to in JSON and YAML
  • Validation of loaded config file with use of @hapi/joi
  • Resolving paths relative to config files

Usage

configFile.yml

port: 9000

app.js

const ConfigLoader = require('@codecat/config');
const Joi = require('@hapi/joi');

const schema = Joi.object().keys({
  port: Joi.number().port().default(8000)
});

const config = ConfigLoader(schema).load('./configFile.yml');

console.log(config.port); // 9000

Currently YAML, JSON and JS files are supported.

TODO

[ ] ability to add more file loaders for different mime-types
[ ] ability to define custom directives
[ ] write some more info in README