@pothos/plugin-drizzle 0.19.1 → 0.19.2

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/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  # @pothos/plugin-drizzle
2
2
 
3
+ ## 0.19.2
4
+
5
+ ### Patch Changes
6
+
7
+ - 221a523: Honor exclusion-only column projections when planning Drizzle selections.
8
+ - @pothos/selection-mapper@0.1.0
9
+
3
10
  ## 0.19.1
4
11
 
5
12
  ### Patch Changes
@@ -1,5 +1,5 @@
1
1
  import { type Node, NodeAdapter, type Plan, type PlayedPlan, type QueryVisitor, type SelectFn } from '@pothos/selection-mapper';
2
- import type { TableRelationalConfig } from 'drizzle-orm';
2
+ import { type TableRelationalConfig } from 'drizzle-orm';
3
3
  import type { GraphQLField, GraphQLNamedType } from 'graphql';
4
4
  import type { PothosDrizzleSchemaConfig } from './config.js';
5
5
  import { type SelectionMap } from './selections.js';
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/utils/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,IAAI,EACT,WAAW,EACX,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAChF,KAAK,cAAc,GAAG,YAAY,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAKxE;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAQtE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1B,qBAAqB,EAAE,OAAO,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,YAA6B,MAAM,EAAE,yBAAyB,EAG7D;IAGD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GACiB,qBAAqB,GAAG,SAAS,CAChF;IAED,aAAa,CAAC,IAAI,EAAE,gBAAgB,4BAKnC;IAED,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,mFAyCnD;IAED,UAAU,CACR,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,EAC/D,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,cAAc,QAqBtB;IAED;;;OAGG;IACM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,WAE9F;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CA6BvC;IAED,oEAAoE;IACpE,OAAO,CAAC,aAAa;CAyBtB;AAED,eAAO,MAAM,cAAc,oFAE1B,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/utils/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,IAAI,EACT,WAAW,EACX,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAChF,KAAK,cAAc,GAAG,YAAY,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAKxE;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAQtE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1B,qBAAqB,EAAE,OAAO,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,YAA6B,MAAM,EAAE,yBAAyB,EAG7D;IAGD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GACiB,qBAAqB,GAAG,SAAS,CAChF;IAED,aAAa,CAAC,IAAI,EAAE,gBAAgB,4BAKnC;IAED,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,mFAyCnD;IAED,UAAU,CACR,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,EAC/D,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,cAAc,QA8BtB;IAED;;;OAGG;IACM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,WAE9F;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CA6BvC;IAED,oEAAoE;IACpE,OAAO,CAAC,aAAa;CAyBtB;AAED,eAAO,MAAM,cAAc,oFAE1B,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { type Node, NodeAdapter, type Plan, type PlayedPlan, type QueryVisitor, type SelectFn } from '@pothos/selection-mapper';
2
- import type { TableRelationalConfig } from 'drizzle-orm';
2
+ import { type TableRelationalConfig } from 'drizzle-orm';
3
3
  import type { GraphQLField, GraphQLNamedType } from 'graphql';
4
4
  import type { PothosDrizzleSchemaConfig } from './config.js';
5
5
  import { type SelectionMap } from './selections.js';
