@shockpkg/core
Version:
shockpkg core
93 lines (75 loc) • 2.31 kB
JavaScript
;
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.Request = void 0;
var _initializerDefineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerDefineProperty"));
var _applyDecoratedDescriptor2 = _interopRequireDefault(require("@babel/runtime/helpers/applyDecoratedDescriptor"));
var _initializerWarningHelper2 = _interopRequireDefault(require("@babel/runtime/helpers/initializerWarningHelper"));
var _request = _interopRequireDefault(require("request"));
var _decorators = require("./decorators");
var _dec, _class, _descriptor, _temp;
/**
* Request wrapper around the request module.
*
* @param defaults Default options.
*/
let Request = (_dec = (0, _decorators.property)(false), (_class = (_temp = class Request extends Object {
/**
* Request instance.
*/
constructor(defaults = {}) {
super();
(0, _initializerDefineProperty2.default)(this, "_request", _descriptor, this);
this._request = this._createRequest(defaults);
}
/**
* Make request with an optional callback.
*
* @param options Request options.
* @param cb An optional callback function.
* @return Stream object.
*/
stream(options, cb) {
const req = this._request;
return cb ? req(options, cb) : req(options);
}
/**
* Make request with promise.
*
* @param options Request options.
* @return Stream response and body.
*/
async promise(options) {
return new Promise((resolve, reject) => {
const stream = this.stream(options, (error, response, body) => {
if (error) {
reject(error);
return;
}
resolve({
stream,
response,
body
});
});
});
}
/**
* Make a request object.
*
* @param defaults Request defaults.
* @return Request instance.
*/
_createRequest(defaults = {}) {
return _request.default.defaults(defaults);
}
}, _temp), (_descriptor = (0, _applyDecoratedDescriptor2.default)(_class.prototype, "_request", [_dec], {
configurable: true,
enumerable: true,
writable: true,
initializer: null
})), _class));
exports.Request = Request;
//# sourceMappingURL=request.js.map