UNPKG

@aws-amplify/storage

Version:

Storage category of aws-amplify

34 lines (32 loc) 1.69 kB
'use strict'; // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 Object.defineProperty(exports, "__esModule", { value: true }); exports.getHighestPrecedenceUserGroup = void 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; }; exports.getHighestPrecedenceUserGroup = getHighestPrecedenceUserGroup; //# sourceMappingURL=getHighestPrecedenceUserGroup.js.map