nitin
2026-02-13 19:48:09 +05:30
committed by GitHub
parent 5cc0c03262
commit 463ce43442
26 changed files with 845 additions and 174 deletions
@@ -103,6 +103,12 @@ export class WorkspaceSchemaFactory {
applicationIds,
);
flatObjectMetadataMaps =
this.reconcileObjectFieldIdsWithFilteredFieldMaps(
flatObjectMetadataMaps,
flatFieldMetadataMaps,
);
if (isDefined(allFlatIndexMaps)) {
flatIndexMaps = this.filterFlatEntityMapsByApplicationIds(
allFlatIndexMaps,
@@ -188,6 +194,35 @@ export class WorkspaceSchemaFactory {
return executableSchema;
}
private reconcileObjectFieldIdsWithFilteredFieldMaps(
flatObjectMetadataMaps: FlatEntityMaps<FlatObjectMetadata>,
flatFieldMetadataMaps: FlatEntityMaps<FlatFieldMetadata>,
): FlatEntityMaps<FlatObjectMetadata> {
const filteredFieldIds = new Set(
Object.keys(flatFieldMetadataMaps.universalIdentifierById),
);
const reconciledByUniversalIdentifier: Partial<
Record<string, FlatObjectMetadata>
> = {};
for (const [universalId, object] of Object.entries(
flatObjectMetadataMaps.byUniversalIdentifier,
)) {
if (!isDefined(object)) continue;
reconciledByUniversalIdentifier[universalId] = {
...object,
fieldIds: object.fieldIds.filter((id) => filteredFieldIds.has(id)),
};
}
return {
...flatObjectMetadataMaps,
byUniversalIdentifier: reconciledByUniversalIdentifier,
};
}
private filterFlatEntityMapsByApplicationIds<
T extends FlatObjectMetadata | FlatFieldMetadata | FlatIndexMetadata,
>(