UNPKG

deep-package-manager

Version:
101 lines (81 loc) 2.13 kB
/** * Created by AlexanderC on 2/5/16. */ 'use strict'; Object.defineProperty(exports, "__esModule", { value: true }); exports.FSDriver = undefined; var _AbstractDriver = require('./AbstractDriver'); var _Instance = require('../../../Microservice/Instance'); var _path = require('path'); var _path2 = _interopRequireDefault(_path); var _fs = require('fs'); var _fs2 = _interopRequireDefault(_fs); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } class FSDriver extends _AbstractDriver.AbstractDriver { /** * @param {String} basePath * @param {Boolean} appendVersion */ constructor(basePath, appendVersion = false) { super(); this._basePath = basePath; this._appendVersion = appendVersion; } /** * @returns {Boolean} */ get appendVersion() { return this._appendVersion; } /** * @param {Boolean} state */ set appendVersion(state) { this._appendVersion = state; } /** * @returns {String} */ get basePath() { return this._basePath; } /** * @param {ModuleInstance|*} moduleObj * @param {Function} cb */ dump(moduleObj, cb) { moduleObj.extract(this._dumpPath(moduleObj.context), cb); } /** * @param {Context} moduleContext * @param {Function} cb */ hasToDump(moduleContext, cb) { _fs2.default.exists(this._dumpPath(moduleContext), exists => { cb(null, !exists); }); } /** * @param {Context} moduleContext * @returns {String} * @private */ _dumpPath(moduleContext) { return _path2.default.join(this._basePath, this._appendVersion ? moduleContext.toString() : moduleContext.name); } /** * @param {ModuleInstance|*} moduleObj * @param {Function} cb */ initialize(moduleObj, cb) { let microservice = _Instance.Instance.create(this._dumpPath(moduleObj.context)); let postInstallHook = microservice.postInstallHook || (cb => { console.debug(`No hook.post-install.js found for microservice ${microservice.identifier}`); cb(); }); postInstallHook(cb); } } exports.FSDriver = FSDriver;