twenty / packages /twenty-server /src /engine /metadata-modules /flat-command-menu-item /utils /from-command-menu-item-entity-to-flat-command-menu-item.util.ts
Jules
Initial clean CRM deployment with prebuilt assets
d9494a5
Raw
History Blame Contribute Delete
2.05 kB
import { isDefined } from 'twenty-shared/utils';
import { type FlatCommandMenuItem } from 'src/engine/metadata-modules/flat-command-menu-item/types/flat-command-menu-item.type';
import { fromCommandMenuItemOverridesToUniversalOverrides } from 'src/engine/metadata-modules/flat-command-menu-item/utils/from-command-menu-item-overrides-to-universal-overrides.util';
import { fromEntityToScalarEntity } from 'src/engine/metadata-modules/flat-entity/utils/from-entity-to-scalar-entity.util';
import { type FromEntityToFlatEntityArgs } from 'src/engine/workspace-cache/types/from-entity-to-flat-entity-args.type';
import { resolveManyToOneRelationIdsToUniversalIdentifiers } from 'src/engine/workspace-manager/workspace-migration/universal-flat-entity/utils/resolve-many-to-one-relation-ids-to-universal-identifiers.util';
export const fromCommandMenuItemEntityToFlatCommandMenuItem = (
args: FromEntityToFlatEntityArgs<'commandMenuItem'>,
): FlatCommandMenuItem => {
const {
entity: commandMenuItemEntity,
objectMetadataIdToUniversalIdentifierMap,
pageLayoutIdToUniversalIdentifierMap,
} = args;
const commandMenuItemScalarEntity = fromEntityToScalarEntity({
metadataName: 'commandMenuItem',
entity: commandMenuItemEntity,
});
const relationUniversalIdentifiers =
resolveManyToOneRelationIdsToUniversalIdentifiers({
metadataName: 'commandMenuItem',
...args,
});
const universalOverrides = isDefined(commandMenuItemEntity.overrides)
? fromCommandMenuItemOverridesToUniversalOverrides({
overrides: commandMenuItemEntity.overrides,
objectMetadataUniversalIdentifierById: Object.fromEntries(
objectMetadataIdToUniversalIdentifierMap.entries(),
),
pageLayoutUniversalIdentifierById: Object.fromEntries(
pageLayoutIdToUniversalIdentifierMap.entries(),
),
shouldThrowOnMissingIdentifier: false,
})
: null;
return {
...commandMenuItemScalarEntity,
...relationUniversalIdentifiers,
universalOverrides,
};
};