deep-package-manager
Version:
DEEP Package Manager
101 lines (81 loc) • 2.13 kB
JavaScript
/**
* Created by AlexanderC on 2/5/16.
*/
;
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;