@aws-amplify/storage
Version:
Storage category of aws-amplify
31 lines (29 loc) • 1.54 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
/**
* Given the Cognito user groups associated to current user session
* and all the user group configurations defined by backend.
* This function returns the user group with the highest precedence.
* Reference: https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pools-user-groups.html#assigning-precedence-values-to-groups
*
* @param {UserGroupConfig} userGroupsFromConfig - User groups with their precedence values based on Amplify outputs.
* @param {string[]} currentUserGroups - The list of current user's groups.
* @returns {string | undefined} - The user group with the highest precedence (0), or undefined if no matching group is found.
*/
const getHighestPrecedenceUserGroup = (userGroupsFromConfig, currentUserGroups) => {
if (userGroupsFromConfig && currentUserGroups) {
const precedenceMap = userGroupsFromConfig.reduce((acc, group) => {
Object.entries(group).forEach(([key, value]) => {
acc[key] = value.precedence;
});
return acc;
}, {});
const sortedUserGroup = currentUserGroups
.filter(group => Object.prototype.hasOwnProperty.call(precedenceMap, group))
.sort((a, b) => precedenceMap[a] - precedenceMap[b]);
return sortedUserGroup[0];
}
return undefined;
};
export { getHighestPrecedenceUserGroup };
//# sourceMappingURL=getHighestPrecedenceUserGroup.mjs.map