Giter Site home page Giter Site logo

oneconf's Introduction

oneconf

Easily define and load environment variables via a simple type declaration.

The package uses dotenv to load environment variables from the .env file as well.

Installation

npm i --save oneconf

Usage

The package provides a single function which loads in environment variables based on the Config type declared in the file located at path.

function loadConfig<T>(path: string): T;

// config.ts
export type Config = {
    production: boolean;
    redis: {
        hostName: string;
        port: number;
    },
    appBaseUrl: string;
}
// .env
PRODUCTION=false
REDIS.HOST_NAME=redis://localhost
REDIS.PORT=6379
APP_BASE_URL=http://localhost:3000
// index.ts
import {loadConfig} from "oneconf";
import {Config} from "./path/to/config"

const config = loadConfig<Config>('./path/to/config.ts')

Which yields the following config object:

const config: Config = {
    production: false,
    redis: {
        hostName: 'redis://localhost',
        port: 6379,
    },
    appBaseUrl: 'http://localhost:3000'
}

Available types for config keys are string, boolean, and number currently.

CLI

There is also a simple tool provided which will spit out a .env file containing the necessary keys:

npx oneconf-init ./path/to/config.ts

oneconf's People

Contributors

jettdc avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.