UNPKG

deep-package-manager

Version:
94 lines (76 loc) 1.7 kB
/** * Created by AlexanderC on 9/15/15. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.PostDeployHook = 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 PostDeployHook { /** * @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 (provisioning, isUpdate, cb) => { hook.bind({ microservice: this._microservice, provisioning: provisioning, isUpdate: isUpdate })(cb); }; } /** * @returns {String} */ static get NAME() { return 'PostDeployHook'; } /** * @returns {String} * @private */ _getHookFile() { return _path2.default.join(this._microservice.basePath, PostDeployHook.HOOK_BASENAME); } /** * @param {Property} property * @returns {Array} */ static getBindingParameters(property) { return [property._provisioning, property._isUpdate]; } /** * @returns {String} */ static get HOOK_BASENAME() { return 'hook.post-deploy.js'; } } exports.PostDeployHook = PostDeployHook;