refactor(editor): Move editor-ui and design-system to frontend dir (no-changelog) (#13564)

This commit is contained in:
Alex Grozav
2025-02-28 14:28:30 +02:00
committed by GitHub
parent 684353436d
commit f5743176e5
1635 changed files with 805 additions and 1079 deletions

View File

@@ -0,0 +1,32 @@
import type { Scope } from '@n8n/permissions';
import { RESOURCES } from '@n8n/permissions';
type ExtractScopePrefixSuffix<T> = T extends `${infer Prefix}:${infer Suffix}`
? [Prefix, Suffix]
: never;
type ActionBooleans<T extends readonly string[]> = {
[K in T[number]]?: boolean;
};
export type PermissionsRecord = {
[K in keyof typeof RESOURCES]: ActionBooleans<(typeof RESOURCES)[K]>;
};
export const getResourcePermissions = (resourceScopes: Scope[] = []): PermissionsRecord =>
Object.keys(RESOURCES).reduce(
(permissions, key) => ({
...permissions,
[key]: resourceScopes.reduce((resourcePermissions, scope) => {
const [prefix, suffix] = scope.split(':') as ExtractScopePrefixSuffix<Scope>;
if (prefix === key) {
return {
...resourcePermissions,
[suffix]: true,
};
}
return resourcePermissions;
}, {}),
}),
{} as PermissionsRecord,
);