- 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
Provides the PROCESS_ENV service : Object
Kind: global constant
Cast any string into an application environment
Kind: global function
Returns: string
| Param | Description |
|---|---|
| appEnv | string |
| availableAppEnvs | string[] |
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 |
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 |
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 |
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 |
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,
});