UNPKG

@shockpkg/core

Version:
93 lines (75 loc) 2.31 kB
"use strict"; 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