1 | {"version":3,"file":"gitHubRequest.js","sourceRoot":"","sources":["../src/gitHubRequest.ts"],"names":[],"mappings":"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","sourcesContent":["import * as https from \"https\"\nimport { RequestOptions } from \"https\"\nimport { IncomingMessage, ClientRequest } from \"http\"\nimport { addTimeOutHandler } from \"./httpRequest\"\nimport { Promise as BluebirdPromise } from \"bluebird\"\nimport { tsAwaiter } from \"./awaiter\"\n\nconst __awaiter = tsAwaiter\nArray.isArray(__awaiter)\n\nexport function gitHubRequest<T>(path: string, token: string, data: { [name: string]: any; } = null, method: string = \"GET\"): BluebirdPromise<T> {\n const options: any = {\n hostname: \"api.github.com\",\n path: path,\n method: method,\n headers: {\n Accept: \"application/vnd.github.v3+json\",\n \"User-Agent\": \"electron-complete-builder\",\n }\n }\n\n const encodedData = data == null ? null : new Buffer(JSON.stringify(data))\n if (encodedData != null) {\n options.method = \"post\"\n options.headers[\"Content-Type\"] = \"application/json\"\n options.headers[\"Content-Length\"] = encodedData.length\n }\n return doGitHubRequest<T>(options, token, it => it.end(encodedData))\n}\n\nexport function doGitHubRequest<T>(options: RequestOptions, token: string, requestProcessor: (request: ClientRequest, reject: (error: Error) => void) => void): BluebirdPromise<T> {\n if (token != null) {\n (<any>options.headers).authorization = \"token \" + token\n }\n\n return new BluebirdPromise<T>((resolve, reject, onCancel) => {\n const request = https.request(options, (response: IncomingMessage) => {\n try {\n if (response.statusCode === 404) {\n // error is clear, we don't need to read detailed error description\n reject(new HttpError(response))\n return\n }\n else if (response.statusCode === 204) {\n // on DELETE request\n resolve()\n return\n }\n\n let data = \"\"\n response.setEncoding(\"utf8\")\n response.on(\"data\", (chunk: string) => {\n data += chunk\n })\n\n response.on(\"end\", () => {\n try {\n if (response.statusCode >= 400) {\n if (response.headers[\"content-type\"].includes(\"json\")) {\n reject(new HttpError(response, JSON.parse(data)))\n }\n else {\n reject(new HttpError(response))\n }\n }\n else {\n resolve(data.length === 0 ? null : JSON.parse(data))\n }\n }\n catch (e) {\n reject(e)\n }\n })\n }\n catch (e) {\n reject(e)\n }\n })\n addTimeOutHandler(request, reject)\n request.on(\"error\", reject)\n requestProcessor(request, reject)\n onCancel(() => request.abort())\n })\n}\n\nexport class HttpError extends Error {\n constructor(public response: IncomingMessage, public description: any = null) {\n super(response.statusCode + \" \" + response.statusMessage + (description == null ? \"\" : (\"\\n\" + JSON.stringify(description, null, \" \"))) + \"\\nHeaders: \" + JSON.stringify(response.headers, null, \" \"))\n }\n}"]} |