From 67a71fb7d85c147f45c2942d98dc920c7e162137 Mon Sep 17 00:00:00 2001 From: AppIe314 Date: Sun, 16 Mar 2025 15:16:56 +0000 Subject: [PATCH 1/2] feat: add role array support Use ternary operator --- packages/config/lib/mutations.js | 25 ++++++++++++++----------- packages/types/lib/config.d.ts | 2 +- 2 files changed, 15 insertions(+), 12 deletions(-) diff --git a/packages/config/lib/mutations.js b/packages/config/lib/mutations.js index a079c397d..0a1ddee1e 100644 --- a/packages/config/lib/mutations.js +++ b/packages/config/lib/mutations.js @@ -277,27 +277,30 @@ const applyMutations = (config) => { const aliasObj = Object.fromEntries( config.authentication.aliases.map((alias) => [alias.name, alias.role]), ) - /** @param {string} role */ - const replaceAliases = (role) => aliasObj[role] ?? role + /** @param {string | string[]} role */ + const replaceAliases = (role) => + Array.isArray(role) + ? role.flatMap((r) => aliasObj[r] ?? r) + : aliasObj[role] ?? role const replaceBothAliases = (incomingObj) => ({ ...incomingObj, discordRoles: Array.isArray(incomingObj.discordRoles) - ? incomingObj.discordRoles.map(replaceAliases) + ? incomingObj.discordRoles.flatMap(replaceAliases) : undefined, telegramGroups: Array.isArray(incomingObj.telegramGroups) - ? incomingObj.telegramGroups.map(replaceAliases) + ? incomingObj.telegramGroups.flatMap(replaceAliases) : undefined, }) Object.keys(config.authentication.perms).forEach((perm) => { config.authentication.perms[perm].roles = - config.authentication.perms[perm].roles.map(replaceAliases) + config.authentication.perms[perm].roles.flatMap(replaceAliases) }) config.authentication.areaRestrictions = config.authentication.areaRestrictions.map(({ roles, areas }) => ({ - roles: roles.map(replaceAliases), + roles: roles.flatMap(replaceAliases), areas, })) @@ -305,21 +308,21 @@ const applyMutations = (config) => { (strategy) => ({ ...strategy, allowedGuilds: Array.isArray(strategy.allowedGuilds) - ? strategy.allowedGuilds.map(replaceAliases) + ? strategy.allowedGuilds.flatMap(replaceAliases) : [], blockedGuilds: Array.isArray(strategy.blockedGuilds) - ? strategy.blockedGuilds.map(replaceAliases) + ? strategy.blockedGuilds.flatMap(replaceAliases) : [], groups: Array.isArray(strategy.groups) - ? strategy.groups.map(replaceAliases) + ? strategy.groups.flatMap(replaceAliases) : [], allowedUsers: Array.isArray(strategy.allowedUsers) - ? strategy.allowedUsers.map(replaceAliases) + ? strategy.allowedUsers.flatMap(replaceAliases) : [], trialPeriod: { ...strategy.trialPeriod, roles: Array.isArray(strategy?.trialPeriod?.roles) - ? strategy.trialPeriod.roles.map(replaceAliases) + ? strategy.trialPeriod.roles.flatMap(replaceAliases) : [], }, }), diff --git a/packages/types/lib/config.d.ts b/packages/types/lib/config.d.ts index a6dce9935..3c17ecf67 100644 --- a/packages/types/lib/config.d.ts +++ b/packages/types/lib/config.d.ts @@ -59,7 +59,7 @@ export type Config = DeepMerge< // alwaysEnabledPerms: (keyof BaseConfig['authentication']['perms'])[] excludeFromTutorial: string[] alwaysEnabledPerms: string[] - aliases: { role: string; name: string }[] + aliases: { role: string | string[]; name: string }[] methods: Strategy[] strategies: { type: Strategy From 48a5fe4b63a72f869d116a91764cfb481290b4a1 Mon Sep 17 00:00:00 2001 From: AppIe314 Date: Sun, 23 Mar 2025 10:45:12 +0000 Subject: [PATCH 2/2] style: format code using Prettier --- packages/config/lib/mutations.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/packages/config/lib/mutations.js b/packages/config/lib/mutations.js index 0a1ddee1e..baa4fdc56 100644 --- a/packages/config/lib/mutations.js +++ b/packages/config/lib/mutations.js @@ -279,9 +279,9 @@ const applyMutations = (config) => { ) /** @param {string | string[]} role */ const replaceAliases = (role) => - Array.isArray(role) - ? role.flatMap((r) => aliasObj[r] ?? r) - : aliasObj[role] ?? role + Array.isArray(role) + ? role.flatMap((r) => aliasObj[r] ?? r) + : (aliasObj[role] ?? role) const replaceBothAliases = (incomingObj) => ({ ...incomingObj,