drizzle-graphql-plus 0.8.10 → 0.8.11
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.cjs +23 -5
- package/index.cjs.map +1 -1
- package/index.js +23 -5
- package/index.js.map +1 -1
- package/package.json +2 -2
package/index.js
CHANGED
|
@@ -528,6 +528,18 @@ var generateTableFilterTypeCached = (table, tableName) => {
|
|
|
528
528
|
filterTypeMap.set(table, filters);
|
|
529
529
|
return filters;
|
|
530
530
|
};
|
|
531
|
+
var interfaceTypeMap = /* @__PURE__ */ new WeakMap();
|
|
532
|
+
var generateTableInterfaceTypeCached = (table, tableName) => {
|
|
533
|
+
if (interfaceTypeMap.has(table))
|
|
534
|
+
return interfaceTypeMap.get(table);
|
|
535
|
+
const tableFields = generateTableSelectTypeFieldsCached(table, tableName);
|
|
536
|
+
const interfaceType = new GraphQLInterfaceType({
|
|
537
|
+
name: `${capitalize(tableName)}Fields`,
|
|
538
|
+
fields: tableFields
|
|
539
|
+
});
|
|
540
|
+
interfaceTypeMap.set(table, interfaceType);
|
|
541
|
+
return interfaceType;
|
|
542
|
+
};
|
|
531
543
|
var generateSelectFields = (tables, tableName, relationMap, typeName, withOrder, relationsDepthLimit, currentDepth = 0, usedTables = /* @__PURE__ */ new Set()) => {
|
|
532
544
|
const relations = relationMap[tableName];
|
|
533
545
|
const relationEntries = relations ? Object.entries(relations) : [];
|
|
@@ -559,9 +571,15 @@ var generateSelectFields = (tables, tableName, relationMap, typeName, withOrder,
|
|
|
559
571
|
newDepth,
|
|
560
572
|
updatedUsedTables
|
|
561
573
|
);
|
|
574
|
+
const targetTable = tables[targetTableName];
|
|
575
|
+
const targetInterface = generateTableInterfaceTypeCached(
|
|
576
|
+
targetTable,
|
|
577
|
+
targetTableName
|
|
578
|
+
);
|
|
562
579
|
const relType = new GraphQLObjectType2({
|
|
563
580
|
name: relTypeName,
|
|
564
|
-
fields: { ...relData.tableFields, ...relData.relationFields }
|
|
581
|
+
fields: { ...relData.tableFields, ...relData.relationFields },
|
|
582
|
+
interfaces: [targetInterface]
|
|
565
583
|
});
|
|
566
584
|
if (isOne) {
|
|
567
585
|
rawRelationFields.push([
|
|
@@ -639,10 +657,10 @@ var generateTableTypes = (tableName, tables, relationMap, withReturning, relatio
|
|
|
639
657
|
name: `${stylizedName}InsertInput`,
|
|
640
658
|
fields: insertFields
|
|
641
659
|
});
|
|
642
|
-
const tableFieldsInterface =
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
660
|
+
const tableFieldsInterface = generateTableInterfaceTypeCached(
|
|
661
|
+
table,
|
|
662
|
+
tableName
|
|
663
|
+
);
|
|
646
664
|
const selectSingleOutput = new GraphQLObjectType2({
|
|
647
665
|
name: `${stylizedName}SelectItem`,
|
|
648
666
|
fields: { ...tableFields, ...relationFields },
|