@keycloakify/keycloak-admin-ui
Version:
Repackaged Keycloak Admin UI
28 lines • 966 B
JavaScript
const POLICY_SEPARATOR = " and ";
export const serializePolicy = (policies, submitted) => policies
.map((policy) => `${policy.id}(${submitted[policy.id]})`)
.join(POLICY_SEPARATOR);
export const parsePolicy = (value, policies) => value
.split(POLICY_SEPARATOR)
.map(parsePolicyToken)
.reduce((result, { id, value }) => {
const matchingPolicy = policies.find((policy) => policy.id === id);
if (!matchingPolicy) {
return result;
}
return result.concat({ ...matchingPolicy, value });
}, []);
function parsePolicyToken(token) {
const valueStart = token.indexOf("(");
if (valueStart === -1) {
return { id: token.trim() };
}
const id = token.substring(0, valueStart).trim();
const valueEnd = token.lastIndexOf(")");
if (valueEnd === -1) {
return { id };
}
const value = token.substring(valueStart + 1, valueEnd).trim();
return { id, value };
}
//# sourceMappingURL=util.js.map