Improve performance twenty orm (#6691)
## Context As we grow, the messaging scripts are experiencing performance issues forcing us to temporarily disable them on the cloud. While investigating the performance, I have noticed that generating the entity schema (for twentyORM) in the repository is taking ~500ms locally on my Mac M2 so likely more on pods. Caching the entitySchema then! I'm also clarifying naming around schemaVersion and cacheVersions ==> both are renamed workspaceMetadataVersion and migrated to the workspace table (the workspaceCacheVersion table is dropped).
This commit is contained in:
@ -1,6 +1,6 @@
|
||||
import { InMemoryCache, NormalizedCacheObject } from '@apollo/client';
|
||||
import { useMemo, useRef } from 'react';
|
||||
import { useLocation, useNavigate } from 'react-router-dom';
|
||||
import { InMemoryCache, NormalizedCacheObject } from '@apollo/client';
|
||||
import { useRecoilState, useSetRecoilState } from 'recoil';
|
||||
|
||||
import { currentUserState } from '@/auth/states/currentUserState';
|
||||
@ -49,8 +49,8 @@ export const useApolloFactory = (options: Partial<Options<any>> = {}) => {
|
||||
},
|
||||
}),
|
||||
headers: {
|
||||
...(currentWorkspace?.currentCacheVersion && {
|
||||
'X-Schema-Version': currentWorkspace.currentCacheVersion,
|
||||
...(currentWorkspace?.metadataVersion && {
|
||||
'X-Schema-Version': `${currentWorkspace.metadataVersion}`,
|
||||
}),
|
||||
},
|
||||
defaultOptions: {
|
||||
@ -95,7 +95,7 @@ export const useApolloFactory = (options: Partial<Options<any>> = {}) => {
|
||||
setCurrentWorkspace,
|
||||
setWorkspaces,
|
||||
isDebugMode,
|
||||
currentWorkspace?.currentCacheVersion,
|
||||
currentWorkspace?.metadataVersion,
|
||||
setPreviousUrl,
|
||||
]);
|
||||
|
||||
|
||||
@ -13,7 +13,7 @@ export type CurrentWorkspace = Pick<
|
||||
| 'activationStatus'
|
||||
| 'currentBillingSubscription'
|
||||
| 'workspaceMembersCount'
|
||||
| 'currentCacheVersion'
|
||||
| 'metadataVersion'
|
||||
>;
|
||||
|
||||
export const currentWorkspaceState = createState<CurrentWorkspace | null>({
|
||||
|
||||
@ -29,7 +29,7 @@ export const USER_QUERY_FRAGMENT = gql`
|
||||
value
|
||||
workspaceId
|
||||
}
|
||||
currentCacheVersion
|
||||
metadataVersion
|
||||
currentBillingSubscription {
|
||||
id
|
||||
status
|
||||
|
||||
Reference in New Issue
Block a user