Source: utils/appwait.js

'use strict';

/**
 * Some helper functions/utilities for waiting for startup.
 * @module utils/appwait
 * @license MIT
 * @author Kai KRETSCHMANN <kai@kretschmann.consulting>
 */

const myapp = require('../app').app;
const log4js = require('log4js');
const logger = log4js.getLogger();
logger.level = process.env.LOGLEVEL || /* istanbul ignore next */ 'warn';
const path = require('path');

/**
 * Wait for main app startup.
 * @method appWait
 * @public
 * @param {object} done Callback for event
 * @param {string} cfn The caller filename for logging
 **/
exports.appWait = function (done, cfn) {
  const callerFileName = path.basename(cfn);

  logger.warn(`Wait for app server start in ${callerFileName}`);
  if (myapp.didStart) {
    logger.info('app server already started');
    done();
  } else {
    logger.info('Not yet, wait for event');

    myapp.on('appStarted', function () {
      logger.info(`app server started now for ${callerFileName}`);
      done();
    });
  } // if
}