@speckle/shared
Version:
Shared code between various Speckle JS packages
36 lines • 1.5 kB
JavaScript
import { RoleInfo } from '../../../core/constants.js';
import { InvalidRoleError } from '../errors.js';
export const isMinimumProjectRole = (role, targetRole) => {
if (!(role in RoleInfo.Stream)) {
throw new InvalidRoleError(`Invalid role ${role}`);
}
if (!(targetRole in RoleInfo.Stream)) {
throw new InvalidRoleError(`Invalid target role ${targetRole}`);
}
const roleWeight = RoleInfo.Stream[role].weight;
const targetRoleWeight = RoleInfo.Stream[targetRole].weight;
return roleWeight >= targetRoleWeight;
};
export const isMinimumServerRole = (role, targetRole) => {
if (!(role in RoleInfo.Server)) {
throw new InvalidRoleError(`Invalid role ${role}`);
}
if (!(targetRole in RoleInfo.Server)) {
throw new InvalidRoleError(`Invalid target role ${targetRole}`);
}
const roleWeight = RoleInfo.Server[role].weight;
const targetRoleWeight = RoleInfo.Server[targetRole].weight;
return roleWeight >= targetRoleWeight;
};
export const isMinimumWorkspaceRole = (role, targetRole) => {
if (!(role in RoleInfo.Workspace)) {
throw new InvalidRoleError(`Invalid role ${role}`);
}
if (!(targetRole in RoleInfo.Workspace)) {
throw new InvalidRoleError(`Invalid target role ${targetRole}`);
}
const roleWeight = RoleInfo.Workspace[role].weight;
const targetRoleWeight = RoleInfo.Workspace[targetRole].weight;
return roleWeight >= targetRoleWeight;
};
//# sourceMappingURL=roles.js.map