deep-package-manager
Version:
DEEP Package Manager
68 lines (53 loc) • 1.39 kB
JavaScript
/**
* Created by CCristi on 7/11/16.
*/
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.AbstractHandler = undefined;
var _deepCore = require('deep-core');
var _deepCore2 = _interopRequireDefault(_deepCore);
var _ComplexDriver = require('../../ComplexDriver');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
class AbstractHandler extends _deepCore2.default.OOP.Interface {
/**
* @param {AbstractDriver} driver
*/
constructor(driver) {
super(['mapError']);
this._driver = driver;
}
/**
* @returns {AbstractHandler}
*/
extend() {
AbstractHandler.METHODS.forEach(method => {
let originalMethod = this._driver[method];
this._driver[method] = (...args) => {
let originalCallback = args.pop();
originalMethod.call(this._driver, ...args, (error, response) => {
if (!error) {
originalCallback(null, response);
return;
}
originalCallback(this.mapError(error), response);
});
};
});
return this;
}
/**
* @returns {AbstractDriver}
*/
get driver() {
return this._driver;
}
/**
* @returns {String[]}
*/
static get METHODS() {
return _ComplexDriver.ComplexDriver.READ_METHODS;
}
}
exports.AbstractHandler = AbstractHandler;