ngx-http-configure
Version:
Angular (6+) helpers for configure HTTP interceptors and services.
1 lines • 5.12 kB
Source Map (JSON)
{"version":3,"file":"ngx-http-configure.js","sources":["ng://ngx-http-configure/constants.ts","ng://ngx-http-configure/filter-options.ts","ng://ngx-http-configure/configure.ts","ng://ngx-http-configure/selector-predicate.ts","ng://ngx-http-configure/reconfigure.ts"],"sourcesContent":["export const HTTP_OPTIONS_KEYS = [\n 'headers',\n 'observe',\n 'params',\n 'reportProgress',\n 'responseType',\n 'withCredentials',\n];\n\nexport const HTTP_OPTION_PREFIX = '~';\n","import { HttpParams } from '@angular/common/http';\nimport { HttpConfigureOptions } from './types';\n\nexport function filterOptions<T>(options: HttpConfigureOptions, predicate: (key: string) => boolean, keyPrefix: string = ''): T {\n return Object.keys(options).reduce((acc, key) => {\n if (predicate(key)) {\n const prefixedKey = `${keyPrefix}${key}`;\n let value = options[key];\n if (value instanceof HttpParams) {\n value = value.keys().reduce((p, k) => ({ ...p, [k]: value.get(k) }), {});\n }\n acc[prefixedKey] = value;\n }\n return acc;\n }, {} as T);\n}\n","import { HttpConfigureOptions, HttpOptions } from './types';\nimport { HTTP_OPTION_PREFIX, HTTP_OPTIONS_KEYS } from './constants';\nimport { filterOptions } from './filter-options';\n\n/**\n * Configure the http client options tu extend functionality and use in interceptors.\n * @param options Set of extended http client options\n */\nexport function configure(options: HttpConfigureOptions): HttpOptions {\n const safeOptions = filterOptions<HttpOptions>(options, (key) => HTTP_OPTIONS_KEYS.includes(key));\n const extraParams = filterOptions(options, (key) => !HTTP_OPTIONS_KEYS.includes(key), HTTP_OPTION_PREFIX);\n safeOptions.params = {...safeOptions.params, ...extraParams};\n return safeOptions;\n}\n","import { HTTP_OPTION_PREFIX } from './constants';\n\nexport function selectorPredicate(selector: string[]): (key: string) => boolean {\n return key => Array.isArray(selector)\n ? selector.map(sel => `${HTTP_OPTION_PREFIX}${sel}`).includes(key)\n : true;\n}\n","import { HttpParams, HttpRequest } from '@angular/common/http';\nimport { HttpReconfiguredOptions } from './types';\nimport { HTTP_OPTION_PREFIX } from './constants';\nimport { selectorPredicate } from './selector-predicate';\n\n/**\n * Re-configure a request previously configured with this library.\n * @param request The current http request\n * @param selector Apply params to array else ignore this filters\n */\nexport function reconfigure(request: HttpRequest<any>, selector?: string[]): HttpReconfiguredOptions {\n const predicate = selectorPredicate(selector);\n const { config, params } = request.params.keys().reduce((acc, key) => {\n const value = request.params.get(key);\n if (key.startsWith(HTTP_OPTION_PREFIX) && predicate(key)) {\n const unprefixedKey = key.replace(HTTP_OPTION_PREFIX, '');\n acc.config[unprefixedKey] = value;\n } else {\n acc.params = acc.params.set(key, value);\n }\n return acc;\n }, { config: {}, params: new HttpParams() });\n return { config, request: request.clone({ params }) };\n}\n"],"names":[],"mappings":";;;;;;;MAAa,iBAAiB,GAAG;IAC/B,SAAS;IACT,SAAS;IACT,QAAQ;IACR,gBAAgB;IAChB,cAAc;IACd,iBAAiB;CAClB;;MAEY,kBAAkB,GAAG,GAAG;;;;;;ACTrC;;;;;;;AAGA,SAAgB,aAAa,CAAI,OAA6B,EAAE,SAAmC,EAAE,YAAoB,EAAE;IACzH,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM;;;;;IAAC,CAAC,GAAG,EAAE,GAAG;QAC1C,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;;kBACZ,WAAW,GAAG,GAAG,SAAS,GAAG,GAAG,EAAE;;gBACpC,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;YACxB,IAAI,KAAK,YAAY,UAAU,EAAE;gBAC/B,KAAK,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM;;;;;gBAAC,CAAC,CAAC,EAAE,CAAC,wBAAW,CAAC,IAAE,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAG,GAAE,EAAE,CAAC,CAAC;aAC1E;YACD,GAAG,CAAC,WAAW,CAAC,GAAG,KAAK,CAAC;SAC1B;QACD,OAAO,GAAG,CAAC;KACZ,sBAAE,EAAE,GAAM,CAAC;AACd,CAAC;;;;;;ACdD;;;;;AAOA,SAAgB,SAAS,CAAC,OAA6B;;UAC/C,WAAW,GAAG,aAAa,CAAc,OAAO;;;;IAAE,CAAC,GAAG,KAAK,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAC;;UAC3F,WAAW,GAAG,aAAa,CAAC,OAAO;;;;IAAE,CAAC,GAAG,KAAK,CAAC,iBAAiB,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAE,kBAAkB,CAAC;IACzG,WAAW,CAAC,MAAM,qBAAO,WAAW,CAAC,MAAM,EAAK,WAAW,CAAC,CAAC;IAC7D,OAAO,WAAW,CAAC;AACrB,CAAC;;;;;;ACbD;;;;AAEA,SAAgB,iBAAiB,CAAC,QAAkB;IAClD;;;;IAAO,GAAG,IAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC;UACjC,QAAQ,CAAC,GAAG;;;;QAAC,GAAG,IAAI,GAAG,kBAAkB,GAAG,GAAG,EAAE,EAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;UAChE,IAAI,EAAC;AACX,CAAC;;;;;;ACND;;;;;;AAUA,SAAgB,WAAW,CAAC,OAAyB,EAAE,QAAmB;;UAClE,SAAS,GAAG,iBAAiB,CAAC,QAAQ,CAAC;UACvC,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,MAAM;;;;;IAAC,CAAC,GAAG,EAAE,GAAG;;cACzD,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC;QACrC,IAAI,GAAG,CAAC,UAAU,CAAC,kBAAkB,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,EAAE;;kBAClD,aAAa,GAAG,GAAG,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;YACzD,GAAG,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,KAAK,CAAC;SACnC;aAAM;YACL,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACzC;QACD,OAAO,GAAG,CAAC;KACZ,GAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,UAAU,EAAE,EAAE,CAAC;IAC5C,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;AACxD,CAAC;;;;"}