Files
khata-ui/react-openapi/src/transformers/relationship-config.ts

28 lines
721 B
TypeScript

import type { FKFieldConfig, ResourceRelationship } from "../types";
export function extractRelationships(schema: any, schemas: Record<string, any>): ResourceRelationship[] {
const props = schema.properties ?? {};
const rels: ResourceRelationship[] = [];
for (const [name, _raw] of Object.entries(props)) {
const prop = _raw as any;
if (!prop || typeof prop !== "object") continue;
if (!prop["x-fk"]) continue;
const fkResource = prop["x-fk"].resource as string;
const prefetch = prop["x-fk"].prefetch ?? false;
rels.push({
fieldName: name,
config: {
resource: fkResource,
prefetch,
},
targetSchemaName: fkResource,
});
}
return rels;
}