ngx-http-configure
Version:
Angular (6+) helpers for configure HTTP interceptors and services.
38 lines • 3.06 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { HttpParams } from '@angular/common/http';
/**
* @template T
* @param {?} options
* @param {?} predicate
* @param {?=} keyPrefix
* @return {?}
*/
export function filterOptions(options, predicate, keyPrefix = '') {
return Object.keys(options).reduce((/**
* @param {?} acc
* @param {?} key
* @return {?}
*/
(acc, key) => {
if (predicate(key)) {
/** @type {?} */
const prefixedKey = `${keyPrefix}${key}`;
/** @type {?} */
let value = options[key];
if (value instanceof HttpParams) {
value = value.keys().reduce((/**
* @param {?} p
* @param {?} k
* @return {?}
*/
(p, k) => (Object.assign({}, p, { [k]: value.get(k) }))), {});
}
acc[prefixedKey] = value;
}
return acc;
}), (/** @type {?} */ ({})));
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbnMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtaHR0cC1jb25maWd1cmUvIiwic291cmNlcyI6WyJmaWx0ZXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQUdsRCxNQUFNLFVBQVUsYUFBYSxDQUFJLE9BQTZCLEVBQUUsU0FBbUMsRUFBRSxZQUFvQixFQUFFO0lBQ3pILE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNOzs7OztJQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsRUFBRSxFQUFFO1FBQzlDLElBQUksU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFOztrQkFDWixXQUFXLEdBQUcsR0FBRyxTQUFTLEdBQUcsR0FBRyxFQUFFOztnQkFDcEMsS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUM7WUFDeEIsSUFBSSxLQUFLLFlBQVksVUFBVSxFQUFFO2dCQUMvQixLQUFLLEdBQUcsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU07Ozs7O2dCQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsbUJBQU0sQ0FBQyxJQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBRyxHQUFFLEVBQUUsQ0FBQyxDQUFDO2FBQzFFO1lBQ0QsR0FBRyxDQUFDLFdBQVcsQ0FBQyxHQUFHLEtBQUssQ0FBQztTQUMxQjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQyxHQUFFLG1CQUFBLEVBQUUsRUFBSyxDQUFDLENBQUM7QUFDZCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IEh0dHBDb25maWd1cmVPcHRpb25zIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBmaWx0ZXJPcHRpb25zPFQ+KG9wdGlvbnM6IEh0dHBDb25maWd1cmVPcHRpb25zLCBwcmVkaWNhdGU6IChrZXk6IHN0cmluZykgPT4gYm9vbGVhbiwga2V5UHJlZml4OiBzdHJpbmcgPSAnJyk6IFQge1xuICByZXR1cm4gT2JqZWN0LmtleXMob3B0aW9ucykucmVkdWNlKChhY2MsIGtleSkgPT4ge1xuICAgIGlmIChwcmVkaWNhdGUoa2V5KSkge1xuICAgICAgY29uc3QgcHJlZml4ZWRLZXkgPSBgJHtrZXlQcmVmaXh9JHtrZXl9YDtcbiAgICAgIGxldCB2YWx1ZSA9IG9wdGlvbnNba2V5XTtcbiAgICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIEh0dHBQYXJhbXMpIHtcbiAgICAgICAgdmFsdWUgPSB2YWx1ZS5rZXlzKCkucmVkdWNlKChwLCBrKSA9PiAoeyAuLi5wLCBba106IHZhbHVlLmdldChrKSB9KSwge30pO1xuICAgICAgfVxuICAgICAgYWNjW3ByZWZpeGVkS2V5XSA9IHZhbHVlO1xuICAgIH1cbiAgICByZXR1cm4gYWNjO1xuICB9LCB7fSBhcyBUKTtcbn1cbiJdfQ==