Skip to content

Commit 2d87a0c

Browse files
committed
feat(prisma-parser): exclude virtual fields/columns
1 parent 8bd3a19 commit 2d87a0c

File tree

2 files changed

+23
-4
lines changed

2 files changed

+23
-4
lines changed

packages/prisma-to-json-table-schema/src/utils/transformers/intermediateTableToJSONTableTable.ts

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,33 @@ export const intermediateTableToJSONTableTable = (
1111
{ fields: intermediateFields, name, indexes }: IntermediateTable,
1212
enumsSet: Set<string>,
1313
fieldRelationTable: FieldRelationsMap,
14+
tablesSet: Set<string>,
1415
): JSONTableTable => {
15-
const fields = intermediateFields.map((intermediateField) =>
16-
intermediateFieldToJSONTableField(
16+
const fields: JSONTableTable["fields"] = [];
17+
18+
for (let index = 0; index < intermediateFields.length; index++) {
19+
const intermediateField = intermediateFields[index];
20+
21+
/*
22+
VirtualReferenceField is field that not a column in the database
23+
but just a reference field for Prisma to allow navigation between
24+
relationships.
25+
*/
26+
const isVirtualReferenceField = tablesSet.has(
27+
intermediateField.type.type_name,
28+
);
29+
if (isVirtualReferenceField) {
30+
continue;
31+
}
32+
33+
const field = intermediateFieldToJSONTableField(
1734
name,
1835
intermediateField,
1936
enumsSet,
2037
fieldRelationTable,
21-
),
22-
);
38+
);
39+
fields.push(field);
40+
}
2341

2442
return { name, fields, indexes };
2543
};

packages/prisma-to-json-table-schema/src/utils/transformers/prismaASTToJSONTableSchema.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ export const prismaASTToJSONTableSchema = (
2828
intermediateTable,
2929
enumsNames,
3030
fieldRelationsArray,
31+
tablesNames,
3132
);
3233
});
3334

0 commit comments

Comments
 (0)