@@ -1 +1 @@
1
- {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/utils/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,IAAI,EACT,WAAW,EACX,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAChF,KAAK,cAAc,GAAG,YAAY,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAKxE;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAQtE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1B,qBAAqB,EAAE,OAAO,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,YAA6B,MAAM,EAAE,yBAAyB,EAG7D;IAGD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GACiB,qBAAqB,GAAG,SAAS,CAChF;IAED,aAAa,CAAC,IAAI,EAAE,gBAAgB,4BAKnC;IAED,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,mFAyCnD;IAED,UAAU,CACR,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,EAC/D,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,cAAc,QAqBtB;IAED;;;OAGG;IACM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,WAE9F;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CA6BvC;IAED,oEAAoE;IACpE,OAAO,CAAC,aAAa;CAyBtB;AAED,eAAO,MAAM,cAAc,oFAE1B,CAAC"}
1
+ {"version":3,"file":"adapter.d.ts","sourceRoot":"","sources":["../../src/utils/adapter.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,IAAI,EACT,WAAW,EACX,KAAK,IAAI,EACT,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAA0B,KAAK,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAE7D,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACtD,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AACpE,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAChF,KAAK,cAAc,GAAG,YAAY,CAAC,qBAAqB,EAAE,YAAY,CAAC,CAAC;AAKxE;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,WAAW,CAAC,qBAAqB,EAAE,YAAY,CAAC;IAQtE,OAAO,CAAC,QAAQ,CAAC,MAAM;IAP1B,qBAAqB,EAAE,OAAO,CAAC;IAExC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ,YAA6B,MAAM,EAAE,yBAAyB,EAG7D;IAGD,QAAQ,CAAC,IAAI,EAAE,gBAAgB,GACiB,qBAAqB,GAAG,SAAS,CAChF;IAED,aAAa,CAAC,IAAI,EAAE,gBAAgB,4BAKnC;IAED,cAAc,CAAC,KAAK,EAAE,YAAY,CAAC,OAAO,EAAE,OAAO,CAAC,mFAyCnD;IAED,UAAU,CACR,EAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,EAAE,YAAY,EAC/D,KAAK,EAAE,qBAAqB,EAC5B,KAAK,EAAE,cAAc,QA8BtB;IAED;;;OAGG;IACM,iBAAiB,CAAC,QAAQ,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,WAE9F;IAED,OAAO,CAAC,IAAI,EAAE,WAAW,GAAG,YAAY,CA6BvC;IAED,oEAAoE;IACpE,OAAO,CAAC,aAAa;CAyBtB;AAED,eAAO,MAAM,cAAc,oFAE1B,CAAC"}
@@ -13,6 +13,7 @@ function _define_property(obj, key, value) {
13
13
  }
14
14
  import { createContextCache, PothosValidationError } from '@pothos/core';
15
15
  import { NodeAdapter } from '@pothos/selection-mapper';
16
+ import { getColumns } from 'drizzle-orm';
16
17
  import { pathInfoFor } from './path-info.js';
17
18
  import { omitUndefinedKeys } from './selections.js';
18
19
  /** A map without `columns`: every column. Shared and never mutated. */ const ALL = Object.freeze({});
@@ -76,10 +77,19 @@ import { omitUndefinedKeys } from './selections.js';
76
77
  visit.allColumns();
77
78
  return;
78
79
  }
79
- for (const key of Object.keys(columns)){
80
- if (columns[key]) {
80
+ const selected = Object.keys(columns).filter((key)=>columns[key]);
81
+ if (selected.length > 0) {
82
+ for (const key of selected){
81
83
  visit.column(key);
82
84
  }
85
+ } else if (Object.values(columns).some((value)=>value === false)) {
86
+ // An exclusion-only projection selects every other column. Resolve it before
87
+ // merging so another field can still request a column excluded here.
88
+ for (const key of Object.keys(getColumns(model.table))){
89
+ if (columns[key] !== false) {
90
+ visit.column(key);
91
+ }
92
+ }
83
93
  }
84
94
  }
85
95
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/adapter.ts"],"names":["createContextCache","PothosValidationError","NodeAdapter","pathInfoFor","omitUndefinedKeys","ALL","Object","freeze","DrizzleAdapter","modelFor","type","extensions","pothosDrizzleTable","typeSelection","selection","pothosDrizzleSelect","undefined","fieldSelection","field","compiled","fieldSelections","get","args","context","nested","selected","position","resolvedPath","pathInfo","path","segments","query","set","visitQuery","columns","with","withSelection","extras","model","visit","readRelations","key","keys","computed","allColumns","column","computedConflicts","name","value","has","toQuery","node","config","getPrimaryKey","columnToTsName","child","relations","relationConfig","relation","targetTableName","skipDeferredFragments","WeakMap","drizzleAdapter"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/utils/adapter.ts"],"names":["createContextCache","PothosValidationError","NodeAdapter","getColumns","pathInfoFor","omitUndefinedKeys","ALL","Object","freeze","DrizzleAdapter","modelFor","type","extensions","pothosDrizzleTable","typeSelection","selection","pothosDrizzleSelect","undefined","fieldSelection","field","compiled","fieldSelections","get","args","context","nested","selected","position","resolvedPath","pathInfo","path","segments","query","set","visitQuery","columns","with","withSelection","extras","model","visit","readRelations","key","keys","computed","allColumns","filter","length","column","values","some","value","table","computedConflicts","name","has","toQuery","node","config","getPrimaryKey","columnToTsName","child","relations","relationConfig","relation","targetTableName","skipDeferredFragments","WeakMap","drizzleAdapter"],"mappings":"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"}
@@ -18,6 +18,7 @@ _export(exports, {
18
18
  });
