drizzle-graphql-plus 0.8.11 → 0.8.12

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,25 @@ 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
+ if (typeName.endsWith("Fields")) {
323
+ for (const [subFieldName, subFieldData] of Object.entries(
324
+ typeFields
325
+ )) {
326
+ if (tableColumns[subFieldData.name]) {
327
+ selectedColumns.push([subFieldData.name, true]);
328
+ }
329
+ }
330
+ }
331
+ }
332
+ }
317
333
  }
318
334
  if (!selectedColumns.length) {
319
335
  const columnKeys = Object.entries(tableColumns);
@@ -329,9 +345,28 @@ var extractSelectedColumnsFromTreeSQLFormat = (tree, table) => {
329
345
  const treeEntries = Object.entries(tree);
330
346
  const selectedColumns = [];
331
347
  for (const [fieldName, fieldData] of treeEntries) {
332
- if (!tableColumns[fieldData.name])
348
+ if (tableColumns[fieldData.name]) {
349
+ selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
333
350
  continue;
334
- selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
351
+ }
352
+ if (fieldData.fieldsByTypeName) {
353
+ for (const [typeName, typeFields] of Object.entries(
354
+ fieldData.fieldsByTypeName
355
+ )) {
356
+ if (typeName.endsWith("Fields")) {
357
+ for (const [subFieldName, subFieldData] of Object.entries(
358
+ typeFields
359
+ )) {
360
+ if (tableColumns[subFieldData.name]) {
361
+ selectedColumns.push([
362
+ subFieldData.name,
363
+ tableColumns[subFieldData.name]
364
+ ]);
365
+ }
366
+ }
367
+ }
368
+ }
369
+ }
335
370
  }
336
371
  if (!selectedColumns.length) {
337
372
  const columnKeys = Object.entries(tableColumns);
@@ -535,7 +570,13 @@ var generateTableInterfaceTypeCached = (table, tableName) => {
535
570
  const tableFields = generateTableSelectTypeFieldsCached(table, tableName);
536
571
  const interfaceType = new GraphQLInterfaceType({
537
572
  name: `${capitalize(tableName)}Fields`,
538
- fields: tableFields
573
+ fields: tableFields,
574
+ resolveType(obj) {
575
+ if (obj.__typename) {
576
+ return obj.__typename;
577
+ }
578
+ return null;
579
+ }
539
580
  });
540
581
  interfaceTypeMap.set(table, interfaceType);
541
582
  return interfaceType;