drizzle-graphql-plus 0.8.11 → 0.8.13

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 CHANGED
@@ -278,9 +278,21 @@ var extractSelectedColumnsFromTree = (tree, table) => {
278
278
  const treeEntries = Object.entries(tree);
279
279
  const selectedColumns = [];
280
280
  for (const [fieldName, fieldData] of treeEntries) {
281
- if (!tableColumns[fieldData.name])
281
+ if (tableColumns[fieldData.name]) {
282
+ selectedColumns.push([fieldData.name, true]);
282
283
  continue;
283
- selectedColumns.push([fieldData.name, true]);
284
+ }
285
+ if (fieldData.fieldsByTypeName) {
286
+ for (const [typeName, typeFields] of Object.entries(
287
+ fieldData.fieldsByTypeName
288
+ )) {
289
+ for (const [subFieldName, subFieldData] of Object.entries(typeFields)) {
290
+ if (tableColumns[subFieldData.name]) {
291
+ selectedColumns.push([subFieldData.name, true]);
292
+ }
293
+ }
294
+ }
295
+ }
284
296
  }
285
297
  if (!selectedColumns.length) {
286
298
  const columnKeys = Object.entries(tableColumns);
@@ -296,9 +308,24 @@ var extractSelectedColumnsFromTreeSQLFormat = (tree, table) => {
296
308
  const treeEntries = Object.entries(tree);
297
309
  const selectedColumns = [];
298
310
  for (const [fieldName, fieldData] of treeEntries) {
299
- if (!tableColumns[fieldData.name])
311
+ if (tableColumns[fieldData.name]) {
312
+ selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
300
313
  continue;
301
- selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
314
+ }
315
+ if (fieldData.fieldsByTypeName) {
316
+ for (const [typeName, typeFields] of Object.entries(
317
+ fieldData.fieldsByTypeName
318
+ )) {
319
+ for (const [subFieldName, subFieldData] of Object.entries(typeFields)) {
320
+ if (tableColumns[subFieldData.name]) {
321
+ selectedColumns.push([
322
+ subFieldData.name,
323
+ tableColumns[subFieldData.name]
324
+ ]);
325
+ }
326
+ }
327
+ }
328
+ }
302
329
  }
303
330
  if (!selectedColumns.length) {
304
331
  const columnKeys = Object.entries(tableColumns);
@@ -502,7 +529,13 @@ var generateTableInterfaceTypeCached = (table, tableName) => {
502
529
  const tableFields = generateTableSelectTypeFieldsCached(table, tableName);
503
530
  const interfaceType = new import_graphql3.GraphQLInterfaceType({
504
531
  name: `${capitalize(tableName)}Fields`,
505
- fields: tableFields
532
+ fields: tableFields,
533
+ resolveType(obj) {
534
+ if (obj.__typename) {
535
+ return obj.__typename;
536
+ }
537
+ return null;
538
+ }
506
539
  });
507
540
  interfaceTypeMap.set(table, interfaceType);
508
541
  return interfaceType;