UNPKG

6.52 kBJavaScriptView Raw
1"use strict";
2var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3 return new (P || (P = Promise))(function (resolve, reject) {
4 function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5 function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6 function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }
7 step((generator = generator.apply(thisArg, _arguments || [])).next());
8 });
9};
10var __generator = (this && this.__generator) || function (thisArg, body) {
11 var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t;
12 return { next: verb(0), "throw": verb(1), "return": verb(2) };
13 function verb(n) { return function (v) { return step([n, v]); }; }
14 function step(op) {
15 if (f) throw new TypeError("Generator is already executing.");
16 while (_) try {
17 if (f = 1, y && (t = y[op[0] & 2 ? "return" : op[0] ? "throw" : "next"]) && !(t = t.call(y, op[1])).done) return t;
18 if (y = 0, t) op = [0, t.value];
19 switch (op[0]) {
20 case 0: case 1: t = op; break;
21 case 4: _.label++; return { value: op[1], done: false };
22 case 5: _.label++; y = op[1]; op = [0]; continue;
23 case 7: op = _.ops.pop(); _.trys.pop(); continue;
24 default:
25 if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
26 if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
27 if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
28 if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
29 if (t[2]) _.ops.pop();
30 _.trys.pop(); continue;
31 }
32 op = body.call(thisArg, _);
33 } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
34 if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
35 }
36};
37var url = require("url");
38var request = require("request");
39var config_1 = require("./config");
40var logger_1 = require("./logger");
41var Request = (function () {
42 function Request() {
43 }
44 Request.get = function (path) {
45 return __awaiter(this, void 0, void 0, function () {
46 return __generator(this, function (_a) {
47 return [2 /*return*/, this._makeRequest("GET", path)];
48 });
49 });
50 };
51 Request.post = function (path, body, json, contentType) {
52 if (json === void 0) { json = true; }
53 return __awaiter(this, void 0, void 0, function () {
54 return __generator(this, function (_a) {
55 return [2 /*return*/, this._makeRequest("POST", path, body, json, contentType)];
56 });
57 });
58 };
59 Request.put = function (path, body, json, contentType) {
60 if (json === void 0) { json = true; }
61 return __awaiter(this, void 0, void 0, function () {
62 return __generator(this, function (_a) {
63 return [2 /*return*/, this._makeRequest("PUT", path, body, json, contentType)];
64 });
65 });
66 };
67 Request.delete = function (path) {
68 return __awaiter(this, void 0, void 0, function () {
69 return __generator(this, function (_a) {
70 return [2 /*return*/, this._makeRequest("DELETE", path)];
71 });
72 });
73 };
74 Request._makeRequest = function (method, path, body, json, contentType) {
75 if (json === void 0) { json = false; }
76 return new Promise(function (resolve, reject) {
77 if (path.indexOf("/") === 0) {
78 path = path.slice(1, path.length);
79 }
80 var baseUrl = config_1.instance.get("baseApiEndPoint") || 'https://mdpkhs79aa.execute-api.us-west-2.amazonaws.com/staging2/';
81 var finalUrl = path.indexOf("http") !== -1 ? path : url.resolve(baseUrl, path);
82 var headers = {
83 "User-Agent": process.title + "-cli"
84 };
85 var ApiKey = config_1.instance.get("ApiKey");
86 if (ApiKey) {
87 headers["Authorization"] = "Bearer " + ApiKey;
88 }
89 if (contentType) {
90 headers["Content-Type"] = contentType;
91 }
92 var req = {
93 method: method,
94 headers: headers,
95 url: finalUrl,
96 body: body,
97 json: json
98 };
99 logger_1.instance.debug("[" + method + "]: " + finalUrl);
100 request(req, function (err, res, body) {
101 if (res && res.headers["content-type"] === "application/json" && typeof body === "string" && body.length !== 0) {
102 body = JSON.parse(body);
103 }
104 if (err) {
105 logger_1.instance.info("Res from returned error " + method + ":" + finalUrl + " => " + err);
106 reject({
107 error: body ? body.error ? body.error : body : err
108 });
109 return;
110 }
111 else {
112 logger_1.instance.info("Res from " + method + ":" + finalUrl + " => " + res.statusCode);
113 if (res.statusCode >= 200 && res.statusCode < 400) {
114 logger_1.instance.info("Res detected success from " + method + ":" + finalUrl + " => content length " + (body.length < 1000 ? body : body.length));
115 resolve({
116 res: res,
117 body: body
118 });
119 return;
120 }
121 else {
122 logger_1.instance.info("Res detected error from " + method + ":" + finalUrl + " => content length: " + (body.length < 1000 ? body : body.length));
123 reject({
124 res: res,
125 error: body.error || body
126 });
127 return;
128 }
129 }
130 });
131 });
132 };
133 return Request;
134}());
135Object.defineProperty(exports, "__esModule", { value: true });
136exports.default = Request;