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.js CHANGED
@@ -311,9 +311,21 @@ var extractSelectedColumnsFromTree = (tree, table) => {
311
311
  const treeEntries = Object.entries(tree);
312
312
  const selectedColumns = [];
313
313
  for (const [fieldName, fieldData] of treeEntries) {
314
- if (!tableColumns[fieldData.name])
314
+ if (tableColumns[fieldData.name]) {
315
+ selectedColumns.push([fieldData.name, true]);
315
316
  continue;
316
- selectedColumns.push([fieldData.name, true]);
317
+ }
318
+ if (fieldData.fieldsByTypeName) {
319
+ for (const [typeName, typeFields] of Object.entries(
320
+ fieldData.fieldsByTypeName
321
+ )) {
322
+ for (const [subFieldName, subFieldData] of Object.entries(typeFields)) {
323
+ if (tableColumns[subFieldData.name]) {
324
+ selectedColumns.push([subFieldData.name, true]);
325
+ }
326
+ }
327
+ }
328
+ }
317
329
  }
318
330
  if (!selectedColumns.length) {
319
331
  const columnKeys = Object.entries(tableColumns);
@@ -329,9 +341,24 @@ var extractSelectedColumnsFromTreeSQLFormat = (tree, table) => {
329
341
  const treeEntries = Object.entries(tree);
330
342
  const selectedColumns = [];
331
343
  for (const [fieldName, fieldData] of treeEntries) {
332
- if (!tableColumns[fieldData.name])
344
+ if (tableColumns[fieldData.name]) {
345
+ selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
333
346
  continue;
334
- selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
347
+ }
348
+ if (fieldData.fieldsByTypeName) {
349
+ for (const [typeName, typeFields] of Object.entries(
350
+ fieldData.fieldsByTypeName
351
+ )) {
352
+ for (const [subFieldName, subFieldData] of Object.entries(typeFields)) {
353
+ if (tableColumns[subFieldData.name]) {
354
+ selectedColumns.push([
355
+ subFieldData.name,
356
+ tableColumns[subFieldData.name]
357
+ ]);
358
+ }
359
+ }
360
+ }
361
+ }
335
362
  }
336
363
  if (!selectedColumns.length) {
337
364
  const columnKeys = Object.entries(tableColumns);
@@ -535,7 +562,13 @@ var generateTableInterfaceTypeCached = (table, tableName) => {
535
562
  const tableFields = generateTableSelectTypeFieldsCached(table, tableName);
536
563
  const interfaceType = new GraphQLInterfaceType({
537
564
  name: `${capitalize(tableName)}Fields`,
538
- fields: tableFields
565
+ fields: tableFields,
566
+ resolveType(obj) {
567
+ if (obj.__typename) {
568
+ return obj.__typename;
569
+ }
570
+ return null;
571
+ }
539
572
  });
540
573
  interfaceTypeMap.set(table, interfaceType);
541
574
  return interfaceType;