typescriptkit
Version:
Basic functionality for TypeScript projects
48 lines (46 loc) • 1.97 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const StringExtensions_1 = require("../Extensions/StringExtensions");
const HttpRequestExecutor_1 = require("./HttpRequestExecutor");
/**
* Implementation of the xmlHttpclient implementing async promises
*/
class HttpClient {
/**
* Implementation of the xmlHttpclient implementing async promises
* @param url The url to request to
* @param httpRequestExecutor (Optional) implementation of @see IHttpRequestExecutor to execute the requests with
*/
constructor(url, httpRequestExecutor = new HttpRequestExecutor_1.HttpRequestExecutor()) {
this.httpHeaders = new Array();
if (StringExtensions_1.StringExtensions.isNullOrWhitespace(url))
throw new ReferenceError('The url needs to be defined');
this.url = url;
this.httpRequestExecutor = httpRequestExecutor;
}
/**
* Set a value for the HttpHeaders for every request
* @param key name of the header
* @param value value of the header
*/
setHttpHeader(key, value) {
this.httpHeaders[key] = value;
return this;
}
/**
* Send a HttpGet request to an endpoint
* @param path Uri extra path parameter
*/
httpGetAsync(path) {
return new Promise((resolve, reject) => this.httpRequestExecutor.executeHttpGet(this.constructUrl(path), this.httpHeaders, (responseText) => resolve(JSON.parse(responseText)), (responseText, statusCode) => reject(`${statusCode}: ${responseText}`)));
}
constructUrl(path) {
if (StringExtensions_1.StringExtensions.isNullOrWhitespace(path))
return this.url;
return StringExtensions_1.StringExtensions.trimEndCharacters(this.url, '/') +
`/${StringExtensions_1.StringExtensions.trimStartCharacters(path, '/')}`;
}
}
exports.HttpClient = HttpClient;
exports.default = HttpClient;
//# sourceMappingURL=HttpClient.js.map