@nimpl/router
Version:
Edge router for next.js apps (i18n, basePath, rewrites, redirects)
41 lines (40 loc) • 1.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.createRuleTester = void 0;
const checkers_1 = require("../checkers");
const headers_1 = require("next/headers");
const createRuleTester = () => {
const stores = {
headers: null,
cookies: null,
};
return async (url, rule) => {
const checker = checkers_1.checkers[rule.type];
if (checker) {
let store = null;
if (rule.type === "header") {
if (stores.headers) {
store = stores.headers;
}
else {
store = await (0, headers_1.headers)();
stores.headers = store;
}
}
else if (rule.type === "cookie") {
if (stores.cookies) {
store = stores.cookies;
}
else {
store = await (0, headers_1.cookies)();
stores.cookies = store;
}
}
// todo add correct types
// eslint-disable-next-line @typescript-eslint/no-explicit-any
return checker(url, rule, store);
}
return { match: false, groups: {} };
};
};
exports.createRuleTester = createRuleTester;