@anexia/ngx-interceptor-tools
Version:
This library provides a toolset for common http interceptor tasks, like request matching.
15 lines • 2.72 kB
JavaScript
import { URL_WITH_PARAMS_SELECTOR } from "../selectors/url-with-params-selector";
export 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);
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnZXgtbWF0Y2hlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1pbnRlcmNlcHRvci10b29scy9zcmMvbGliL3N0cmF0ZWdpZXMvcmVnZXgtbWF0Y2hlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEVBQUMsd0JBQXdCLEVBQUMsTUFBTSx1Q0FBdUMsQ0FBQztBQUkvRSxNQUFNLE9BQU8sWUFBWTtJQUN2QixZQUNTLFFBQWtCLEVBQ2xCLFdBQW9DLHdCQUF3QjtRQUQ1RCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQW9EO1FBRW5FLElBQUcsUUFBUSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQywyQ0FBMkMsQ0FBQyxDQUFDO1NBQzlEO0lBR0gsQ0FBQztJQUVNLEtBQUssQ0FBQyxPQUF5QjtRQUNwQyxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFDN0QsT0FBTyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDMUYsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtSZXF1ZXN0TWF0Y2hTdHJhdGVneX0gZnJvbSBcIi4uL2ludGVyZmFjZXMvcmVxdWVzdC1tYXRjaC1zdHJhdGVneVwiO1xuaW1wb3J0IHtIdHRwUmVxdWVzdH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQge1VSTF9XSVRIX1BBUkFNU19TRUxFQ1RPUn0gZnJvbSBcIi4uL3NlbGVjdG9ycy91cmwtd2l0aC1wYXJhbXMtc2VsZWN0b3JcIjtcbmltcG9ydCB7UmVxdWVzdFNlbGVjdG9yU3RyYXRlZ3l9IGZyb20gXCIuLi9pbnRlcmZhY2VzL3JlcXVlc3Qtc2VsZWN0b3Itc3RyYXRlZ3lcIjtcblxuXG5leHBvcnQgY2xhc3MgUmVnRXhNYXRjaGVyIGltcGxlbWVudHMgUmVxdWVzdE1hdGNoU3RyYXRlZ3kge1xuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHBhdHRlcm5zOiBSZWdFeHBbXSxcbiAgICBwdWJsaWMgc2VsZWN0b3I6IFJlcXVlc3RTZWxlY3RvclN0cmF0ZWd5ID0gVVJMX1dJVEhfUEFSQU1TX1NFTEVDVE9SKSB7XG5cbiAgICBpZihwYXR0ZXJucy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignUmVnRXhNYXRjaGVyIHByb3ZpZGVkIHBhdHRlcm5zIGFyZSBlbXB0eS4nKTtcbiAgICB9XG5cblxuICB9XG5cbiAgcHVibGljIG1hdGNoKHJlcXVlc3Q6IEh0dHBSZXF1ZXN0PGFueT4pOiBib29sZWFuIHtcbiAgICBjb25zdCBzZWxlY3RvciA9IHRoaXMuc2VsZWN0b3IgPyB0aGlzLnNlbGVjdG9yKHJlcXVlc3QpIDogJyc7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5wYXR0ZXJucy5maWx0ZXIocGF0dGVybiA9PiBCb29sZWFuKHBhdHRlcm4udGVzdChzZWxlY3RvcikpKS5sZW5ndGgpO1xuICB9XG59XG4iXX0=