@araxsiyual/config-importer

config importer

Usage no npm install needed!

<script type="module">
  import araxsiyualConfigImporter from 'https://cdn.skypack.dev/@araxsiyual/config-importer';
</script>

README

Config Importer

​Developers can manage environment variables in various stages, such as production, test, development, etc. Developers can set default status by option or NODE_ENV. if you not set default status, it will be development Environment variables are created in the common.js and yourEnvironmentStatus.js However, if an environment variable is declared in an .env file or a system environment variable, that value takes precedence.

How to use

const configImporter = require('@araxsiyual/config-importer');

const config = configImporter.import(__dirname, /*option*/);

Option

{
    "env":  process.env.NODE_ENV || "development",
    "valueName": "valueName",
    "default": "common"
}
  • env: Environment status, it will read env.js file, and make config
  • valueName: If object have valueName, module use valueName's value for read System value or .env, If the object does not have a valueName, module use object name for read System value or .env
  • default: default environment file name

Example

Import the right environment variable

common.js

module.exports = {
    parent: {
        childA: 0,
        childB: 0
    }
}

development.js

module.exports = {
    parent: {
        childA: 1
    }
}

test.js

module.exports = {
    parent: {
        childA: 2
    }
}

index.js

const configImporter = require('@araxsiyual/config-importer');

const config = configImporter.import(__dirname);

module.exports = config;

If development status is development

  • config is

    {
        parent: {
            childA: 1,
            childB: 0
        }
    }
    

If development status is test

  • config is

    {
        parent: {
            childA: 2,
            childB: 0
        }
    }
    

.env file variable name

common.js

module.exports = {
    parent: {
        childA: 0
    }
}

.env

PARENT_CHILD_A = 1
  • parent.childA will be 1

if development status is development

.env

PARENT_CHILD_A = 1
PARENT_CHILD_A_DEVELOPMENT = 2
  • parent.childA will be 2

Set value name

common.js

module.exports = {
    parent: {
        valueName: 'p',
        childA: 0
    }
}

.env

P_CHILD_A = 1
  • parent.childA will be 1