ngx-http-client-service
Version:
<!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section --> [](#contributors-) <!-- ALL-CONTRIBUTORS-BADGE:END -->
134 lines • 18.9 kB
JavaScript
import * as tslib_1 from "tslib";
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { HttpOptionsService } from '../http-options/http-options.service';
import { ApiPathService } from '../api-path/api-path.service';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common/http";
import * as i2 from "../http-options/http-options.service";
import * as i3 from "../api-path/api-path.service";
/**
* @description Injectable Http Client Service
*/
var NgxHttpClientService = /** @class */ (function () {
/**
* @description Creates an instance of http client service.
* @param httpClient - an instance of HttpClient
* @param httpOptionsService - an instance of HttpOptionsService
*/
function NgxHttpClientService(httpClient, httpOptionsService, apiPathService) {
this.httpClient = httpClient;
this.httpOptionsService = httpOptionsService;
this.apiPathService = apiPathService;
}
/**
* @description will expose get method of http client.
* @param pathParams contains path parameters of type string array
* @param HttpOptions contains parameter of type HttpOptions.
*/
NgxHttpClientService.prototype.get = function (pathParams, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.get(apiUrl, options);
};
/**
* @description will expose post method of http client.
* @param pathParams contains path parameters of type string array
* @param HttpOptions contains parameter of type HttpOptions.
* @param body contains parameter for http post body
*/
NgxHttpClientService.prototype.post = function (pathParams, body, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.post(apiUrl, body, options);
};
/**
* @description will expose put method of http client.
* @param pathParams contains path parameters of type string array
* @param HttpOptions contains parameter of type HttpOptions.
* @param body contains parameter for http put body
*/
NgxHttpClientService.prototype.put = function (pathParams, body, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.put(apiUrl, body, options);
};
/**
* @description will expose delete method of http client.
* @param pathParams contains path parameters of type string array
* @param HttpOptions contains parameter of type HttpOptions.
*/
NgxHttpClientService.prototype.delete = function (pathParams, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.delete(apiUrl, options);
};
/**
* @description will expose request method of http client.
* @param method contains the method parameter of type string.
* @param pathParams contains path parameters of type string array.
* @param HttpOptions contains parameter of type HttpOptions.
*/
NgxHttpClientService.prototype.request = function (method, pathParams, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.request(method, apiUrl, options);
};
/**
* @description will expose head method of http client.
* @param pathParams contains path parameters of type string array.
* @param HttpOptions contains parameter of type HttpOptions.
*/
NgxHttpClientService.prototype.head = function (pathParams, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.head(apiUrl, options);
};
/**
* @description will expose jsonp method of http client.
* @param pathParams contains path parameters of type string array.
* @param callbackFn contains parameter of type string.
*/
NgxHttpClientService.prototype.jsonp = function (pathParams, callbackFn) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
return this.httpClient.jsonp(apiUrl, callbackFn);
};
/**
* @description will expose options method of http client.
* @param pathParams contains path parameters of type string array.
* @param HttpOptions contains parameter of type HttpOptions.
*/
NgxHttpClientService.prototype.options = function (pathParams, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.options(apiUrl, options);
};
/**
* @description will expose patch method of http client.
* @param pathParams contains path parameters of type string array.
* @param body of type any.
* @param HttpOptions contains parameter of type HttpOptions.
*/
NgxHttpClientService.prototype.patch = function (pathParams, body, httpOptions) {
var apiUrl = this.apiPathService.createApiPath(pathParams);
var options = this.httpOptionsService.appendHttpOptions(httpOptions);
return this.httpClient.patch(apiUrl, body, options);
};
NgxHttpClientService.ctorParameters = function () { return [
{ type: HttpClient },
{ type: HttpOptionsService },
{ type: ApiPathService }
]; };
NgxHttpClientService.ngInjectableDef = i0.ɵɵdefineInjectable({ factory: function NgxHttpClientService_Factory() { return new NgxHttpClientService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.HttpOptionsService), i0.ɵɵinject(i3.ApiPathService)); }, token: NgxHttpClientService, providedIn: "root" });
NgxHttpClientService = tslib_1.__decorate([
Injectable({
providedIn: 'root'
})
/** NgxHttpClientService Library where all reusable and repeated functionalities can be managed
* It can contains common methods and common methods related params.
*/
], NgxHttpClientService);
return NgxHttpClientService;
}());
export { NgxHttpClientService };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmd4LWh0dHAtY2xpZW50LnNlcnZpY2UuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaHR0cC1jbGllbnQtc2VydmljZS8iLCJzb3VyY2VzIjpbImxpYi9zZXJ2aWNlcy9uZ3gtaHR0cC1jbGllbnQvbmd4LWh0dHAtY2xpZW50LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7QUFHOUQ7O0dBRUc7QUFRSDtJQUVFOzs7O09BSUc7SUFDSCw4QkFDVSxVQUFzQixFQUN0QixrQkFBc0MsRUFDdEMsY0FBOEI7UUFGOUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0Qix1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW9CO1FBQ3RDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtJQUNwQyxDQUFDO0lBRUw7Ozs7T0FJRztJQUNJLGtDQUFHLEdBQVYsVUFBVyxVQUFvQixFQUFFLFdBQXlCO1FBQ3hELElBQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzdELElBQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxpQkFBaUIsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUN2RSxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxtQ0FBSSxHQUFYLFVBQVksVUFBb0IsRUFBRSxJQUFTLEVBQUUsV0FBeUI7UUFDcEUsSUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxh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QUNyRSxJQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUM3RCxJQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsaUJBQWlCLENBQUMsV0FBVyxDQUFDLENBQUM7UUFDdkUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsSUFBSSxFQUFFLE9BQU8sQ0FBQyxDQUFDO0lBQ3RELENBQUM7O2dCQXpHcUIsVUFBVTtnQkFDRixrQkFBa0I7Z0JBQ3RCLGNBQWM7OztJQVY3QixvQkFBb0I7UUFQaEMsVUFBVSxDQUFDO1lBQ1YsVUFBVSxFQUFFLE1BQU07U0FDbkIsQ0FBQztRQUVGOztXQUVHO09BQ1Usb0JBQW9CLENBa0hoQzsrQkFuSUQ7Q0FtSUMsQUFsSEQsSUFrSEM7U0FsSFksb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBIdHRwT3B0aW9uc1NlcnZpY2UgfSBmcm9tICcuLi9odHRwLW9wdGlvbnMvaHR0cC1vcHRpb25zLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBIdHRwT3B0aW9ucyB9IGZyb20gJy4uLy4uL21vZGVscy9odHRwLW9wdGlvbnMubW9kZWwnO1xyXG5pbXBvcnQgeyBBcGlQYXRoU2VydmljZSB9IGZyb20gJy4uL2FwaS1wYXRoL2FwaS1wYXRoLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uIEluamVjdGFibGUgSHR0cCBDbGllbnQgU2VydmljZVxyXG4gKi9cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5cclxuLyoqIE5neEh0dHBDbGllbnRTZXJ2aWNlIExpYnJhcnkgd2hlcmUgYWxsIHJldXNhYmxlIGFuZCByZXBlYXRlZCBmdW5jdGlvbmFsaXRpZXMgY2FuIGJlIG1hbmFnZWRcclxuICogSXQgY2FuIGNvbnRhaW5zIGNvbW1vbiBtZXRob2RzIGFuZCBjb21tb24gbWV0aG9kcyByZWxhdGVkIHBhcmFtcy5cclxuICovXHJcbmV4cG9ydCBjbGFzcyBOZ3hIdHRwQ2xpZW50U2VydmljZSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiBDcmVhdGVzIGFuIGluc3RhbmNlIG9mIGh0dHAgY2xpZW50IHNlcnZpY2UuXHJcbiAgICogQHBhcmFtIGh0dHBDbGllbnQgLSBhbiBpbnN0YW5jZSBvZiBIdHRwQ2xpZW50XHJcbiAgICogQHBhcmFtIGh0dHBPcHRpb25zU2VydmljZSAtIGFuIGluc3RhbmNlIG9mIEh0dHBPcHRpb25zU2VydmljZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxyXG4gICAgcHJpdmF0ZSBodHRwT3B0aW9uc1NlcnZpY2U6IEh0dHBPcHRpb25zU2VydmljZSxcclxuICAgIHByaXZhdGUgYXBpUGF0aFNlcnZpY2U6IEFwaVBhdGhTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHdpbGwgZXhwb3NlIGdldCBtZXRob2Qgb2YgaHR0cCBjbGllbnQuXHJcbiAgICogQHBhcmFtIHBhdGhQYXJhbXMgY29udGFpbnMgcGF0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgc3RyaW5nIGFycmF5XHJcbiAgICogQHBhcmFtIEh0dHBPcHRpb25zIGNvbnRhaW5zIHBhcmFtZXRlciBvZiB0eXBlIEh0dHBPcHRpb25zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXQocGF0aFBhcmFtczogc3RyaW5nW10sIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5hcGlQYXRoU2VydmljZS5jcmVhdGVBcGlQYXRoKHBhdGhQYXJhbXMpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaHR0cE9wdGlvbnNTZXJ2aWNlLmFwcGVuZEh0dHBPcHRpb25zKGh0dHBPcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZ2V0KGFwaVVybCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gd2lsbCBleHBvc2UgcG9zdCBtZXRob2Qgb2YgaHR0cCBjbGllbnQuXHJcbiAgICogQHBhcmFtIHBhdGhQYXJhbXMgY29udGFpbnMgcGF0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgc3RyaW5nIGFycmF5XHJcbiAgICogQHBhcmFtIEh0dHBPcHRpb25zIGNvbnRhaW5zIHBhcmFtZXRlciBvZiB0eXBlIEh0dHBPcHRpb25zLlxyXG4gICAqIEBwYXJhbSBib2R5IGNvbnRhaW5zIHBhcmFtZXRlciBmb3IgaHR0cCBwb3N0IGJvZHlcclxuICAgKi9cclxuICBwdWJsaWMgcG9zdChwYXRoUGFyYW1zOiBzdHJpbmdbXSwgYm9keTogYW55LCBodHRwT3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmh0dHBPcHRpb25zU2VydmljZS5hcHBlbmRIdHRwT3B0aW9ucyhodHRwT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QoYXBpVXJsLCBib2R5LCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSBwdXQgbWV0aG9kIG9mIGh0dHAgY2xpZW50LlxyXG4gICAqIEBwYXJhbSBwYXRoUGFyYW1zIGNvbnRhaW5zIHBhdGggcGFyYW1ldGVycyBvZiB0eXBlIHN0cmluZyBhcnJheVxyXG4gICAqIEBwYXJhbSBIdHRwT3B0aW9ucyBjb250YWlucyBwYXJhbWV0ZXIgb2YgdHlwZSBIdHRwT3B0aW9ucy5cclxuICAgKiBAcGFyYW0gYm9keSBjb250YWlucyBwYXJhbWV0ZXIgZm9yIGh0dHAgcHV0IGJvZHlcclxuICAgKi9cclxuICBwdWJsaWMgcHV0KHBhdGhQYXJhbXM6IHN0cmluZ1tdLCBib2R5OiBhbnksIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5hcGlQYXRoU2VydmljZS5jcmVhdGVBcGlQYXRoKHBhdGhQYXJhbXMpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaHR0cE9wdGlvbnNTZXJ2aWNlLmFwcGVuZEh0dHBPcHRpb25zKGh0dHBPcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQucHV0KGFwaVVybCwgYm9keSwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAZGVzY3JpcHRpb24gd2lsbCBleHBvc2UgZGVsZXRlIG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gcGF0aFBhcmFtcyBjb250YWlucyBwYXRoIHBhcmFtZXRlcnMgb2YgdHlwZSBzdHJpbmcgYXJyYXlcclxuICAgKiBAcGFyYW0gSHR0cE9wdGlvbnMgY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgSHR0cE9wdGlvbnMuXHJcbiAgICovXHJcbiAgcHVibGljIGRlbGV0ZShwYXRoUGFyYW1zOiBzdHJpbmdbXSwgaHR0cE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmFwaVBhdGhTZXJ2aWNlLmNyZWF0ZUFwaVBhdGgocGF0aFBhcmFtcyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5odHRwT3B0aW9uc1NlcnZpY2UuYXBwZW5kSHR0cE9wdGlvbnMoaHR0cE9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5kZWxldGUoYXBpVXJsLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSByZXF1ZXN0IG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gbWV0aG9kIGNvbnRhaW5zIHRoZSBtZXRob2QgcGFyYW1ldGVyIG9mIHR5cGUgc3RyaW5nLlxyXG4gICAqIEBwYXJhbSBwYXRoUGFyYW1zIGNvbnRhaW5zIHBhdGggcGFyYW1ldGVycyBvZiB0eXBlIHN0cmluZyBhcnJheS5cclxuICAgKiBAcGFyYW0gSHR0cE9wdGlvbnMgY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgSHR0cE9wdGlvbnMuXHJcbiAgICovXHJcbiAgcHVibGljIHJlcXVlc3QobWV0aG9kOiBzdHJpbmcsIHBhdGhQYXJhbXM6IHN0cmluZ1tdLCBodHRwT3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmh0dHBPcHRpb25zU2VydmljZS5hcHBlbmRIdHRwT3B0aW9ucyhodHRwT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnJlcXVlc3QobWV0aG9kLCBhcGlVcmwsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHdpbGwgZXhwb3NlIGhlYWQgbWV0aG9kIG9mIGh0dHAgY2xpZW50LlxyXG4gICAqIEBwYXJhbSBwYXRoUGFyYW1zIGNvbnRhaW5zIHBhdGggcGFyYW1ldGVycyBvZiB0eXBlIHN0cmluZyBhcnJheS5cclxuICAgKiBAcGFyYW0gSHR0cE9wdGlvbnMgY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgSHR0cE9wdGlvbnMuXHJcbiAgICovXHJcbiAgcHVibGljIGhlYWQocGF0aFBhcmFtczogc3RyaW5nW10sIGh0dHBPcHRpb25zPzogSHR0cE9wdGlvbnMpOiBPYnNlcnZhYmxlPG9iamVjdD4ge1xyXG4gICAgY29uc3QgYXBpVXJsID0gdGhpcy5hcGlQYXRoU2VydmljZS5jcmVhdGVBcGlQYXRoKHBhdGhQYXJhbXMpO1xyXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMuaHR0cE9wdGlvbnNTZXJ2aWNlLmFwcGVuZEh0dHBPcHRpb25zKGh0dHBPcHRpb25zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuaGVhZChhcGlVcmwsIG9wdGlvbnMpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQGRlc2NyaXB0aW9uIHdpbGwgZXhwb3NlIGpzb25wIG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gcGF0aFBhcmFtcyBjb250YWlucyBwYXRoIHBhcmFtZXRlcnMgb2YgdHlwZSBzdHJpbmcgYXJyYXkuXHJcbiAgICogQHBhcmFtIGNhbGxiYWNrRm4gY29udGFpbnMgcGFyYW1ldGVyIG9mIHR5cGUgc3RyaW5nLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBqc29ucChwYXRoUGFyYW1zOiBzdHJpbmdbXSwgY2FsbGJhY2tGbjogc3RyaW5nKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuanNvbnAoYXBpVXJsLCBjYWxsYmFja0ZuKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSBvcHRpb25zIG1ldGhvZCBvZiBodHRwIGNsaWVudC5cclxuICAgKiBAcGFyYW0gcGF0aFBhcmFtcyBjb250YWlucyBwYXRoIHBhcmFtZXRlcnMgb2YgdHlwZSBzdHJpbmcgYXJyYXkuXHJcbiAgICogQHBhcmFtIEh0dHBPcHRpb25zIGNvbnRhaW5zIHBhcmFtZXRlciBvZiB0eXBlIEh0dHBPcHRpb25zLlxyXG4gICAqL1xyXG4gIHB1YmxpYyBvcHRpb25zKHBhdGhQYXJhbXM6IHN0cmluZ1tdLCBodHRwT3B0aW9ucz86IEh0dHBPcHRpb25zKTogT2JzZXJ2YWJsZTxvYmplY3Q+IHtcclxuICAgIGNvbnN0IGFwaVVybCA9IHRoaXMuYXBpUGF0aFNlcnZpY2UuY3JlYXRlQXBpUGF0aChwYXRoUGFyYW1zKTtcclxuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLmh0dHBPcHRpb25zU2VydmljZS5hcHBlbmRIdHRwT3B0aW9ucyhodHRwT3B0aW9ucyk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50Lm9wdGlvbnMoYXBpVXJsLCBvcHRpb25zKTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEBkZXNjcmlwdGlvbiB3aWxsIGV4cG9zZSBwYXRjaCBtZXRob2Qgb2YgaHR0cCBjbGllbnQuXHJcbiAgICogQHBhcmFtIHBhdGhQYXJhbXMgY29udGFpbnMgcGF0aCBwYXJhbWV0ZXJzIG9mIHR5cGUgc3RyaW5nIGFycmF5LlxyXG4gICAqIEBwYXJhbSBib2R5IG9mIHR5cGUgYW55LlxyXG4gICAqIEBwYXJhbSBIdHRwT3B0aW9ucyBjb250YWlucyBwYXJhbWV0ZXIgb2YgdHlwZSBIdHRwT3B0aW9ucy5cclxuICAgKi9cclxuICBwdWJsaWMgcGF0Y2gocGF0aFBhcmFtczogc3RyaW5nW10sIGJvZHk6IGFueSwgaHR0cE9wdGlvbnM/OiBIdHRwT3B0aW9ucyk6IE9ic2VydmFibGU8b2JqZWN0PiB7XHJcbiAgICBjb25zdCBhcGlVcmwgPSB0aGlzLmFwaVBhdGhTZXJ2aWNlLmNyZWF0ZUFwaVBhdGgocGF0aFBhcmFtcyk7XHJcbiAgICBjb25zdCBvcHRpb25zID0gdGhpcy5odHRwT3B0aW9uc1NlcnZpY2UuYXBwZW5kSHR0cE9wdGlvbnMoaHR0cE9wdGlvbnMpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wYXRjaChhcGlVcmwsIGJvZHksIG9wdGlvbnMpO1xyXG4gIH1cclxufVxyXG4iXX0=