UNPKG

@ema/js-base-library

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.

178 lines 12.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { Util } from "../utils/util"; export class Http { constructor() { this.optionsDefault = { cache: 'no-cache', // *default, no-cache, reload, force-cache, only-if-cached credentials: 'same-origin', // include, same-origin, *omit (default) headers: {}, mode: 'same-origin', // no-cors, cors, *same-origin (default), method: 'GET', }; this._interceptors = []; } /** * @param {?} url * @param {?=} options * @return {?} */ get(url, options = {}) { return tslib_1.__awaiter(this, void 0, void 0, function* () { /** @type {?} */ let preflight = this.preflightGet(url, options); return yield fetch(preflight.url, preflight.options) .then((/** * @param {?} response * @return {?} */ response => response.json())) // or text() or blob() etc. .then((/** * @param {?} data * @return {?} */ data => { return data; })) .catch((/** * @param {?} err * @return {?} */ err => { console.error(err); })); }); } /** * @param {?} url * @param {?} object * @param {?} options * @return {?} */ put(url, object, options) { } /** * @param {?} url * @param {?} object * @param {?} options * @return {?} */ post(url, object, options) { } /** * @param {?} url * @param {?} object * @param {?} options * @return {?} */ delete(url, object, options) { } /** * @param {?} url * @param {?=} options * @return {?} */ preflightGet(url, options = {}) { /** @type {?} */ let defaults = Util.copy(this.optionsDefault); options = Object.assign({}, defaults, options); if (options.params) { url += (url.indexOf('?') === -1 ? '?' : '&') + this.queryParams(options.params); delete options.params; } /** @type {?} */ let parsed = this.applyInterceptors({ type: 'request', url: url, options: options }); url = parsed[0]; options = parsed[1]; return { url: url, options: options }; } /** * @param {?} params * @return {?} */ queryParams(params) { return Object.keys(params) .map((/** * @param {?} k * @return {?} */ k => encodeURIComponent(k) + '=' + encodeURIComponent(params[k]))) .join('&'); } /** * @param {?} options * @return {?} */ applyInterceptors(options) { /** @type {?} */ let parsed; if (options.type === 'request') { parsed = [options.url, options.options]; this.interceptors.forEach((/** * @param {?} interceptor * @return {?} */ (interceptor) => { if (interceptor.request) { parsed = interceptor.request(parsed[0], parsed[1]); // console.log(parsed.url); // if(parsed.url !== options.url) {} } })); return parsed; } } /** * @return {?} */ flushInterceptors() { this._interceptors = []; } /** * @param {?} obj * @return {?} */ registerInterceptor(obj) { this._interceptors.push(obj); } /** * @param {?} obj * @return {?} */ unregisterInterceptor(obj) { /** @type {?} */ let i = 0; this._interceptors.forEach((/** * @param {?} interceptor * @return {?} */ (interceptor) => { if (interceptor === obj) { this._interceptors.splice(i, 1); } i++; })); } /** * @return {?} */ get interceptors() { return this._interceptors; } } if (false) { /** @type {?} */ Http.prototype.optionsDefault; /** * @type {?} * @private */ Http.prototype._interceptors; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaHR0cC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BlbWEvanMtYmFzZS1saWJyYXJ5LyIsInNvdXJjZXMiOlsibGliL2h0dHAvaHR0cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBQyxJQUFJLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFbkMsTUFBTSxPQUFPLElBQUk7SUFhYjtRQVhPLG1CQUFjLEdBQUc7WUFDcEIsS0FBSyxFQUFFLFVBQVU7O1lBQ2pCLFdBQVcsRUFBRSxhQUFhOztZQUMxQixPQUFPLEVBQUcsRUFBRTtZQUNaLElBQUksRUFBRSxhQUFhOztZQUNuQixNQUFNLEVBQUUsS0FBSztTQUdoQixDQUFDO1FBQ00sa0JBQWEsR0FBRyxFQUFFLENBQUM7SUFFWCxDQUFDOzs7Ozs7SUFFWCxHQUFHLENBQUMsR0FBVyxFQUFFLFVBQWUsRUFBRTs7O2dCQUVoQyxTQUFTLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDO1lBRS9DLE9BQU8sTUFBTSxLQUFLLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxTQUFTLENBQUMsT0FBTyxDQUFDO2lCQUMvQyxJQUFJOzs7O1lBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUMsQ0FBQywyQkFBMkI7aUJBQzdELElBQUk7Ozs7WUFBQyxJQUFJLENBQUMsRUFBRTtnQkFDVCxPQUFPLElBQUksQ0FBQTtZQUNmLENBQUMsRUFBQztpQkFDRCxLQUFLOzs7O1lBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ1QsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUN2QixDQUFDLEVBQUMsQ0FBQztRQUNYLENBQUM7S0FBQTs7Ozs7OztJQUVELEdBQUcsQ0FBQyxHQUFXLEVBQUUsTUFBVyxFQUFFLE9BQVk7SUFFMUMsQ0FBQzs7Ozs7OztJQUVELElBQUksQ0FBQyxHQUFXLEVBQUUsTUFBVyxFQUFFLE9BQVk7SUFFM0Ms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O0lBbEdHLDhCQVFFOzs7OztJQUNGLDZCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7VXRpbH0gZnJvbSBcIi4uL3V0aWxzL3V0aWxcIjtcblxuZXhwb3J0IGNsYXNzIEh0dHAge1xuXG4gICAgcHVibGljIG9wdGlvbnNEZWZhdWx0ID0ge1xuICAgICAgICBjYWNoZTogJ25vLWNhY2hlJywgLy8gKmRlZmF1bHQsIG5vLWNhY2hlLCByZWxvYWQsIGZvcmNlLWNhY2hlLCBvbmx5LWlmLWNhY2hlZFxuICAgICAgICBjcmVkZW50aWFsczogJ3NhbWUtb3JpZ2luJywgLy8gaW5jbHVkZSwgc2FtZS1vcmlnaW4sICpvbWl0IChkZWZhdWx0KVxuICAgICAgICBoZWFkZXJzOiAge30sXG4gICAgICAgIG1vZGU6ICdzYW1lLW9yaWdpbicsIC8vIG5vLWNvcnMsIGNvcnMsICpzYW1lLW9yaWdpbiAoZGVmYXVsdCksXG4gICAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICAgIC8vIHJlZGlyZWN0OiAnZm9sbG93JywgLy8gbWFudWFsLCAqZm9sbG93IChkZWZhdWx0KSwgZXJyb3JcbiAgICAgICAgLy8gcmVmZXJyZXI6ICduby1yZWZlcnJlcicsIC8vICpjbGllbnQgKGRlZmF1bHQpLCBuby1yZWZlcnJlclxuICAgIH07XG4gICAgcHJpdmF0ZSBfaW50ZXJjZXB0b3JzID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgYXN5bmMgZ2V0KHVybDogc3RyaW5nLCBvcHRpb25zOiBhbnkgPSB7fSkge1xuXG4gICAgICAgIGxldCBwcmVmbGlnaHQgPSB0aGlzLnByZWZsaWdodEdldCh1cmwsIG9wdGlvbnMpXG5cbiAgICAgICAgcmV0dXJuIGF3YWl0IGZldGNoKHByZWZsaWdodC51cmwsIHByZWZsaWdodC5vcHRpb25zKVxuICAgICAgICAgICAgLnRoZW4ocmVzcG9uc2UgPT4gcmVzcG9uc2UuanNvbigpKSAvLyBvciB0ZXh0KCkgb3IgYmxvYigpIGV0Yy5cbiAgICAgICAgICAgIC50aGVuKGRhdGEgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBkYXRhXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmNhdGNoKGVyciA9PiB7XG4gICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnIpO1xuICAgICAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcHV0KHVybDogc3RyaW5nLCBvYmplY3Q6IGFueSwgb3B0aW9uczogYW55KSB7XG5cbiAgICB9XG5cbiAgICBwb3N0KHVybDogc3RyaW5nLCBvYmplY3Q6IGFueSwgb3B0aW9uczogYW55KSB7XG5cbiAgICB9XG5cbiAgICBkZWxldGUodXJsOiBzdHJpbmcsIG9iamVjdDogYW55LCBvcHRpb25zOiBhbnkpIHtcblxuICAgIH1cblxuICAgIHByZWZsaWdodEdldCh1cmw6IHN0cmluZywgb3B0aW9uczogYW55ID0ge30pIHtcbiAgICAgICAgbGV0IGRlZmF1bHRzID0gVXRpbC5jb3B5KHRoaXMub3B0aW9uc0RlZmF1bHQpO1xuICAgICAgICBvcHRpb25zID0ge1xuICAgICAgICAgICAgLi4uZGVmYXVsdHMsXG4gICAgICAgICAgICAuLi5vcHRpb25zLFxuICAgICAgICB9O1xuICAgICAgICBpZihvcHRpb25zLnBhcmFtcykge1xuICAgICAgICAgICAgdXJsICs9ICh1cmwuaW5kZXhPZignPycpID09PSAtMSA/ICc/JyA6ICcmJykgKyB0aGlzLnF1ZXJ5UGFyYW1zKG9wdGlvbnMucGFyYW1zKTtcbiAgICAgICAgICAgIGRlbGV0ZSBvcHRpb25zLnBhcmFtcztcbiAgICAgICAgfVxuICAgICAgICBsZXQgcGFyc2VkID0gdGhpcy5hcHBseUludGVyY2VwdG9ycyh7dHlwZToncmVxdWVzdCcsIHVybDogdXJsLCBvcHRpb25zOiBvcHRpb25zfSk7XG4gICAgICAgIHVybCA9IHBhcnNlZFswXTtcbiAgICAgICAgb3B0aW9ucyA9IHBhcnNlZFsxXTtcbiAgICAgICAgcmV0dXJuIHt1cmw6dXJsLCBvcHRpb25zOiBvcHRpb25zfVxuICAgIH1cblxuICAgIHF1ZXJ5UGFyYW1zKHBhcmFtcykge1xuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMocGFyYW1zKVxuICAgICAgICAgICAgLm1hcChrID0+IGVuY29kZVVSSUNvbXBvbmVudChrKSArICc9JyArIGVuY29kZVVSSUNvbXBvbmVudChwYXJhbXNba10pKVxuICAgICAgICAgICAgLmpvaW4oJyYnKTtcbiAgICB9XG5cbiAgICBhcHBseUludGVyY2VwdG9ycyhvcHRpb25zKSB7XG4gICAgICAgIGxldCBwYXJzZWQ6IGFueTtcbiAgICAgICAgaWYob3B0aW9ucy50eXBlID09PSAncmVxdWVzdCcpIHtcbiAgICAgICAgICAgIHBhcnNlZCA9IFtvcHRpb25zLnVybCwgb3B0aW9ucy5vcHRpb25zXTtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJjZXB0b3JzLmZvckVhY2goKGludGVyY2VwdG9yKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYoaW50ZXJjZXB0b3IucmVxdWVzdCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJzZWQgPSBpbnRlcmNlcHRvci5yZXF1ZXN0KHBhcnNlZFswXSwgcGFyc2VkWzFdKVxuICAgICAgICAgICAgICAgICAgICAvLyBjb25zb2xlLmxvZyhwYXJzZWQudXJsKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gaWYocGFyc2VkLnVybCAhPT0gb3B0aW9ucy51cmwpIHt9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICByZXR1cm4gcGFyc2VkO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZmx1c2hJbnRlcmNlcHRvcnMoKSB7XG4gICAgICAgIHRoaXMuX2ludGVyY2VwdG9ycyA9IFtdO1xuICAgIH1cblxuICAgIHJlZ2lzdGVySW50ZXJjZXB0b3Iob2JqOiBhbnkpIHtcbiAgICAgICAgdGhpcy5faW50ZXJjZXB0b3JzLnB1c2gob2JqKTtcbiAgICB9XG5cbiAgICB1bnJlZ2lzdGVySW50ZXJjZXB0b3Iob2JqOiBhbnkpIHtcbiAgICAgICAgbGV0IGkgPSAwO1xuICAgICAgICB0aGlzLl9pbnRlcmNlcHRvcnMuZm9yRWFjaCgoaW50ZXJjZXB0b3IpID0+IHtcbiAgICAgICAgICAgIGlmKGludGVyY2VwdG9yID09PSBvYmopIHsgdGhpcy5faW50ZXJjZXB0b3JzLnNwbGljZShpLDEpOyB9XG4gICAgICAgICAgICBpKys7XG4gICAgICAgIH0pXG4gICAgfVxuXG4gICAgZ2V0IGludGVyY2VwdG9ycyAoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pbnRlcmNlcHRvcnM7XG4gICAgfVxuXG5cblxufVxuIl19