classenv
A perfect typescript environment variables library.
- Strongly-typed declarative class containing your environment data
- Type-casting using TypeScript metadata reflection
- Auto UPPER_SNAKE_CASE conversion
- 0 dependencies
- Throws runtime error if variable doesn't exist
- Default values support
- Makes decorated properties read-only in runtime
Built-in support for type-casting.
.env
IS_SOMETHING_ENABLED=1
import { Env } from 'classenv';
class Environment {
@Env('IS_SOMETHING_ENABLED')
static isEnabledStr: string;
@Env('IS_SOMETHING_ENABLED')
static isEnabledNmbr: number;
@Env('IS_SOMETHING_ENABLED')
static isEnabledBln: boolean;
@Env()
static isSomethingEnabled: number;
@Env()
static withDefault: string = 'yeah its me'
}
console.log(typeof Environment.isEnabledStr, Environment.isEnabledStr)
console.log(typeof Environment.isEnabledNmbr, Environment.isEnabledNmbr)
console.log(typeof Environment.isEnabledBln, Environment.isEnabledBln)
console.log(typeof Environment.isSomethingEnabled, Environment.isSomethingEnabled)
Environment.isEnabledBln = false;
@Env
property data type should be scalar (string, number or boolean).