19
19
  const _core = require("@pothos/core");
20
20
  const _selectionmapper = require("@pothos/selection-mapper");
21
+ const _drizzleorm = require("drizzle-orm");
21
22
  const _pathinfo = require("./path-info.js");
22
23
  const _selections = require("./selections.js");
23
24
  function _define_property(obj, key, value) {
@@ -86,10 +87,19 @@ class DrizzleAdapter extends _selectionmapper.NodeAdapter {
86
87
  visit.allColumns();
87
88
  return;
88
89
  }
89
- for (const key of Object.keys(columns)){
90
- if (columns[key]) {
90
+ const selected = Object.keys(columns).filter((key)=>columns[key]);
91
+ if (selected.length > 0) {
92
+ for (const key of selected){
91
93
  visit.column(key);
92
94
  }
95
+ } else if (Object.values(columns).some((value)=>value === false)) {
96
+ // An exclusion-only projection selects every other column. Resolve it before
97
+ // merging so another field can still request a column excluded here.
98
+ for (const key of Object.keys((0, _drizzleorm.getColumns)(model.table))){
99
+ if (columns[key] !== false) {
100
+ visit.column(key);
101
+ }
102
+ }
93
103
  }
94
104
  }
95
105
  /**
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/adapter.ts"],"names":["DrizzleAdapter","drizzleAdapter","ALL","Object","freeze","NodeAdapter","modelFor","type","extensions","pothosDrizzleTable","typeSelection","selection","pothosDrizzleSelect","undefined","fieldSelection","field","compiled","fieldSelections","get","args","context","nested","selected","position","resolvedPath","pathInfo","path","pathInfoFor","segments","query","set","visitQuery","columns","with","withSelection","extras","model","visit","readRelations","omitUndefinedKeys","key","keys","computed","allColumns","column","computedConflicts","name","value","has","toQuery","node","config","getPrimaryKey","columnToTsName","child","relations","relationConfig","PothosValidationError","relation","targetTableName","skipDeferredFragments","WeakMap","createContextCache"],"mappings":";;;;;;;;;;;QAiCaA;eAAAA;;QAiKAC;eAAAA;;;sBAlM6C;iCAQnD;0BAKqB;4BACyB;;;;;;;;;;;;;;AAOrD,qEAAqE,GACrE,MAAMC,MAAoBC,OAAOC,MAAM,CAAC,CAAC;AAWlC,MAAMJ,uBAAuBK,4BAAW;IAa7C,8FAA8F;IAC9FC,SAASC,IAAsB,EAAE;YACxBA;QAAP,QAAOA,mBAAAA,KAAKC,UAAU,cAAfD,uCAAAA,iBAAiBE,kBAAkB;IAC5C;IAEAC,cAAcH,IAAsB,EAAE;YAElBA;QADlB,kFAAkF;QAClF,MAAMI,aAAYJ,mBAAAA,KAAKC,UAAU,cAAfD,uCAAAA,iBAAiBK,mBAAmB;QAEtD,OAAOD,cAAc,OAAOT,MAAMS,aAAaE;IACjD;IAEAC,eAAeC,KAAqC,EAAE;YAClCA;QAAlB,MAAMJ,aAAYI,oBAAAA,MAAMP,UAAU,cAAhBO,wCAAAA,kBAAkBH,mBAAmB;QACvD,IAAI,OAAOD,cAAc,YAAY;YACnC,OAAOA,aAAaE;QACtB;QAEA,IAAIG,WAAW,IAAI,CAACC,eAAe,CAACC,GAAG,CAACH;QACxC,IAAI,CAACC,UAAU;YACbA,WAAW,CAACG,MAAMC,SAASC,QAAQC,UAAUC;gBAC3C,qFAAqF;gBACrF,qFAAqF;gBACrF,IAAIC;gBACJ,MAAMC,WAAqB;oBACzB,IAAIC,QAAO;wBACTF,yBAAAA,0BAAAA,eAAAA,eAAiBG,IAAAA,qBAAW,EAACJ;wBAC7B,OAAOC,aAAaE,IAAI;oBAC1B;oBACA,IAAIE,YAAW;wBACbJ,yBAAAA,0BAAAA,eAAAA,eAAiBG,IAAAA,qBAAW,EAACJ;wBAC7B,OAAOC,aAAaI,QAAQ;oBAC9B;gBACF;gBACA,OAAOjB,UACLQ,MACAC,SACA,CAACS,OAAOH,MAAMnB,OACZc,OACE,+EAA+E;oBAC9E,OAAOQ,UAAU,aAAaA,MAAMV,MAAMC,SAASK,YAAYI,OAGhEH,MACAnB,OAEJe,UACAG;YAEJ;YACA,IAAI,CAACR,eAAe,CAACa,GAAG,CAACf,OAAOC;QAClC;QACA,OAAOA;IACT;IAEAe,WACE,EAAEC,OAAO,EAAEC,MAAMC,aAAa,EAAEC,MAAM,EAAE,GAAGhB,MAAoB,EAC/DiB,KAA4B,EAC5BC,KAAqB,EACrB;QACA,IAAI,CAACC,aAAa,CAACJ,eAAeE,OAAOC;QACzCA,MAAMlB,IAAI,CAACoB,IAAAA,6BAAiB,EAACpB;QAE7B,KAAK,MAAMqB,OAAOrC,OAAOsC,IAAI,CAACN,mBAAAA,oBAAAA,SAAU,CAAC,GAAI;YAC3CE,MAAMK,QAAQ,CAACF,KAAKL,MAAO,CAACK,IAAI;QAClC;QAEA,IAAI,CAACR,SAAS;YACZ,sEAAsE;YACtEK,MAAMM,UAAU;YAEhB;QACF;QAEA,KAAK,MAAMH,OAAOrC,OAAOsC,IAAI,CAACT,SAAU;YACtC,IAAIA,OAAO,CAACQ,IAAI,EAAE;gBAChBH,MAAMO,MAAM,CAACJ;YACf;QACF;IACF;IAEA;;;GAGC,GACD,AAASK,kBAAkBH,QAAsC,EAAEI,IAAY,EAAEC,KAAc,EAAE;QAC/F,OAAOL,SAASM,GAAG,CAACF,SAASJ,SAASxB,GAAG,CAAC4B,UAAUC;IACtD;IAEAE,QAAQC,IAAiB,EAAgB;QACvC,sFAAsF;QACtF,qDAAqD;QACrD,MAAMrB,QAGF;YAAE,GAAGqB,KAAK/B,IAAI;YAAEa,SAASnB;YAAWoB,MAAM,CAAC;YAAGE,QAAQ,CAAC;QAAE;QAE7D,IAAIe,KAAKlB,OAAO,EAAE;YAChBH,MAAMG,OAAO,GAAG,CAAC;YAEjB,KAAK,MAAMY,UAAUM,KAAKlB,OAAO,CAAE;gBACjCH,MAAMG,OAAO,CAACY,OAAO,GAAG;YAC1B;YAEA,KAAK,MAAMA,UAAU,IAAI,CAACO,MAAM,CAACC,aAAa,CAACF,KAAKd,KAAK,CAACU,IAAI,EAAG;gBAC/DjB,MAAMG,OAAO,CAAC,IAAI,CAACmB,MAAM,CAACE,cAAc,CAACT,QAAQ,GAAG;YACtD;QACF;QAEA,KAAK,MAAM,CAACJ,KAAKO,MAAM,IAAIG,KAAKR,QAAQ,CAAE;YACxCb,MAAMM,MAAM,CAACK,IAAI,GAAGO;QACtB;QAEA,KAAK,MAAM,CAACP,KAAKc,MAAM,IAAIJ,KAAKK,SAAS,CAAE;YACzC1B,MAAMI,IAAI,CAACO,IAAI,GAAG,IAAI,CAACS,OAAO,CAACK;QACjC;QAEA,OAAOzB;IACT;IAEA,kEAAkE,GAClE,AAAQS,cACNJ,aAAkD,EAClDE,KAA4B,EAC5BC,KAAqB,EACrB;QACA,KAAK,MAAMG,OAAOrC,OAAOsC,IAAI,CAACP,0BAAAA,2BAAAA,gBAAiB,CAAC,GAAI;YAClD,MAAMa,QAAQb,aAAc,CAACM,IAAI;YAEjC,IAAI,CAACO,OAAO;gBACV;YACF;YAEA,MAAMS,iBAAiBpB,MAAMmB,SAAS,CAACf,IAAI;YAE3C,IAAI,CAACgB,gBAAgB;gBACnB,MAAM,IAAIC,2BAAqB,CAAC,CAAC,SAAS,EAAEjB,IAAI,mBAAmB,EAAEJ,MAAMU,IAAI,EAAE;YACnF;YAEAT,MAAMqB,QAAQ,CACZlB,KACA,IAAI,CAACW,MAAM,CAACI,SAAS,CAACC,eAAeG,eAAe,CAAC,EACrDZ,UAAU,OAAO7C,MAAO6C;QAE5B;IACF;IAtJA,YAAY,AAAiBI,MAAiC,CAAE;QAC9D,KAAK,8CARP,uBAASS,yBAAT,KAAA,IAEA,uBAAiB3C,mBAAjB,KAAA,SAK6BkC,SAAAA,aALZlC,kBAAkB,IAAI4C;QAOrC,IAAI,CAACD,qBAAqB,GAAGT,OAAOS,qBAAqB;IAC3D;AAoJF;AAEO,MAAM3D,iBAAiB6D,IAAAA,wBAAkB,EAC9C,CAACX,SAAsC,IAAInD,eAAemD"}
1
+ {"version":3,"sources":["../../src/utils/adapter.ts"],"names":["DrizzleAdapter","drizzleAdapter","ALL","Object","freeze","NodeAdapter","modelFor","type","extensions","pothosDrizzleTable","typeSelection","selection","pothosDrizzleSelect","undefined","fieldSelection","field","compiled","fieldSelections","get","args","context","nested","selected","position","resolvedPath","pathInfo","path","pathInfoFor","segments","query","set","visitQuery","columns","with","withSelection","extras","model","visit","readRelations","omitUndefinedKeys","key","keys","computed","allColumns","filter","length","column","values","some","value","getColumns","table","computedConflicts","name","has","toQuery","node","config","getPrimaryKey","columnToTsName","child","relations","relationConfig","PothosValidationError","relation","targetTableName","skipDeferredFragments","WeakMap","createContextCache"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-drizzle",
3
- "version": "0.19.1",
3
+ "version": "0.19.2",
4
4
  "description": "A Pothos plugin for drizzle",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./dts/index.d.ts",
@@ -48,11 +48,11 @@
48
48
  "graphql-scalars": "^1.25.0",
49
49
  "graphql-tag": "^2.12.6",
50
50
  "postgres": "^3.4.9",
51
- "@pothos/core": "4.15.0",
52
- "@pothos/plugin-add-graphql": "4.3.2",
53
- "@pothos/plugin-errors": "4.9.2",
54
- "@pothos/plugin-relay": "4.8.0",
55
- "@pothos/plugin-scope-auth": "4.2.0",
51
+ "@pothos/core": "4.15.1",
52
+ "@pothos/plugin-add-graphql": "4.3.3",
53
+ "@pothos/plugin-errors": "4.9.3",
54
+ "@pothos/plugin-relay": "4.8.1",
55
+ "@pothos/plugin-scope-auth": "4.2.1",
56
56
  "@pothos/plugin-with-input": "4.1.5",
57
57
  "@pothos/test-utils": "2.2.1"
58
58
  },
@@ -7,7 +7,7 @@ import {
7
7
  type QueryVisitor,
8
8
  type SelectFn,
9
9
  } from '@pothos/selection-mapper';
10
- import type { TableRelationalConfig } from 'drizzle-orm';
10
+ import { getColumns, type Table, type TableRelationalConfig } from 'drizzle-orm';
11
11
  import type { GraphQLField, GraphQLNamedType } from 'graphql';
12
12
  import type { DrizzleFieldSelection, PathInfo } from '../types.js';
13
13
  import type { PothosDrizzleSchemaConfig } from './config.js';
@@ -118,10 +118,19 @@ export class DrizzleAdapter extends NodeAdapter<TableRelationalConfig, Selection
118
118
  return;
119
119
  }
120
120
 
121
- for (const key of Object.keys(columns)) {
122
- if (columns[key]) {
121
+ const selected = Object.keys(columns).filter((key) => columns[key]);
122
+ if (selected.length > 0) {
123
+ for (const key of selected) {
123
124
  visit.column(key);
124
125
  }
126
+ } else if (Object.values(columns).some((value) => value === false)) {
127
+ // An exclusion-only projection selects every other column. Resolve it before
128
+ // merging so another field can still request a column excluded here.
129
+ for (const key of Object.keys(getColumns(model.table as Table))) {
130
+ if (columns[key] !== false) {
131
+ visit.column(key);
132
+ }
133
+ }
125
134
  }
126
135
  }
127
136