UNPKG

deep-package-manager

Version:
68 lines (53 loc) 1.39 kB
/** * Created by CCristi on 7/11/16. */ 'use strict'; 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;