UNPKG

deep-package-manager

Version:
92 lines (74 loc) 1.54 kB
/** * Created by AlexanderC on 9/15/15. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.InitHook = undefined; var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); var _path = require('path'); var _path2 = _interopRequireDefault(_path); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class InitHook { /** * @param {Instance} microservice */ constructor(microservice) { this._microservice = microservice; } /** * @returns {Function} */ getHook() { let hookFile = this._getHookFile(); if (!_fs2.default.existsSync(hookFile)) { return null; } let hook = require(hookFile); if (typeof hook !== 'function') { return null; } return this._wrap(hook); } /** * @param {Function} hook * @returns {Function} * @private */ _wrap(hook) { return cb => { hook.bind({ microservice: this._microservice })(cb); }; } /** * @returns {String} * @private */ _getHookFile() { return _path2.default.join(this._microservice.basePath, this.constructor.HOOK_BASENAME); } /** * @returns {String} */ static get NAME() { return 'InitHook'; } /** * @param {Property} property * @returns {Array} */ static getBindingParameters(property) { return []; } /** * @returns {String} */ static get HOOK_BASENAME() { return 'hook.init.js'; } } exports.InitHook = InitHook;