Skip to content

Latest commit

 

History

History
157 lines (126 loc) · 5.78 KB

File metadata and controls

157 lines (126 loc) · 5.78 KB

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

initTimeMock(services)Promise.<function()>

Instantiate the time mock 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

Param Description
appEnv string
availableAppEnvs string[]

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.

Param Type Default Description
services Object The services APP_CONFIG depends on
services.APP_ENV Object The injected APP_ENV value
services.MAIN_FILE_URL String An URL pointing to the main file run
services.importer Object A service allowing to dynamically import ES modules
[services.log] Object noop An 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.

Param Type Default Description
services Object The services ENV depends on
[services.BASE_ENV] Object Base env vars that will be added to the environment
services.APP_ENV Object The injected APP_ENV value
services.PROCESS_ENV Object The injected process.env value
services.PROJECT_DIR Object The NodeJS project directory
[services.log] Object noop An optional logging service

initProcess(services) ⇒ Promise.<Object>

Instantiate the process service

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

Param Type Default Description
services Object The services process depends on
services.APP_ENV Object The injected APP_ENV value
[services.PROCESS_NAME] Object The process name to display
[services.SIGNALS] Object The process signals that interrupt the process
[services.exit] Object A process.exit like function
services.$instance Object The Knifecycle instance
services.$fatalError Object The Knifecycle fatal error manager
[services.log] Object noop An 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.

Param Type Default Description
services Object The services PROJECT_DIR depends on
[services.log] Object noop An optional logging service

initTimeMock(services) ⇒ Promise.<function()>

Instantiate the time mock service

Kind: global function
Returns: Promise.<function()> - A promise of the time function

Param Type Default Description
services Object The services to inject
services.CLOCK_MOCK Object An object to store the time mock state
[services.time] Object noop A time function
[services.log] Object noop A logging function

Example

import {
  DEFAULT_LOGGER,
  initLog,
} from 'common-services';
import {
  initTimeMock,
} from 'application-services';

const CLOCK_MOCK = {
  referenceTime: Date.now(),
  mockedTime: Date.parse('2012-12-20T20:20:20Z'),
  isFixed: false,
};
const log = await initLog({
  logger: DEFAULT_LOGGER,
});

const time = await initTimeMock({
  log,
});