UNPKG

sitecore-jss-rule-engine-nextjs

Version:

58 lines (57 loc) 2.26 kB
"use strict"; //@ts-ignore //import { getRuleEngineInstance } from 'sitecore-jss-rule-engine'; Object.defineProperty(exports, "__esModule", { value: true }); exports.getScPersonalizedVariantIds = exports.getScPersonalizedRewrite = exports.normalizePersonalizedRewrite = exports.SC_VARIANT_PREFIX = exports.generateAllBinaryStrings = void 0; // Function to generate all binary strings 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); } exports.generateAllBinaryStrings = generateAllBinaryStrings; exports.SC_VARIANT_PREFIX = "_scvariant"; function normalizePersonalizedRewrite(pathname) { if (!pathname.includes(exports.SC_VARIANT_PREFIX)) { return pathname; } var result = pathname.match("".concat(exports.SC_VARIANT_PREFIX, ".*?(?:\\/|$)")); return result === null ? pathname : pathname.replace(result[0], ''); } exports.normalizePersonalizedRewrite = normalizePersonalizedRewrite; function getScPersonalizedRewrite(pathname, variantId) { var path = pathname.startsWith('/') ? pathname : '/' + pathname; var result = "/".concat(exports.SC_VARIANT_PREFIX).concat(variantId).concat(path); return result; } exports.getScPersonalizedRewrite = getScPersonalizedRewrite; 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; } exports.getScPersonalizedVariantIds = getScPersonalizedVariantIds;