Files
twenty/packages/twenty-server/src/engine/dataloaders/dataloader.interface.ts
T
Paul Rastoin 9e81618773 Refactor morph field name and morph data loader (#14299)
# Introduction
Storing morph relation field names directly in database, using morphId
to aggregate them
Removing dynamic morph field metadata computation in schemas and data
loader

Will add integration tests on morph data loader entry

closes https://github.com/twentyhq/core-team-issues/issues/1425 
closes https://github.com/twentyhq/core-team-issues/issues/1424 
closes https://github.com/twentyhq/core-team-issues/issues/1423
2025-09-08 17:20:18 +02:00

45 lines
1.5 KiB
TypeScript

import type DataLoader from 'dataloader';
import {
type FieldMetadataLoaderPayload,
type IndexFieldMetadataLoaderPayload,
type IndexMetadataLoaderPayload,
type MorphRelationLoaderPayload,
type ObjectMetadataLoaderPayload,
type RelationLoaderPayload,
} from 'src/engine/dataloaders/dataloader.service';
import { type FieldMetadataDTO } from 'src/engine/metadata-modules/field-metadata/dtos/field-metadata.dto';
import { type RelationDTO } from 'src/engine/metadata-modules/field-metadata/dtos/relation.dto';
import { type IndexFieldMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-field-metadata.dto';
import { type IndexMetadataDTO } from 'src/engine/metadata-modules/index-metadata/dtos/index-metadata.dto';
import { type ObjectMetadataItemWithFieldMaps } from 'src/engine/metadata-modules/types/object-metadata-item-with-field-maps';
export interface IDataloaders {
relationLoader: DataLoader<RelationLoaderPayload, RelationDTO | null>;
morphRelationLoader: DataLoader<
MorphRelationLoaderPayload,
RelationDTO[] | null
>;
fieldMetadataLoader: DataLoader<
FieldMetadataLoaderPayload,
FieldMetadataDTO[]
>;
indexMetadataLoader: DataLoader<
IndexMetadataLoaderPayload,
IndexMetadataDTO[]
>;
indexFieldMetadataLoader: DataLoader<
IndexFieldMetadataLoaderPayload,
IndexFieldMetadataDTO[]
>;
objectMetadataLoader: DataLoader<
ObjectMetadataLoaderPayload,
ObjectMetadataItemWithFieldMaps | null
>;
}