Innovenergy_trunk/frontend/node_modules/testcafe-hammerhead/lib/request-pipeline/request-hooks/request-is-match-rule.js

46 lines
1.6 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const url_1 = require("../../utils/url");
const lodash_1 = require("lodash");
async function matchUsingFunctionOptions(rule, requestInfo) {
return !!await rule.options.call(rule, requestInfo);
}
function matchUrl(optionValue, checkedValue) {
if (optionValue === void 0)
return true;
if (typeof optionValue === 'string') {
optionValue = (0, url_1.ensureOriginTrailingSlash)(optionValue);
return optionValue === checkedValue;
}
else if ((0, lodash_1.isRegExp)(optionValue))
return optionValue.test(checkedValue);
return false;
}
function matchMethod(optionValue, checkedValue) {
if (optionValue === void 0)
return true;
if (typeof optionValue === 'string')
return optionValue === checkedValue;
return false;
}
function matchIsAjax(optionValue, checkedValue) {
if (optionValue === void 0)
return true;
if (typeof optionValue === 'boolean')
return optionValue === checkedValue;
return false;
}
function matchUsingObjectOptions(rule, requestInfo) {
const ruleOptions = rule.options;
return matchUrl(ruleOptions.url, requestInfo.url) &&
matchMethod(ruleOptions.method, requestInfo.method) &&
matchIsAjax(ruleOptions.isAjax, requestInfo.isAjax);
}
async function default_1(rule, requestInfo) {
if ((0, lodash_1.isFunction)(rule.options))
return matchUsingFunctionOptions(rule, requestInfo);
return matchUsingObjectOptions(rule, requestInfo);
}
exports.default = default_1;module.exports = exports.default;