371c26bc9b
# Introduction Migrate previous runner only iterating on `flatObjectMetadataMaps` to `allFlatEntityMaps`. Refactored the optimistic to be handled inside the actions handler ## Workspace flat map cache Introducing a new service and registry, that will dynamically retrieve and or recompute requested cache when called ## Runner refactor Runner now dynamically invalidate updated cache at the end of the transaction close https://github.com/orgs/twentyhq/projects/1/views/8?pane=issue&itemId=129136356&issue=twentyhq%7Ccore-team-issues%7C1492 close https://github.com/orgs/twentyhq/projects/1/views/8?pane=issue&itemId=129136210&issue=twentyhq%7Ccore-team-issues%7C1494
49 lines
2.0 KiB
TypeScript
49 lines
2.0 KiB
TypeScript
import { isDefined } from 'twenty-shared/utils';
|
|
|
|
import {
|
|
FlatObjectMetadataMapsException,
|
|
FlatObjectMetadataMapsExceptionCode,
|
|
} from 'src/engine/metadata-modules/flat-object-metadata-maps/flat-object-metadata-maps.exception';
|
|
import { type FlatObjectMetadataMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-maps.type';
|
|
import { type FlatObjectMetadataWithFlatFieldMaps } from 'src/engine/metadata-modules/flat-object-metadata-maps/types/flat-object-metadata-with-flat-field-metadata-maps.type';
|
|
|
|
type AddFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrowArgs =
|
|
{
|
|
flatObjectMetadataWithFlatFieldMaps: FlatObjectMetadataWithFlatFieldMaps;
|
|
flatObjectMetadataMaps: FlatObjectMetadataMaps;
|
|
};
|
|
export const addFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrow =
|
|
({
|
|
flatObjectMetadataWithFlatFieldMaps,
|
|
flatObjectMetadataMaps,
|
|
}: AddFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrowArgs): FlatObjectMetadataMaps => {
|
|
if (
|
|
isDefined(
|
|
flatObjectMetadataMaps.byId[flatObjectMetadataWithFlatFieldMaps.id],
|
|
)
|
|
) {
|
|
throw new FlatObjectMetadataMapsException(
|
|
'addFlatObjectMetadataWithFlatFieldMapsToFlatObjectMetadataMapsOrThrow: flat object metadata with fields maps to add already exists',
|
|
FlatObjectMetadataMapsExceptionCode.OBJECT_METADATA_ALREADY_EXISTS,
|
|
);
|
|
}
|
|
|
|
return {
|
|
idByUniversalIdentifier: {
|
|
...flatObjectMetadataMaps.idByUniversalIdentifier,
|
|
[flatObjectMetadataWithFlatFieldMaps.universalIdentifier]:
|
|
flatObjectMetadataWithFlatFieldMaps.id,
|
|
},
|
|
byId: {
|
|
...flatObjectMetadataMaps.byId,
|
|
[flatObjectMetadataWithFlatFieldMaps.id]:
|
|
flatObjectMetadataWithFlatFieldMaps,
|
|
},
|
|
idByNameSingular: {
|
|
...flatObjectMetadataMaps.idByNameSingular,
|
|
[flatObjectMetadataWithFlatFieldMaps.nameSingular]:
|
|
flatObjectMetadataWithFlatFieldMaps.id,
|
|
},
|
|
};
|
|
};
|