UNPKG

@anexia/ngx-interceptor-tools

Version:

This library provides a toolset for common http interceptor tasks, like request matching.

60 lines (51 loc) 1.74 kB
function sanitizeUrlOrFragment(urlOrFragment) { return String(urlOrFragment) .replace(/[:\/&?]/g, '') .trim(); } const URL_WITH_PARAMS_SELECTOR = (request) => { return sanitizeUrlOrFragment(request.urlWithParams); }; const URL_SELECTOR = (request) => { return sanitizeUrlOrFragment(request.url); }; class RegExMatcher { constructor(patterns, selector = URL_WITH_PARAMS_SELECTOR) { this.patterns = patterns; this.selector = selector; if (patterns.length === 0) { throw new Error('RegExMatcher provided patterns are empty.'); } } match(request) { const selector = this.selector ? this.selector(request) : ''; return Boolean(this.patterns.filter(pattern => Boolean(pattern.test(selector))).length); } } class UrlFragmentMatcher { constructor(urlFragments, selector = URL_WITH_PARAMS_SELECTOR) { this.urlFragments = urlFragments; this.selector = selector; } match(request) { const selector = this.selector(request); return Boolean(this.urlFragments.filter(fragment => selector.indexOf(fragment) !== -1).length); } } function requestBodySerializer(request, bodyParams) { const postBody = []; bodyParams.forEach(param => { if (request.body.hasOwnProperty(param)) { postBody.push(request.body[param]); } }); return [postBody.join('_')].join('_'); } /* * Public API Surface of ngx-interceptor-tools */ /** * Generated bundle index. Do not edit. */ export { RegExMatcher, URL_SELECTOR, URL_WITH_PARAMS_SELECTOR, UrlFragmentMatcher, requestBodySerializer, sanitizeUrlOrFragment }; //# sourceMappingURL=anexia-ngx-interceptor-tools.js.map