UNPKG

@jss-rule-engine/edge

Version:

49 lines (48 loc) 1.66 kB
// Function to generate all binary strings export function generateAllBinaryStrings(n, i, resultArr, arr) { if (i == n) { var result = ""; for (var i_1 = 0; i_1 < n; i_1++) { result += arr[i_1]; } if (arr.indexOf(1) != -1) { resultArr.push(result); } return; } // First assign "0" at ith position // and try for all other permutations // for remaining positions arr[i] = 0; generateAllBinaryStrings(n, i + 1, resultArr, arr); // And then assign "1" at ith position // and try for all other permutations // for remaining positions arr[i] = 1; generateAllBinaryStrings(n, i + 1, resultArr, arr); } export var SC_VARIANT_PREFIX = "_scvariant"; export function normalizePersonalizedRewrite(pathname) { if (!pathname.includes(SC_VARIANT_PREFIX)) { return pathname; } var result = pathname.match("".concat(SC_VARIANT_PREFIX, ".*?(?:\\/|$)")); return result === null ? pathname : pathname.replace(result[0], ''); } export function getScPersonalizedRewrite(pathname, variantId) { var path = pathname.startsWith('/') ? pathname : '/' + pathname; var result = "/".concat(SC_VARIANT_PREFIX).concat(variantId).concat(path); return result; } export function getScPersonalizedVariantIds(parsedRule) { var _a; var result = []; if (parsedRule) { var ruleCount = (_a = parsedRule.rules) === null || _a === void 0 ? void 0 : _a.length; var arr = new Array(ruleCount); arr.fill(0); generateAllBinaryStrings(ruleCount, 0, result, arr); return result; } return null; }