UNPKG

typescriptkit

Version:

Basic functionality for TypeScript projects

48 lines (46 loc) 1.97 kB
"use strict"; 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