UNPKG

node-webplay

Version:

A nodejs streaming server implementation

128 lines (96 loc) 3.94 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); var _request = require("request"); var _request2 = _interopRequireDefault(_request); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function blobToBuffer(blob, cb) { if (typeof Blob === "undefined" || !(blob instanceof Blob)) { throw new Error("first argument must be a Blob"); } if (typeof cb !== "function") { throw new Error("second argument must be a function"); } var reader = new FileReader(); function onLoadEnd(e) { reader.removeEventListener("loadend", onLoadEnd, false); if (e.error) cb(e.error);else cb(null, new Buffer(reader.result)); } reader.addEventListener("loadend", onLoadEnd, false); reader.readAsArrayBuffer(blob); } function _req(opts, resolve, reject) { (0, _request2.default)(opts, function (error, res, b) { if (null != error) { //console.log("httprequest error", error.message); reject(error); } else { //console.log("httprequest response" , res.statusCode); var statusCode = res.statusCode; if (res.statusCode >= 200 && res.statusCode < 300) { resolve({ response: res, body: b }); } else { var _error = new Error("Request Failed.\n" + ("Status Code: " + statusCode)); _error["body"] = b; _error["statusCode"] = statusCode; _error["headers"] = res.heders; reject(_error); } } }); } function req(opts) { return new Promise(function (resolve, reject) { var def = true; try { undefined === Blob; } catch (err) { def = false; } if (!def || !(opts.body instanceof Blob)) { _req(opts, resolve, reject); } else { blobToBuffer(opts.body, function (err, buffer) { if (null != err) reject(err);else { opts.body = buffer; _req(opts, resolve, reject); } }); } }); } var httprequest = function () { function httprequest() { var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null; _classCallCheck(this, httprequest); this._opt = {}; if (null != process) { if (null != process.env) if (null != process.env.http_proxy) this._opt.proxy = process.env.http_proxy; } if (null != options) { Object.assign(this._opt, options); } } _createClass(httprequest, [{ key: "get", value: function get(url) { this._opt.method = "GET"; this._opt.uri = url; return req(this._opt); } }, { key: "put", value: function put(url, body) { this._opt.method = "PUT"; this._opt.uri = url; this._opt.body = body; return req(this._opt); } }]); return httprequest; }(); exports.default = httprequest; //# sourceMappingURL=httprequest.js.map