archdevconfig

1.6.5 • Public • Published

ARCHDEVCONFIG

This is the dynamics, file-based application configuration library. The configuration file is selected by the server name.

const AppConfig = require('archdevconfig');
const appConfig = AppConfig.getInstance();

// appConfig = {
//   "name": "The name of configuration",
//   "pkgpath": "The path of the 'package.json' file, ex. /sample_application",
//   "pkgjson": "The 'package.json' file, ex. /sample_application/package.json",
//   "hostname": "The server name",
//   "configPath": "The path of configuration files, ex. /sample_application/configs",
//   "logPath": "The path of log files, ex. /sample_application/logs"
// };

Installation

$ npm install archdevconfig --save

Features

  • Stores a default configuration as the singleton
  • Loads a configuration file by hostname or setup

Usage

const AppConfig = require('archdevconfig');

1. Getting a default configuration:

const defaultConfig = AppConfig.getInstance();

The AppConfig.getInstance() returns the 'default configuration'.

2. Providing the Setup for creating the default configuration on the first call:

const defaultConfig = AppConfig.getInstance(setup);

After the default configuration created on the first call, the provided Setup will be ignored when calling the function.

SETUP:

const setup = { name: "production" };
const defaultConfig = AppConfig.getInstance(setup);
// it loads the configuration file on 'config/path/production.config.json'.
  • Name - setup the name of specified configuration file (*.config.json). If none is provided, it will use '[hostname].config.json' or 'default.config.json' as default.
const setup = { path: "./sample/configs/path" };
const defaultConfig = AppConfig.getInstance(setup);
  • Path - setup where the path of configuration files are. If none is provided, it will use 'application_location/configs' as default.
const setup = { log: "./sample/logs/path" };
const defaultConfig = AppConfig.getInstance(setup);
  • Log - setup where the path of log files are. If none is provided, it will use 'application_location/logs' as default.
// Put them all together..
const setup = { name: "production", path: "./lib/configs", log: "./lib/logs" };
const defaultConfig = AppConfig.getInstance(setup);

3. Setting the default configuration:

const defaultConfig = AppConfig.setInstance(newConfig);

It will set a new configuration to the default one.

4. Resetting the default configuration:

// defaultConfig becomes 'undefined'
const defaultConfig = AppConfig.setInstance();

It will reset the default configuration when 'undefined' is provided.

5. Loading the configuration by Setup:

const config = AppConfig.load(setup);

This loads a configuration using Setup. It will NOT change the 'default configuration'.

Readme

Keywords

none

Package Sidebar

Install

npm i archdevconfig

Weekly Downloads

2

Version

1.6.5

License

ISC

Last publish

Collaborators

  • panit