1.3.1 • Published 2 years ago

@entwico/node-config v1.3.1

Weekly downloads
-
License
MIT
Repository
-
Last release
2 years ago

@entwico/node-config

An opinionated implementation of node server configuration.

Installation

npm i @entwico/node-config

Usage

Config definition

First, describe a config container:

class SubSub {
  @Property() prop: string;
}

class Sub {
  @Property() sub: SubSub;
  @Property() prop: string;
}

class Config {
  @Property() sub: Sub;
  @Property() prop1: string;
  @Property() prop2: number;
  @Property() prop3: boolean;
  @List(String) strings: string[];
  @List(SubSub) subsubs: SubSub[];
}

Config files

You can pass multiple config files:

const conf = loadConfig(Config, { env: { prefix: 'APP_' }, files: ['config.yaml'] });

The files will override each other's settings (the later the file is in the list, the more priority it will have).

Following file formats supported:

  • .yml / .yaml
  • .js
  • .json

Example file:

sub:
  sub:
    prop: test
  prop: test
prop1: test
prop2: 123
prop3: false
strings:
  - test1
  - test2
subsubs:
  - prop: test

Environment variables

const conf = loadConfig(Config, { env: { prefix: 'APP_' }, files: paths });

The environment variables take precedence over the files' settings.

Examples:

export APP_SUB_PROP=test # sets conf.sub.prop = 'test'
export APP_STRINGS__0=test # sets conf.strings[0] = 'test'
export APP_SUBSUBS__1__PROP=test # sets conf.subsubs[0].prop = 'test'

License

MIT

1.3.1

2 years ago

1.3.0

2 years ago

1.2.0

2 years ago

1.1.0

2 years ago

1.0.3

2 years ago

1.0.2

2 years ago

1.0.1

2 years ago