diff --git a/src/utils/hasura-metadata/helpers.ts b/src/utils/hasura-metadata/helpers.ts index ed2cb69b0..e375b226e 100644 --- a/src/utils/hasura-metadata/helpers.ts +++ b/src/utils/hasura-metadata/helpers.ts @@ -115,16 +115,34 @@ export const patchTableObject = ( } if (select_permissions) { - const mergedSelectPermissions = [...(existingTable.select_permissions ?? []), ...select_permissions]; + const mergedSelectPermissions = [ + ...select_permissions, + ...(existingTable.select_permissions ?? []), + ]; + existingTable.select_permissions = [ - ...new Map(mergedSelectPermissions.map((permission) => [permission.role, permission])).values() + ...new Map( + mergedSelectPermissions.map((permission) => [ + permission.role, + permission, + ]) + ).values(), ]; } if (delete_permissions) { - const mergedDeletePermissions = [...(existingTable.delete_permissions ?? []), ...delete_permissions]; + const mergedDeletePermissions = [ + ...delete_permissions, + ...(existingTable.delete_permissions ?? []), + ]; + existingTable.delete_permissions = [ - ...new Map(mergedDeletePermissions.map((permission) => [permission.role, permission])).values() + ...new Map( + mergedDeletePermissions.map((permission) => [ + permission.role, + permission, + ]) + ).values(), ]; }