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.cjs CHANGED
@@ -278,9 +278,25 @@ 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
+ if (typeName.endsWith("Fields")) {
290
+ for (const [subFieldName, subFieldData] of Object.entries(
291
+ typeFields
292
+ )) {
293
+ if (tableColumns[subFieldData.name]) {
294
+ selectedColumns.push([subFieldData.name, true]);
295
+ }
296
+ }
297
+ }
298
+ }
299
+ }
284
300
  }
285
301
  if (!selectedColumns.length) {
286
302
  const columnKeys = Object.entries(tableColumns);
@@ -296,9 +312,28 @@ var extractSelectedColumnsFromTreeSQLFormat = (tree, table) => {
296
312
  const treeEntries = Object.entries(tree);
297
313
  const selectedColumns = [];
298
314
  for (const [fieldName, fieldData] of treeEntries) {
299
- if (!tableColumns[fieldData.name])
315
+ if (tableColumns[fieldData.name]) {
316
+ selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
300
317
  continue;
301
- selectedColumns.push([fieldData.name, tableColumns[fieldData.name]]);
318
+ }
319
+ if (fieldData.fieldsByTypeName) {
320
+ for (const [typeName, typeFields] of Object.entries(
321
+ fieldData.fieldsByTypeName
322
+ )) {
323
+ if (typeName.endsWith("Fields")) {
324
+ for (const [subFieldName, subFieldData] of Object.entries(
325
+ typeFields
326
+ )) {
327
+ if (tableColumns[subFieldData.name]) {
328
+ selectedColumns.push([
329
+ subFieldData.name,
330
+ tableColumns[subFieldData.name]
331
+ ]);
332
+ }
333
+ }
334
+ }
335
+ }
336
+ }
302
337
  }
303
338
  if (!selectedColumns.length) {
304
339
  const columnKeys = Object.entries(tableColumns);
@@ -502,7 +537,13 @@ var generateTableInterfaceTypeCached = (table, tableName) => {
502
537
  const tableFields = generateTableSelectTypeFieldsCached(table, tableName);
503
538
  const interfaceType = new import_graphql3.GraphQLInterfaceType({
504
539
  name: `${capitalize(tableName)}Fields`,
505
- fields: tableFields
540
+ fields: tableFields,
541
+ resolveType(obj) {
542
+ if (obj.__typename) {
543
+ return obj.__typename;
544
+ }
545
+ return null;
546
+ }
506
547
  });
507
548
  interfaceTypeMap.set(table, interfaceType);
508
549
  return interfaceType;