A typescript lib leveraging decorator to create objects contain env vars;
@EnvObject
class Env {
@EnvProp('FOO')
foo: string;
@EnvProp('BAR')
bar: string;
}
const env = getEnvObject(Env);
env.foo === process.env.FOO; // true
- Deep path.
@EnvObject
class Env {
@EnvProp('FOO.BAR')
foo: number;
}
- Type checking
@EnvObject
class Env {
@EnvProp('FOO')
foo: number;
}
process.env.foo = 'abc' // NaN
getEnvObject(Env); // throw error
- Base path
@EnvObject('FOO')
class Env {
@EnvProp('BAR')
bar: string;
}
env.bar === process.env.FOO.BAR; // true
- Nested EnvObject
@EnvObject
class FOO {
@EnvProp('FOO')
foo: string;
}
@EnvObject
class BAR {
@EnvProp('BAR')
bar: string;
foo: FOO;
}
env.foo.foo === process.env.FOO; // true