diff --git a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/get-default-object-fields.spec.ts b/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/get-default-object-fields.spec.ts index 84e28792d0..5174980a73 100644 --- a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/get-default-object-fields.spec.ts +++ b/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/get-default-object-fields.spec.ts @@ -1,6 +1,6 @@ import { FieldMetadataType } from 'twenty-shared/types'; import { getDefaultObjectFields } from '@/cli/utilities/build/manifest/utils/get-default-object-fields'; -import { generateDefaultFieldUniversalIdentifier } from '@/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier'; +import { generateDefaultFieldUniversalIdentifier } from '@/sdk/define/objects/generate-default-field-universal-identifier'; import type { ObjectConfig } from '@/sdk/define/objects/object-config'; const mockObjectConfig: ObjectConfig = { @@ -14,7 +14,7 @@ const mockObjectConfig: ObjectConfig = { const expectedUniversalId = (fieldName: string) => generateDefaultFieldUniversalIdentifier({ - objectConfig: mockObjectConfig, + objectUniversalIdentifier: mockObjectConfig.universalIdentifier, fieldName, }); diff --git a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-object-fields.ts b/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-object-fields.ts index a678da72d5..ed19ffff7b 100644 --- a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-object-fields.ts +++ b/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-object-fields.ts @@ -1,11 +1,13 @@ import type { ObjectConfig } from '@/sdk/define/objects/object-config'; import { FieldMetadataType } from 'twenty-shared/types'; -import { generateDefaultFieldUniversalIdentifier } from '@/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier'; +import { generateDefaultFieldUniversalIdentifier } from '@/sdk/define/objects/generate-default-field-universal-identifier'; import { type ObjectFieldManifest } from 'twenty-shared/application'; export const getDefaultObjectFields = ( objectConfig: ObjectConfig, ): ObjectFieldManifest[] => { + const objectUniversalIdentifier = objectConfig.universalIdentifier; + const idField: ObjectFieldManifest = { name: 'id', label: 'Id', @@ -15,7 +17,7 @@ export const getDefaultObjectFields = ( defaultValue: 'uuid', type: FieldMetadataType.UUID as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'id', }), }; @@ -29,7 +31,7 @@ export const getDefaultObjectFields = ( defaultValue: null, type: FieldMetadataType.TEXT as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'name', }), }; @@ -43,7 +45,7 @@ export const getDefaultObjectFields = ( defaultValue: 'now', type: FieldMetadataType.DATE_TIME as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'createdAt', }), }; @@ -57,7 +59,7 @@ export const getDefaultObjectFields = ( defaultValue: 'now', type: FieldMetadataType.DATE_TIME as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'updatedAt', }), }; @@ -71,7 +73,7 @@ export const getDefaultObjectFields = ( defaultValue: null, type: FieldMetadataType.DATE_TIME as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'deletedAt', }), }; @@ -85,7 +87,7 @@ export const getDefaultObjectFields = ( defaultValue: { name: "''", source: "'MANUAL'" }, type: FieldMetadataType.ACTOR as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'createdBy', }), }; @@ -99,7 +101,7 @@ export const getDefaultObjectFields = ( defaultValue: { name: "''", source: "'MANUAL'" }, type: FieldMetadataType.ACTOR as const, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'updatedBy', }), }; @@ -113,7 +115,7 @@ export const getDefaultObjectFields = ( defaultValue: 0, type: FieldMetadataType.POSITION, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'position', }), }; @@ -127,7 +129,7 @@ export const getDefaultObjectFields = ( defaultValue: null, type: FieldMetadataType.TS_VECTOR, universalIdentifier: generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'searchVector', }), }; diff --git a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-relation-object-fields.ts b/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-relation-object-fields.ts index 9270251b38..5317320dd5 100644 --- a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-relation-object-fields.ts +++ b/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/get-default-relation-object-fields.ts @@ -1,4 +1,4 @@ -import { generateDefaultFieldUniversalIdentifier } from '@/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier'; +import { generateDefaultFieldUniversalIdentifier } from '@/sdk/define/objects/generate-default-field-universal-identifier'; import { RelationType } from '@/sdk/define'; import type { ObjectConfig } from '@/sdk/define/objects/object-config'; import { @@ -130,13 +130,13 @@ export const getDefaultRelationObjectFields = ( const forwardFieldUniversalIdentifier = generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier: objectConfig.universalIdentifier, fieldName: config.fieldName, }); const reverseFieldUniversalIdentifier = generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier: objectConfig.universalIdentifier, fieldName: `${config.fieldName}Inverse`, }); diff --git a/packages/twenty-sdk/src/sdk/define/index.ts b/packages/twenty-sdk/src/sdk/define/index.ts index 05697d74d7..0c7d6801af 100644 --- a/packages/twenty-sdk/src/sdk/define/index.ts +++ b/packages/twenty-sdk/src/sdk/define/index.ts @@ -63,6 +63,7 @@ export type { InputJsonSchema } from 'twenty-shared/logic-function'; export { defineNavigationMenuItem } from '@/sdk/define/navigation-menu-items/define-navigation-menu-item'; export { defineObject } from '@/sdk/define/objects/define-object'; +export { generateDefaultFieldUniversalIdentifier } from '@/sdk/define/objects/generate-default-field-universal-identifier'; export { STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS as STANDARD_OBJECT, STANDARD_OBJECT_UNIVERSAL_IDENTIFIERS, diff --git a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/generate-default-field-universal-identifier.spec.ts b/packages/twenty-sdk/src/sdk/define/objects/__tests__/generate-default-field-universal-identifier.spec.ts similarity index 55% rename from packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/generate-default-field-universal-identifier.spec.ts rename to packages/twenty-sdk/src/sdk/define/objects/__tests__/generate-default-field-universal-identifier.spec.ts index 825fc16caa..8e0608e14c 100644 --- a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/__tests__/generate-default-field-universal-identifier.spec.ts +++ b/packages/twenty-sdk/src/sdk/define/objects/__tests__/generate-default-field-universal-identifier.spec.ts @@ -1,23 +1,20 @@ -import { generateDefaultFieldUniversalIdentifier } from '@/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier'; -import { type ObjectConfig } from '@/sdk/define/objects/object-config'; +import { generateDefaultFieldUniversalIdentifier } from '@/sdk/define/objects/generate-default-field-universal-identifier'; describe('generateDefaultFieldUniversalIdentifier', () => { it('should generate a unique universal identifier', () => { - const objectConfig = { - universalIdentifier: '55b79f88-4094-4b3f-a0ac-1a91a55714f2', - } as ObjectConfig; + const objectUniversalIdentifier = '55b79f88-4094-4b3f-a0ac-1a91a55714f2'; const uId1 = generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'id', }); const uId2 = generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'id', }); const anotherUId = generateDefaultFieldUniversalIdentifier({ - objectConfig, + objectUniversalIdentifier, fieldName: 'name', }); diff --git a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier.ts b/packages/twenty-sdk/src/sdk/define/objects/generate-default-field-universal-identifier.ts similarity index 59% rename from packages/twenty-sdk/src/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier.ts rename to packages/twenty-sdk/src/sdk/define/objects/generate-default-field-universal-identifier.ts index bfb5823558..e0b815f34f 100644 --- a/packages/twenty-sdk/src/cli/utilities/build/manifest/utils/generate-default-field-universal-identifier.ts +++ b/packages/twenty-sdk/src/sdk/define/objects/generate-default-field-universal-identifier.ts @@ -1,16 +1,15 @@ -import type { ObjectConfig } from '@/sdk/define/objects/object-config'; import { v5 } from 'uuid'; const UNIVERSAL_IDENTIFIER_NAMESPACE = '142046f0-4d80-48b5-ad56-26ad410e895c'; export const generateDefaultFieldUniversalIdentifier = ({ - objectConfig, + objectUniversalIdentifier, fieldName, }: { - objectConfig: ObjectConfig; + objectUniversalIdentifier: string; fieldName: string; }) => { - const seed = `${objectConfig.universalIdentifier}-${fieldName}`; + const seed = `${objectUniversalIdentifier}-${fieldName}`; return v5(seed, UNIVERSAL_IDENTIFIER_NAMESPACE); };