1.0.16 • Published 4 years ago

archappenv v1.0.16

Weekly downloads
127
License
MIT
Repository
github
Last release
4 years ago

archappenv · CircleCI GitHub license npm version Build Status Coverage Status

Provides Application Environment Variables from *.appenv.js / .env and Utilities

Installation

npm i archappenv

Overview

Structure

The archappenv provides three modules: AppEnv, Services, and Utilities.

To access all modules:

// load it as an entry point of the whole module:
const { AppEnv } = require('archappenv');
const Services = AppEnv.Services;
const Utilities = AppEnv.Util;

To access each module:

// load it as separated module:
const AppEnv = require('archappenv/appenv');
const Services = require('archappenv/services');
const Utilities = require('archappenv/util');

Modules

AppEnv

The AppEnv module provides services to Application Environment Variables: load() and bind().

AppEnv.load(options)

It loads Application Environment Variables using Options or Configuration.

Options:

Options is an object that allows to customize how AppEnv is loaded.

- dir: defines the directory contained *.appenv.js files and appenv.config.json file. It can be absolute or relative path. If omitted, it'll use application/appenv/ as default directory.

- type: defined the type.appenv.js file in dir directory. If omitted, it'll resolve a value from appenv.config.json file in dir directory.

appenv.config.json

It defines type depended to the name of server where it's located. If the name cannot be resolved, it'll use default.appenv.js.

module.exports = {
  prod: [
    "hostname.01",
    "hostname.02",
    "hostname.03",
  ],
  dev: [
    "hostname.04",
    "hostname.05",
    "hostname.06",
  ],
};

If the server name, either hostname.01, hostname.02, or hostname.03, , it'll resolve prod as type, and expect prod.appenv.js file to be resolved.

However, if the server name, either hostname.04, hostname.05, or hostname.06, it'll resolve dev as type, and expect dev.appenv.js file to be resolved.

Example:

Files:
In [application]/configs:
  - appenv.config.json (as above)
  - prod.appenv.js
  - dev.appenv.js
  - custom.appenv.js

Note: If these four files were located in application/appenv directory, the options.dir could be omitted. However, they are, in this case, located in application/configs directory, the options.dir need to be defined.

Usage

// loads [application]/configs/prod.appenv.js
const prod = AppEnv.load({ type:'prod', dir: './configs' });

// loads [application]/configs/dev.appenv.js
const dev = AppEnv.load({ type:'dev', dir: './configs' });

// loads [application]/configs/custom.appenv.js
const custom = AppEnv.load({ type:'custom', dir: './configs' });

// loads [application]/configs/prod.appenv.js in "hostname.01" server
const prod = AppEnv.load({ dir: './configs' });

// loads [application]/appenv/prod.appenv.js in "hostname.01" server
const prod = AppEnv.load();

// loads [application]/appenv/dev.appenv.js in "hostname.04" server
const dev = AppEnv.load();

// loads [application]/appenv/default.appenv.js in "not.in.list.hostname" server
const default = AppEnv.load();

AppEnv.bind()

It binds the resolved Application Environment Variables to process.env.

// in resolved appenv.js file:
module.exports = {
  APP_TITLE: "Application Title",
  APP_USERS: [
    "user.01",
    "user.02",
    "user.03",
  ],
};

Usage

AppEnv.bind();

const title = process.env.APP_TITLE;
// title: "Application Title"

const users = process.env.APP_USERS;
// users: ["user.01", "user.02", "user.03"]

back to top

Services

Utilities

1.0.16

4 years ago

1.0.15

4 years ago

1.0.14

4 years ago

1.0.14-alpha.60

5 years ago

1.0.14-alpha.58

5 years ago

1.0.11

5 years ago

1.0.13

5 years ago

1.0.12

5 years ago

1.0.10-alpha.2

5 years ago

1.0.10

5 years ago

1.0.10-alpha.1

5 years ago

1.0.10-alpha.0

5 years ago

1.0.9

5 years ago

1.0.8

5 years ago

1.0.7

5 years ago

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago

1.0.0-rc.19

6 years ago

1.0.0-rc.18

6 years ago

1.0.0-rc.17

6 years ago

1.0.0-rc.16

6 years ago

1.0.0-rc.15

6 years ago

1.0.0-rc.14

6 years ago

1.0.0-rc.13

6 years ago

1.0.0-rc.12

6 years ago

1.0.0-rc.11

7 years ago

1.0.0-rc.10

7 years ago

1.0.0-rc.9

7 years ago

1.0.0-rc.8

7 years ago

1.0.0-rc.7

7 years ago

1.0.0-rc.6

7 years ago

1.0.0-rc.5

7 years ago

1.0.0-rc.4

7 years ago

1.0.0-rc.3

7 years ago

1.0.0-rc.2

7 years ago

1.0.0-rc.1

7 years ago

1.0.0-beta.2

7 years ago

1.0.0-beta.1

7 years ago

2.0.0-alpha.56

7 years ago

2.0.0-alpha.55

7 years ago

2.0.0-alpha.54

7 years ago

2.0.0-alpha.53

7 years ago

2.0.0-alpha.52

7 years ago

2.0.0-alpha.51

8 years ago

2.0.0-alpha.50

8 years ago

2.0.0-alpha.49

8 years ago

2.0.0-alpha.48

8 years ago

2.0.0-alpha.47

8 years ago

2.0.0-alpha.46

8 years ago

2.0.0-alpha.45

8 years ago

2.0.0-alpha.44

8 years ago

2.0.0-alpha.43

8 years ago

2.0.0-alpha.42

8 years ago

2.0.0-alpha.41

8 years ago

2.0.0-alpha.40

8 years ago

2.0.0-alpha.39

8 years ago

2.0.0-alpha.38

8 years ago

2.0.0-alpha.37

8 years ago

2.0.0-alpha.36

8 years ago

2.0.0-alpha.35

8 years ago

2.0.0-alpha.34

8 years ago

2.0.0-alpha.33

8 years ago

2.0.0-alpha.32

8 years ago

2.0.0-alpha.31

8 years ago

2.0.0-alpha.30

8 years ago

2.0.0-alpha.29

8 years ago

2.0.0-alpha.28

8 years ago

2.0.0-alpha.27

8 years ago

2.0.0-alpha.26

8 years ago

2.0.0-alpha.25

8 years ago

2.0.0-alpha.24

8 years ago

2.0.0-alpha.23

8 years ago

2.0.0-alpha.22

8 years ago

2.0.0-alpha.21

8 years ago

2.0.0-alpha.20

8 years ago

2.0.0-alpha.19

8 years ago

2.0.0-alpha.18

8 years ago

2.0.0-alpha.17

8 years ago

2.0.0-alpha.16

8 years ago

2.0.0-alpha.15

8 years ago

2.0.0-alpha.14

8 years ago

2.0.0-alpha.13

8 years ago

2.0.0-alpha.12

8 years ago

2.0.0-alpha.11

8 years ago

2.0.0-alpha.10

8 years ago

2.0.0-alpha.9

8 years ago

2.0.0-alpha.8

8 years ago

2.0.0-alpha.7

8 years ago

2.0.0-alpha.6

8 years ago

2.0.0-alpha.5

8 years ago

2.0.0-alpha.4

8 years ago

2.0.0-alpha.3

8 years ago

2.0.0-alpha.2

8 years ago

2.0.0-alpha.1

8 years ago