Socket
Socket
Sign inDemoInstall

application-services

Package Overview
Dependencies
5
Maintainers
0
Versions
10
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

application-services

Out of the box application environment and configuration service.


Version published
Maintainers
0
Created

Readme

Source

application-services

Out of the box application environment and configuration service.

GitHub license Coverage Status

Need to manage several environment and configurations for your knifecycle based app? This module is all what your need.

Features

Out of the box, standard compliant, application environment:

  • accepting only standard NODE_ENV values: test, development, production,
  • managing application environment in a clean and separate APP_ENV environment variable,
  • leverage dotenv to read environment variables,
  • manage separate and type checked applications configurations for each deployment environments and allows loading it automatically (in the ./configs/${APP_ENV}/index file).

It requires log and importer services to be passed in, you can find implementations in the common-services project.

It also relies on constant services you will have to provide: APP_ENV, NODE_ENV and the MAIN_FILE_URL (directory where actual code is).

API

Constants

PROCESS_ENV Provides the PROCESS_ENV service : Object

Functions

extractAppEnv(appEnv, availableAppEnvs)

Cast any string into an application environment

initAppConfig(services)Promise.<Object>

Initialize the APP_CONFIG service according to the APP_ENV

initENV(services)Promise.<Object>

Initialize the ENV service using process env plus dotenv files loaded in .env.node.${ENV.NODE_ENV} and .env.app.${APP_ENV}.

initProcess(services)Promise.<Object>

Instantiate the process service

initProjectDirectory(services)Promise.<Object>

Initialize the PROJECT_DIR service

PROCESS_ENV

Provides the PROCESS_ENV service : Object Kind: global constant

extractAppEnv(appEnv, availableAppEnvs) ⇒

Cast any string into an application environment

Kind: global function
Returns: string

ParamDescription
appEnvstring
availableAppEnvsstring[]

initAppConfig(services) ⇒ Promise.<Object>

Initialize the APP_CONFIG service according to the APP_ENV

Kind: global function
Returns: Promise.<Object> - A promise of a an object the actual configuration properties.

ParamTypeDefaultDescription
servicesObjectThe services APP_CONFIG depends on
services.APP_ENVObjectThe injected APP_ENV value
services.MAIN_FILE_URLStringAn URL pointing to the main file run
services.importerObjectA service allowing to dynamically import ES modules
[services.log]ObjectnoopAn optional logging service

initENV(services) ⇒ Promise.<Object>

Initialize the ENV service using process env plus dotenv files loaded in .env.node.${ENV.NODE_ENV} and .env.app.${APP_ENV}.

Kind: global function
Returns: Promise.<Object> - A promise of an object containing the actual env vars.

ParamTypeDefaultDescription
servicesObjectThe services ENV depends on
[services.BASE_ENV]ObjectBase env vars that will be added to the environment
services.APP_ENVObjectThe injected APP_ENV value
services.PROCESS_ENVObjectThe injected process.env value
services.PROJECT_DIRObjectThe NodeJS project directory
[services.log]ObjectnoopAn optional logging service

initProcess(services) ⇒ Promise.<Object>

Instantiate the process service

Kind: global function
Returns: Promise.<Object> - A promise of the process object

ParamTypeDefaultDescription
servicesObjectThe services process depends on
services.APP_ENVObjectThe injected APP_ENV value
[services.PROCESS_NAME]ObjectThe process name to display
[services.SIGNALS]ObjectThe process signals that interrupt the process
[services.exit]ObjectA process.exit like function
services.$instanceObjectThe Knifecycle instance
services.$fatalErrorObjectThe Knifecycle fatal error manager
[services.log]ObjectnoopAn optional logging service

initProjectDirectory(services) ⇒ Promise.<Object>

Initialize the PROJECT_DIR service

Kind: global function
Returns: Promise.<Object> - A promise of a an object the actual configuration properties.

ParamTypeDefaultDescription
servicesObjectThe services PROJECT_DIR depends on
[services.log]ObjectnoopAn optional logging service

Authors

License

MIT

Keywords

FAQs

Last updated on 15 Jul 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc