ngx-http-configure
Version:
Angular (6+) helpers for configure HTTP interceptors and services.
43 lines • 3.25 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { HttpParams } from '@angular/common/http';
/**
* @template T
* @param {?} options
* @param {?} predicate
* @param {?=} keyPrefix
* @return {?}
*/
export function filterOptions(options, predicate, keyPrefix) {
if (keyPrefix === void 0) { keyPrefix = ''; }
return Object.keys(options).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
function (acc, key) {
if (predicate(key)) {
/** @type {?} */
var prefixedKey = "" + keyPrefix + key;
/** @type {?} */
var value_1 = options[key];
if (value_1 instanceof HttpParams) {
value_1 = value_1.keys().reduce((/**
* @param {?} p
* @param {?} k
* @return {?}
*/
function (p, k) {
var _a;
return (tslib_1.__assign({}, p, (_a = {}, _a[k] = value_1.get(k), _a)));
}), {});
}
acc[prefixedKey] = value_1;
}
return acc;
}), (/** @type {?} */ ({})));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaHR0cC1jb25maWd1cmUvIiwic291cmNlcyI6WyJmaWx0ZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7QUFHbEQsTUFBTSxVQUFVLGFBQWEsQ0FBSSxPQUE2QixFQUFFLFNBQW1DLEVBQUUsU0FBc0I7SUFBdEIsMEJBQUEsRUFBQSxjQUFzQjtJQUN6SCxPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsTUFBTTs7Ozs7SUFBQyxVQUFDLEdBQUcsRUFBRSxHQUFHO1FBQzFDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFOztnQkFDWixXQUFXLEdBQUcsS0FBRyxTQUFTLEdBQUcsR0FBSzs7Z0JBQ3BDLE9BQUssR0FBRyxPQUFPLENBQUMsR0FBRyxDQUFDO1lBQ3hCLElBQUksT0FBSyxZQUFZLFVBQVUsRUFBRTtnQkFDL0IsT0FBSyxHQUFHLE9BQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNOzs7OztnQkFBQyxVQUFDLENBQUMsRUFBRSxDQUFDOztvQkFBSyxPQUFBLHNCQUFNLENBQUMsZUFBRyxDQUFDLElBQUcsT0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBRztnQkFBN0IsQ0FBNkIsR0FBRSxFQUFFLENBQUMsQ0FBQzthQUMxRTtZQUNELEdBQUcsQ0FBQyxXQUFXLENBQUMsR0FBRyxPQUFLLENBQUM7U0FDMUI7UUFDRCxPQUFPLEdBQUcsQ0FBQztJQUNiLENBQUMsR0FBRSxtQkFBQSxFQUFFLEVBQUssQ0FBQyxDQUFDO0FBQ2QsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBQYXJhbXMgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBIdHRwQ29uZmlndXJlT3B0aW9ucyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgZnVuY3Rpb24gZmlsdGVyT3B0aW9uczxUPihvcHRpb25zOiBIdHRwQ29uZmlndXJlT3B0aW9ucywgcHJlZGljYXRlOiAoa2V5OiBzdHJpbmcpID0+IGJvb2xlYW4sIGtleVByZWZpeDogc3RyaW5nID0gJycpOiBUIHtcbiAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZSgoYWNjLCBrZXkpID0+IHtcbiAgICBpZiAocHJlZGljYXRlKGtleSkpIHtcbiAgICAgIGNvbnN0IHByZWZpeGVkS2V5ID0gYCR7a2V5UHJlZml4fSR7a2V5fWA7XG4gICAgICBsZXQgdmFsdWUgPSBvcHRpb25zW2tleV07XG4gICAgICBpZiAodmFsdWUgaW5zdGFuY2VvZiBIdHRwUGFyYW1zKSB7XG4gICAgICAgIHZhbHVlID0gdmFsdWUua2V5cygpLnJlZHVjZSgocCwgaykgPT4gKHsgLi4ucCwgW2tdOiB2YWx1ZS5nZXQoaykgfSksIHt9KTtcbiAgICAgIH1cbiAgICAgIGFjY1twcmVmaXhlZEtleV0gPSB2YWx1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGFjYztcbiAgfSwge30gYXMgVCk7XG59XG4iXX0=