Nickelback Plays Music

    ts-appconfig
    TypeScript icon, indicating that this package has built-in type declarations

    1.2.0 • Public • Published

    ts-appconfig

    ts-appconfig is a zero-dependency node module to get strongly-typed and IDE-friendly environment variables.

    Environment variables are pulled from 3 places, in this order. This means that each step will be overwritten by the following step, if that step also contains the variable:

    1. Defaults from environment schema (your extended AppConfig class)
    2. .env file
    3. process.env

    Install

    npm i ts-appconfig

    Setup

    Create a file where you will declare your environment variable schema:

    src/environment.ts

    import { AppConfig, configure } from 'ts-appconfig';
    
    export class Environment extends AppConfig {
    	readonly APP_TITLE: string = '';
    }
    
    export const env: Environment = configure(Environment);

    Create a .env file (and perhaps a .env.example file, too). Make sure you add .env to your .gitignore file, if it's not there already!

    .env

    APP_TITLE="Cool App"
    

    Now import your env from the schema file you created and you're ready to use the environment variables!

    src/index.ts

    import { env } from './environment.ts';
    
    console.log(env.APP_TITLE);

    Output:

    Cool App
    

    Options

    Pass ConfigurationOptions as a second argument to configure to customize how variables are loaded and parsed. All options are optional, you only have to specify the options you would like to change.

    ...
    export const env: Environment = configure(Environment, {
    	// Give the .env file your own name or file path
    	//	Default: .env
    	relativePath: 'my-own-filename.env',
    
    	// Allow variables that are not in schema but are defined in .env
    	//	Default: false
    	allowUndeclared: false,
    
    	// If true, fromProcessEnv will load .env variables from process.env
    	//  Default: true
    	fromProcessEnv: true,
    
    	// Set process.env variables from the .env file
    	//	Default: true
    	overwriteProcessEnv: true,
    
    	// Allow duplicate entries in the .env file for the same variable
    	//	Default: false
    	allowDuplicates: false,
    
    	// Skip unknown/unparsable lines in the .env file, or throw an exception
    	//	Default: false (throws exception)
    	skipUnknownLines: false,
    });

    Install

    npm i ts-appconfig

    DownloadsWeekly Downloads

    8

    Version

    1.2.0

    License

    MIT

    Unpacked Size

    39.6 kB

    Total Files

    81

    Last publish

    Collaborators

    • stateless-studio