This commit is contained in:
75
node_modules/geotiff/dist-node/source/client/http.js
generated
vendored
Normal file
75
node_modules/geotiff/dist-node/source/client/http.js
generated
vendored
Normal file
@@ -0,0 +1,75 @@
|
||||
"use strict";
|
||||
var __importDefault = (this && this.__importDefault) || function (mod) {
|
||||
return (mod && mod.__esModule) ? mod : { "default": mod };
|
||||
};
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.HttpClient = void 0;
|
||||
const http_1 = __importDefault(require("http"));
|
||||
const https_1 = __importDefault(require("https"));
|
||||
const url_1 = __importDefault(require("url"));
|
||||
const base_js_1 = require("./base.js");
|
||||
const utils_js_1 = require("../../utils.js");
|
||||
class HttpResponse extends base_js_1.BaseResponse {
|
||||
/**
|
||||
* BaseResponse facade for node HTTP/HTTPS API Response
|
||||
* @param {http.ServerResponse} response
|
||||
*/
|
||||
constructor(response, dataPromise) {
|
||||
super();
|
||||
this.response = response;
|
||||
this.dataPromise = dataPromise;
|
||||
}
|
||||
get status() {
|
||||
return this.response.statusCode;
|
||||
}
|
||||
getHeader(name) {
|
||||
return this.response.headers[name];
|
||||
}
|
||||
async getData() {
|
||||
const data = await this.dataPromise;
|
||||
return data;
|
||||
}
|
||||
}
|
||||
class HttpClient extends base_js_1.BaseClient {
|
||||
constructor(url) {
|
||||
super(url);
|
||||
this.parsedUrl = url_1.default.parse(this.url);
|
||||
this.httpApi = (this.parsedUrl.protocol === 'http:' ? http_1.default : https_1.default);
|
||||
}
|
||||
constructRequest(headers, signal) {
|
||||
return new Promise((resolve, reject) => {
|
||||
const request = this.httpApi.get({
|
||||
...this.parsedUrl,
|
||||
headers,
|
||||
}, (response) => {
|
||||
const dataPromise = new Promise((resolveData) => {
|
||||
const chunks = [];
|
||||
// collect chunks
|
||||
response.on('data', (chunk) => {
|
||||
chunks.push(chunk);
|
||||
});
|
||||
// concatenate all chunks and resolve the promise with the resulting buffer
|
||||
response.on('end', () => {
|
||||
const data = Buffer.concat(chunks).buffer;
|
||||
resolveData(data);
|
||||
});
|
||||
response.on('error', reject);
|
||||
});
|
||||
resolve(new HttpResponse(response, dataPromise));
|
||||
});
|
||||
request.on('error', reject);
|
||||
if (signal) {
|
||||
if (signal.aborted) {
|
||||
request.destroy(new utils_js_1.AbortError('Request aborted'));
|
||||
}
|
||||
signal.addEventListener('abort', () => request.destroy(new utils_js_1.AbortError('Request aborted')));
|
||||
}
|
||||
});
|
||||
}
|
||||
async request({ headers, signal } = {}) {
|
||||
const response = await this.constructRequest(headers, signal);
|
||||
return response;
|
||||
}
|
||||
}
|
||||
exports.HttpClient = HttpClient;
|
||||
//# sourceMappingURL=http.js.map
|
||||
Reference in New Issue
Block a user