@pothos/plugin-drizzle 0.19.1 → 0.20.0

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.
Files changed (48) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/README.md +50 -0
  3. package/dts/connection-helpers.d.ts.map +1 -1
  4. package/dts/global-types.d.ts +10 -1
  5. package/dts/global-types.d.ts.map +1 -1
  6. package/dts/index.d.ts +2 -1
  7. package/dts/index.d.ts.map +1 -1
  8. package/dts/utils/adapter.d.ts +1 -1
  9. package/dts/utils/adapter.d.ts.map +1 -1
  10. package/dts/utils/map-query.d.ts +16 -4
  11. package/dts/utils/map-query.d.ts.map +1 -1
  12. package/esm/connection-helpers.d.ts.map +1 -1
  13. package/esm/connection-helpers.js +2 -1
  14. package/esm/connection-helpers.js.map +1 -1
  15. package/esm/field-builder.js +10 -1
  16. package/esm/field-builder.js.map +1 -1
  17. package/esm/global-types.d.ts +10 -1
  18. package/esm/global-types.d.ts.map +1 -1
  19. package/esm/global-types.js.map +1 -1
  20. package/esm/index.d.ts +2 -1
  21. package/esm/index.d.ts.map +1 -1
  22. package/esm/index.js +2 -1
  23. package/esm/index.js.map +1 -1
  24. package/esm/utils/adapter.d.ts +1 -1
  25. package/esm/utils/adapter.d.ts.map +1 -1
  26. package/esm/utils/adapter.js +12 -2
  27. package/esm/utils/adapter.js.map +1 -1
  28. package/esm/utils/map-query.d.ts +16 -4
  29. package/esm/utils/map-query.d.ts.map +1 -1
  30. package/esm/utils/map-query.js +11 -13
  31. package/esm/utils/map-query.js.map +1 -1
  32. package/lib/connection-helpers.js +2 -1
  33. package/lib/connection-helpers.js.map +1 -1
  34. package/lib/field-builder.js +9 -0
  35. package/lib/field-builder.js.map +1 -1
  36. package/lib/index.js +7 -0
  37. package/lib/index.js.map +1 -1
  38. package/lib/utils/adapter.js +12 -2
  39. package/lib/utils/adapter.js.map +1 -1
  40. package/lib/utils/map-query.js +11 -13
  41. package/lib/utils/map-query.js.map +1 -1
  42. package/package.json +7 -7
  43. package/src/connection-helpers.ts +2 -1
  44. package/src/field-builder.ts +12 -1
  45. package/src/global-types.ts +30 -0
  46. package/src/index.ts +7 -1
  47. package/src/utils/adapter.ts +12 -3
  48. package/src/utils/map-query.ts +42 -21
@@ -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":";;;;;;;;;;;;;AAAA,SAASA,kBAAkB,EAAEC,qBAAqB,QAAQ,eAAe;AACzE,SAEEC,WAAW,QAKN,2BAA2B;AAClC,SAASC,UAAU,QAAgD,cAAc;AAIjF,SAASC,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,iBAAiB,QAA2B,kBAAkB;AAOvE,qEAAqE,GACrE,MAAMC,MAAoBC,OAAOC,MAAM,CAAC,CAAC;AAEzC;;;;;;;;CAQC,GACD,OAAO,MAAMC,uBAAuBP;IAalC,8FAA8F;IAC9FQ,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,eAAiBxB,YAAYuB;wBAC7B,OAAOC,aAAaE,IAAI;oBAC1B;oBACA,IAAIC,YAAW;wBACbH,yBAAAA,0BAAAA,eAAAA,eAAiBxB,YAAYuB;wBAC7B,OAAOC,aAAaG,QAAQ;oBAC9B;gBACF;gBACA,OAAOhB,UACLQ,MACAC,SACA,CAACQ,OAAOF,MAAMnB,OACZc,OACE,+EAA+E;oBAC9E,OAAOO,UAAU,aAAaA,MAAMT,MAAMC,SAASK,YAAYG,OAGhEF,MACAnB,OAEJe,UACAG;YAEJ;YACA,IAAI,CAACR,eAAe,CAACY,GAAG,CAACd,OAAOC;QAClC;QACA,OAAOA;IACT;IAEAc,WACE,EAAEC,OAAO,EAAEC,MAAMC,aAAa,EAAEC,MAAM,EAAE,GAAGf,MAAoB,EAC/DgB,KAA4B,EAC5BC,KAAqB,EACrB;QACA,IAAI,CAACC,aAAa,CAACJ,eAAeE,OAAOC;QACzCA,MAAMjB,IAAI,CAAClB,kBAAkBkB;QAE7B,KAAK,MAAMmB,OAAOnC,OAAOoC,IAAI,CAACL,mBAAAA,oBAAAA,SAAU,CAAC,GAAI;YAC3CE,MAAMI,QAAQ,CAACF,KAAKJ,MAAO,CAACI,IAAI;QAClC;QAEA,IAAI,CAACP,SAAS;YACZ,sEAAsE;YACtEK,MAAMK,UAAU;YAEhB;QACF;QAEA,MAAMnB,WAAWnB,OAAOoC,IAAI,CAACR,SAASW,MAAM,CAAC,CAACJ,MAAQP,OAAO,CAACO,IAAI;QAClE,IAAIhB,SAASqB,MAAM,GAAG,GAAG;YACvB,KAAK,MAAML,OAAOhB,SAAU;gBAC1Bc,MAAMQ,MAAM,CAACN;YACf;QACF,OAAO,IAAInC,OAAO0C,MAAM,CAACd,SAASe,IAAI,CAAC,CAACC,QAAUA,UAAU,QAAQ;YAClE,6EAA6E;YAC7E,qEAAqE;YACrE,KAAK,MAAMT,OAAOnC,OAAOoC,IAAI,CAACxC,WAAWoC,MAAMa,KAAK,GAAa;gBAC/D,IAAIjB,OAAO,CAACO,IAAI,KAAK,OAAO;oBAC1BF,MAAMQ,MAAM,CAACN;gBACf;YACF;QACF;IACF;IAEA;;;GAGC,GACD,AAASW,kBAAkBT,QAAsC,EAAEU,IAAY,EAAEH,KAAc,EAAE;QAC/F,OAAOP,SAASW,GAAG,CAACD,SAASV,SAAStB,GAAG,CAACgC,UAAUH;IACtD;IAEAK,QAAQC,IAAiB,EAAgB;QACvC,sFAAsF;QACtF,qDAAqD;QACrD,MAAMzB,QAGF;YAAE,GAAGyB,KAAKlC,IAAI;YAAEY,SAASlB;YAAWmB,MAAM,CAAC;YAAGE,QAAQ,CAAC;QAAE;QAE7D,IAAImB,KAAKtB,OAAO,EAAE;YAChBH,MAAMG,OAAO,GAAG,CAAC;YAEjB,KAAK,MAAMa,UAAUS,KAAKtB,OAAO,CAAE;gBACjCH,MAAMG,OAAO,CAACa,OAAO,GAAG;YAC1B;YAEA,KAAK,MAAMA,UAAU,IAAI,CAACU,MAAM,CAACC,aAAa,CAACF,KAAKlB,KAAK,CAACe,IAAI,EAAG;gBAC/DtB,MAAMG,OAAO,CAAC,IAAI,CAACuB,MAAM,CAACE,cAAc,CAACZ,QAAQ,GAAG;YACtD;QACF;QAEA,KAAK,MAAM,CAACN,KAAKS,MAAM,IAAIM,KAAKb,QAAQ,CAAE;YACxCZ,MAAMM,MAAM,CAACI,IAAI,GAAGS;QACtB;QAEA,KAAK,MAAM,CAACT,KAAKmB,MAAM,IAAIJ,KAAKK,SAAS,CAAE;YACzC9B,MAAMI,IAAI,CAACM,IAAI,GAAG,IAAI,CAACc,OAAO,CAACK;QACjC;QAEA,OAAO7B;IACT;IAEA,kEAAkE,GAClE,AAAQS,cACNJ,aAAkD,EAClDE,KAA4B,EAC5BC,KAAqB,EACrB;QACA,KAAK,MAAME,OAAOnC,OAAOoC,IAAI,CAACN,0BAAAA,2BAAAA,gBAAiB,CAAC,GAAI;YAClD,MAAMc,QAAQd,aAAc,CAACK,IAAI;YAEjC,IAAI,CAACS,OAAO;gBACV;YACF;YAEA,MAAMY,iBAAiBxB,MAAMuB,SAAS,CAACpB,IAAI;YAE3C,IAAI,CAACqB,gBAAgB;gBACnB,MAAM,IAAI9D,sBAAsB,CAAC,SAAS,EAAEyC,IAAI,mBAAmB,EAAEH,MAAMe,IAAI,EAAE;YACnF;YAEAd,MAAMwB,QAAQ,CACZtB,KACA,IAAI,CAACgB,MAAM,CAACI,SAAS,CAACC,eAAeE,eAAe,CAAC,EACrDd,UAAU,OAAO7C,MAAO6C;QAE5B;IACF;IA/JA,YAAY,AAAiBO,MAAiC,CAAE;QAC9D,KAAK,8CARP,uBAASQ,yBAAT,KAAA,IAEA,uBAAiB7C,mBAAjB,KAAA,SAK6BqC,SAAAA,aALZrC,kBAAkB,IAAI8C;QAOrC,IAAI,CAACD,qBAAqB,GAAGR,OAAOQ,qBAAqB;IAC3D;AA6JF;AAEA,OAAO,MAAME,iBAAiBpE,mBAC5B,CAAC0D,SAAsC,IAAIjD,eAAeiD,SAC1D"}
@@ -1,25 +1,37 @@
1
+ import { type MaybePromise } from '@pothos/core';
1
2
  import { type PathSegment } from '@pothos/selection-mapper';
3
+ import type { DBQueryConfig } from 'drizzle-orm';
2
4
  import type { GraphQLResolveInfo } from 'graphql';
3
5
  import { type DrizzlePlan } from './adapter.js';
4
6
  import type { PothosDrizzleSchemaConfig } from './config.js';
5
7
  import type { SelectionMap } from './selections.js';
6
- export interface QueryFromInfoOptions<T extends SelectionMap> {
8
+ export interface QueryFromInfoOptions<Await extends boolean = false> {
7
9
  config: PothosDrizzleSchemaConfig;
8
10
  context: object;
9
11
  info: GraphQLResolveInfo;
10
12
  typeName?: string;
11
- select?: T;
12
13
  path?: PathSegment[];
13
14
  paths?: PathSegment[][];
15
+ /** Whether the caller will await the query. Async selections otherwise throw. */
16
+ awaitSelections?: Await;
14
17
  }
15
- export declare function queryFromInfo<T extends SelectionMap>({ config, select, ...options }: QueryFromInfoOptions<T>): T;
18
+ /** Only explicitly selected columns are guaranteed; planning metadata is not part of the query. */
19
+ export type QueryFromInfoResult<T> = Omit<T, keyof QueryFromInfoOptions<boolean> | 'columns'> & {
20
+ columns: T extends {
21
+ columns: infer Columns extends {};
22
+ } ? Columns : {};
23
+ };
24
+ /** A boolean async option must account for promises, just like Prisma's helper. */
25
+ export type QueryFromInfoReturn<T, Await extends boolean> = [Await] extends [false] ? QueryFromInfoResult<T> : MaybePromise<QueryFromInfoResult<T>>;
26
+ /** Merge query options with the GraphQL selection and return a query ready for Drizzle. */
27
+ export declare function queryFromInfo<const T extends object, Await extends boolean = false>({ config, context, info, typeName, path, paths, awaitSelections, ...selection }: QueryFromInfoOptions<Await> & T & Record<Exclude<keyof T, keyof QueryFromInfoOptions<Await> | keyof DBQueryConfig<'many'>>, never>): QueryFromInfoReturn<T, Await>;
16
28
  /**
17
29
  * The plan for the field `info` resolves (or `typeName`), nothing recorded: a promise while a
18
30
  * select beneath the field is async, undefined when `paths` are given and nothing is selected
19
31
  * under them. The model loader's, and the first step of a `drizzleField` resolve, whose
20
32
  * merges are recorded so the resolver's `query()` selection can come first.
21
33
  */
22
- export declare function planFromInfo({ config, ...options }: Omit<QueryFromInfoOptions<SelectionMap>, 'select'>): DrizzlePlan | undefined;
34
+ export declare function planFromInfo({ config, ...options }: Omit<QueryFromInfoOptions, 'awaitSelections'>): DrizzlePlan | undefined;
23
35
  /**
24
36
  * The query for a plan `planFromInfo` returned, settled: the caller's `select` first, the walked
25
37
  * plan after it, the mappings recorded, and the query serialized. This is how the `query()`
@@ -1 +1 @@
1
- {"version":3,"file":"map-query.d.ts","sourceRoot":"","sources":["../../src/utils/map-query.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,WAAW,EAAQ,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,cAAc,CAAC;AAChE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,oBAAoB,CAAC,CAAC,SAAS,YAAY;IAC1D,MAAM,EAAE,yBAAyB,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;CACzB;AAED,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAAE,EACpD,MAAM,EACN,MAAM,EACN,GAAG,OAAO,EACX,EAAE,oBAAoB,CAAC,CAAC,CAAC,GAAG,CAAC,CAe7B;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,GAAG,OAAO,EACX,EAAE,IAAI,CAAC,oBAAoB,CAAC,YAAY,CAAC,EAAE,QAAQ,CAAC,GAAG,WAAW,GAAG,SAAS,CAE9E;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAClD,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,CAAC,GACT,CAAC,CAQH"}
1
+ {"version":3,"file":"map-query.d.ts","sourceRoot":"","sources":["../../src/utils/map-query.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,KAAK,WAAW,EAAQ,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAClD,OAAO,EAAE,KAAK,WAAW,EAAkB,MAAM,cAAc,CAAC;AAEhE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAEpD,MAAM,WAAW,oBAAoB,CAAC,KAAK,SAAS,OAAO,GAAG,KAAK;IACjE,MAAM,EAAE,yBAAyB,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,WAAW,EAAE,EAAE,CAAC;IACxB,iFAAiF;IACjF,eAAe,CAAC,EAAE,KAAK,CAAC;CACzB;AAED,mGAAmG;AACnG,MAAM,MAAM,mBAAmB,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,MAAM,oBAAoB,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,GAAG;IAC9F,OAAO,EAAE,CAAC,SAAS;QAAE,OAAO,EAAE,MAAM,OAAO,SAAS,EAAE,CAAA;KAAE,GAAG,OAAO,GAAG,EAAE,CAAC;CACzE,CAAC;AAEF,mFAAmF;AACnF,MAAM,MAAM,mBAAmB,CAAC,CAAC,EAAE,KAAK,SAAS,OAAO,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,GAC/E,mBAAmB,CAAC,CAAC,CAAC,GACtB,YAAY,CAAC,mBAAmB,CAAC,CAAC,CAAC,CAAC,CAAC;AAEzC,2FAA2F;AAC3F,wBAAgB,aAAa,CAAC,KAAK,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,SAAS,OAAO,GAAG,KAAK,EAAE,EACnF,MAAM,EACN,OAAO,EACP,IAAI,EACJ,QAAQ,EACR,IAAI,EACJ,KAAK,EACL,eAAe,EACf,GAAG,SAAS,EACb,EAAE,oBAAoB,CAAC,KAAK,CAAC,GAC5B,CAAC,GACD,MAAM,CACJ,OAAO,CAAC,MAAM,CAAC,EAAE,MAAM,oBAAoB,CAAC,KAAK,CAAC,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAC,EACjF,KAAK,CACN,GAAG,mBAAmB,CAAC,CAAC,EAAE,KAAK,CAAC,CAYlC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,CAAC,EAC3B,MAAM,EACN,GAAG,OAAO,EACX,EAAE,IAAI,CAAC,oBAAoB,EAAE,iBAAiB,CAAC,GAAG,WAAW,GAAG,SAAS,CAEzE;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,YAAY,EAClD,IAAI,EAAE,WAAW,GAAG,SAAS,EAC7B,MAAM,CAAC,EAAE,CAAC,GACT,CAAC,CAQH"}
@@ -1,20 +1,18 @@
1
1
  import { isThenable } from '@pothos/core';
2
2
  import { Plan } from '@pothos/selection-mapper';
3
3
  import { drizzleAdapter } from './adapter.js';
4
- export function queryFromInfo({ config, select, ...options }) {
5
- const plan = Plan.fromInfo(drizzleAdapter(config), {
6
- ...options,
7
- // A `select` without `columns` merges as "no columns yet", not "every column".
8
- initial: select ? {
9
- columns: {},
10
- ...select
11
- } : undefined
4
+ import { checkAwaitSelections } from './await-selections.js';
5
+ /** Merge query options with the GraphQL selection and return a query ready for Drizzle. */ export function queryFromInfo({ config, context, info, typeName, path, paths, awaitSelections, ...selection }) {
6
+ const plan = planFromInfo({
7
+ config,
8
+ context,
9
+ info,
10
+ typeName,
11
+ path,
12
+ paths
12
13
  });
13
- if (!plan) {
14
- // Nothing is planned under the paths: the caller gets its own selection back untouched.
15
- return select !== null && select !== void 0 ? select : {};
16
- }
17
- return isThenable(plan) ? plan.then((settled)=>settled.query()) : plan.query();
14
+ const query = isThenable(plan) ? plan.then((settled)=>queryFromPlan(settled, selection)) : queryFromPlan(plan, selection);
15
+ return checkAwaitSelections(query, awaitSelections, 'queryFromInfo', `${info.parentType.name}.${info.fieldName}`);
18
16
  }
19
17
  /**
20
18
  * The plan for the field `info` resolves (or `typeName`), nothing recorded: a promise while a
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/map-query.ts"],"names":["isThenable","Plan","drizzleAdapter","queryFromInfo","config","select","options","plan","fromInfo","initial","columns","undefined","then","settled","query","planFromInfo","queryFromPlan"],"mappings":"AAAA,SAASA,UAAU,QAAQ,eAAe;AAC1C,SAA2BC,IAAI,QAAQ,2BAA2B;AAElE,SAA2BC,cAAc,QAAQ,eAAe;AAchE,OAAO,SAASC,cAAsC,EACpDC,MAAM,EACNC,MAAM,EACN,GAAGC,SACqB;IACxB,MAAMC,OAAON,KAAKO,QAAQ,CAACN,eAAeE,SAAS;QACjD,GAAGE,OAAO;QACV,+EAA+E;QAC/EG,SAASJ,SAAS;YAAEK,SAAS,CAAC;YAAG,GAAGL,MAAM;QAAC,IAAIM;IACjD;IAEA,IAAI,CAACJ,MAAM;QACT,wFAAwF;QACxF,OAAQF,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,OACEL,WAAWO,QAAQA,KAAKK,IAAI,CAAC,CAACC,UAAY,AAACA,QAAwBC,KAAK,MAAMP,KAAKO,KAAK;AAE5F;AAEA;;;;;CAKC,GACD,OAAO,SAASC,aAAa,EAC3BX,MAAM,EACN,GAAGE,SACgD;IACnD,OAAOL,KAAKO,QAAQ,CAACN,eAAeE,SAASE;AAC/C;AAEA;;;;;;CAMC,GACD,OAAO,SAASU,cACdT,IAA6B,EAC7BF,MAAU;IAEV,IAAI,CAACE,MAAM;QACT,+EAA+E;QAC/E,OAAQF,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,+EAA+E;IAC/E,OAAOE,KAAKO,KAAK,CAACT,SAAS;QAAEK,SAAS,CAAC;QAAG,GAAGL,MAAM;IAAC,IAAIM;AAC1D"}
1
+ {"version":3,"sources":["../../src/utils/map-query.ts"],"names":["isThenable","Plan","drizzleAdapter","checkAwaitSelections","queryFromInfo","config","context","info","typeName","path","paths","awaitSelections","selection","plan","planFromInfo","query","then","settled","queryFromPlan","parentType","name","fieldName","options","fromInfo","select","columns","undefined"],"mappings":"AAAA,SAASA,UAAU,QAA2B,eAAe;AAC7D,SAA2BC,IAAI,QAAQ,2BAA2B;AAGlE,SAA2BC,cAAc,QAAQ,eAAe;AAChE,SAASC,oBAAoB,QAAQ,wBAAwB;AAyB7D,yFAAyF,GACzF,OAAO,SAASC,cAAqE,EACnFC,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,QAAQ,EACRC,IAAI,EACJC,KAAK,EACLC,eAAe,EACf,GAAGC,WAMF;IACD,MAAMC,OAAOC,aAAa;QAAET;QAAQC;QAASC;QAAMC;QAAUC;QAAMC;IAAM;IACzE,MAAMK,QAAQf,WAAWa,QACrBA,KAAKG,IAAI,CAAC,CAACC,UAAYC,cAAcD,SAAoCL,cACzEM,cAAcL,MAAMD;IAExB,OAAOT,qBACLY,OACAJ,iBACA,iBACA,GAAGJ,KAAKY,UAAU,CAACC,IAAI,CAAC,CAAC,EAAEb,KAAKc,SAAS,EAAE;AAE/C;AAEA;;;;;CAKC,GACD,OAAO,SAASP,aAAa,EAC3BT,MAAM,EACN,GAAGiB,SAC2C;IAC9C,OAAOrB,KAAKsB,QAAQ,CAACrB,eAAeG,SAASiB;AAC/C;AAEA;;;;;;CAMC,GACD,OAAO,SAASJ,cACdL,IAA6B,EAC7BW,MAAU;IAEV,IAAI,CAACX,MAAM;QACT,+EAA+E;QAC/E,OAAQW,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,+EAA+E;IAC/E,OAAOX,KAAKE,KAAK,CAACS,SAAS;QAAEC,SAAS,CAAC;QAAG,GAAGD,MAAM;IAAC,IAAIE;AAC1D"}
@@ -67,10 +67,11 @@ function drizzleConnectionHelpers(builder, refOrType, { select, resolveNode, que
67
67
  * the declared type denies.
68
68
  */ function getQuery(args, ctx, nestedSelectionOrInfo, options) {
69
69
  const nestedSelection = typeof nestedSelectionOrInfo === 'function' ? nestedSelectionOrInfo : (select, path)=>(0, _mapquery.queryFromInfo)({
70
+ ...select,
70
71
  info: nestedSelectionOrInfo,
71
72
  context: ctx,
72
73
  config,
73
- select: select,
74
+ awaitSelections: true,
74
75
  path
75
76
  });
76
77
  // Both callbacks start now; the query waits for whichever of them is async.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/connection-helpers.ts"],"names":["drizzleConnectionHelpers","builder","refOrType","select","resolveNode","query","args","createArgs","maxSize","options","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","config","getSchemaConfig","adapter","drizzleAdapter","tableName","baseQueryFor","ctx","completeValue","orEmpty","resolveList","baseQuery","list","parent","cursorFields","getQueryArgs","formatCursor","getCursorFormatter","wrapConnectionResult","limit","edge","resolve","isThenable","then","resolved","orderBy","where","fieldQuery","table","relations","columns","connectionQuery","drizzleCursorConnectionQuery","getPrimaryKey","extras","Math","abs","getQuery","nestedSelectionOrInfo","nestedSelection","path","queryFromInfo","info","context","nestedSelect","sel","error","built","Promise","all","nested","base","buildQuery","checkAwaitSelections","awaitSelections","String","node","createNode","mergeQuery","omitUndefinedKeys","toQuery","getArgs","ref","getRefFromModel"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/connection-helpers.ts"],"names":["drizzleConnectionHelpers","builder","refOrType","select","resolveNode","query","args","createArgs","maxSize","options","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","config","getSchemaConfig","adapter","drizzleAdapter","tableName","baseQueryFor","ctx","completeValue","orEmpty","resolveList","baseQuery","list","parent","cursorFields","getQueryArgs","formatCursor","getCursorFormatter","wrapConnectionResult","limit","edge","resolve","isThenable","then","resolved","orderBy","where","fieldQuery","table","relations","columns","connectionQuery","drizzleCursorConnectionQuery","getPrimaryKey","extras","Math","abs","getQuery","nestedSelectionOrInfo","nestedSelection","path","queryFromInfo","info","context","awaitSelections","nestedSelect","sel","error","built","Promise","all","nested","base","buildQuery","checkAwaitSelections","String","node","createNode","mergeQuery","omitUndefinedKeys","toQuery","getArgs","ref","getRefFromModel"],"mappings":"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"}
@@ -122,5 +122,14 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection({ type, maxSize
122
122
  }, edgeOptions);
123
123
  return fieldRef;
124
124
  };
125
+ fieldBuilderProto.drizzleQueryFromInfo = function drizzleQueryFromInfo(type, options) {
126
+ const ref = typeof type === 'string' ? (0, _refs.getRefFromModel)(type, this.builder) : type;
127
+ return (0, _mapquery.queryFromInfo)({
128
+ ...options,
129
+ config: (0, _config.getSchemaConfig)(this.builder),
130
+ typeName: this.builder.configStore.getTypeConfig(ref).name,
131
+ awaitSelections: true
132
+ });
133
+ };
125
134
 
126
135
  //# sourceMappingURL=field-builder.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/field-builder.ts"],"names":["fieldBuilderProto","RootFieldBuilder","prototype","refForType","builder","type","modelOrRef","Array","isArray","typeRef","getRefFromModel","planResolver","resolve","run","plan","parent","args","context","info","select","queryFromPlan","planFromInfo","config","getSchemaConfig","isThenable","then","settled","drizzleField","options","field","drizzleFieldWithInput","fieldWithInput","drizzleConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","totalCount","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","tableName","resolveConnection","totalCountOnly","resolveDrizzleCursorConnection","ctx","q","fieldRef","connection","returnType","getNamedType","fields","isObjectType","isInterfaceType","getFields","selections","fieldNodes","every","selection","selectionSet","s","kind","Kind","FIELD","value","extensions","pothosDrizzleTotalCount","paths","ObjectRef","t","int","nullable"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/field-builder.ts"],"names":["fieldBuilderProto","RootFieldBuilder","prototype","refForType","builder","type","modelOrRef","Array","isArray","typeRef","getRefFromModel","planResolver","resolve","run","plan","parent","args","context","info","select","queryFromPlan","planFromInfo","config","getSchemaConfig","isThenable","then","settled","drizzleField","options","field","drizzleFieldWithInput","fieldWithInput","drizzleConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","totalCount","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","tableName","resolveConnection","totalCountOnly","resolveDrizzleCursorConnection","ctx","q","fieldRef","connection","returnType","getNamedType","fields","isObjectType","isInterfaceType","getFields","selections","fieldNodes","every","selection","selectionSet","s","kind","Kind","FIELD","value","extensions","pothosDrizzleTotalCount","paths","ObjectRef","t","int","nullable","drizzleQueryFromInfo","queryFromInfo","awaitSelections"],"mappings":"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"}
package/lib/index.js CHANGED
@@ -26,6 +26,12 @@ _export(exports, {
26
26
  },
27
27
  get drizzleTableName () {
28
28
  return _types.drizzleTableName;
29
+ },
30
+ get getSchemaConfig () {
31
+ return _config.getSchemaConfig;
32
+ },
33
+ get queryFromInfo () {
34
+ return _mapquery.queryFromInfo;
29
35
  }
30
36
  });
31
37
  require("./global-types.js");
@@ -37,6 +43,7 @@ const _connectionhelpers = require("./connection-helpers.js");
37
43
  const _drizzlefieldbuilder = require("./drizzle-field-builder.js");
38
44
  const _types = _export_star(require("./types.js"), exports);
39
45
  const _config = require("./utils/config.js");
46
+ const _mapquery = require("./utils/map-query.js");
40
47
  function _export_star(from, to) {
41
48
  Object.keys(from).forEach(function(k) {
42
49
  if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"names":["DrizzleObjectFieldBuilder","PothosDrizzlePlugin","drizzleClientCache","drizzleConnectionHelpers","drizzleTableName","pluginName","BasePlugin","onTypeConfig","typeConfig","kind","model","extensions","pothosDrizzleModel","table","pothosDrizzleTable","iface","interfaces","interfaceConfig","buildCache","getTypeConfig","interfaceModel","PothosSchemaError","name","onOutputFieldConfig","fieldConfig","pothosOptions","select","pothosDrizzleSelect","args","ctx","nestedQuery","_resolveSelection","pathInfo","nestedQueryWithPath","Object","assign","completeValue","wrapSelect","columns","wrapResolve","resolver","parentConfig","parentType","loadedCheck","pothosDrizzleLoaded","parentTypes","Set","add","modelLoader","pothosDrizzleLoader","Error","parent","context","info","mapping","getLoaderMapping","path","setFieldMapping","loadSelection","then","result","selected","SchemaBuilder","registerPlugin"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"names":["DrizzleObjectFieldBuilder","PothosDrizzlePlugin","drizzleClientCache","drizzleConnectionHelpers","drizzleTableName","getSchemaConfig","queryFromInfo","pluginName","BasePlugin","onTypeConfig","typeConfig","kind","model","extensions","pothosDrizzleModel","table","pothosDrizzleTable","iface","interfaces","interfaceConfig","buildCache","getTypeConfig","interfaceModel","PothosSchemaError","name","onOutputFieldConfig","fieldConfig","pothosOptions","select","pothosDrizzleSelect","args","ctx","nestedQuery","_resolveSelection","pathInfo","nestedQueryWithPath","Object","assign","completeValue","wrapSelect","columns","wrapResolve","resolver","parentConfig","parentType","loadedCheck","pothosDrizzleLoaded","parentTypes","Set","add","modelLoader","pothosDrizzleLoader","Error","parent","context","info","mapping","getLoaderMapping","path","setFieldMapping","loadSelection","then","result","selected","SchemaBuilder","registerPlugin"],"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":"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"}
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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"}
@@ -22,20 +22,18 @@ _export(exports, {
22
22
  const _core = require("@pothos/core");
23
23
  const _selectionmapper = require("@pothos/selection-mapper");
24
24
  const _adapter = require("./adapter.js");
25
- function queryFromInfo({ config, select, ...options }) {
26
- const plan = _selectionmapper.Plan.fromInfo((0, _adapter.drizzleAdapter)(config), {
27
- ...options,
28
- // A `select` without `columns` merges as "no columns yet", not "every column".
29
- initial: select ? {
30
- columns: {},
31
- ...select
32
- } : undefined
25
+ const _awaitselections = require("./await-selections.js");
26
+ function queryFromInfo({ config, context, info, typeName, path, paths, awaitSelections, ...selection }) {
27
+ const plan = planFromInfo({
28
+ config,
29
+ context,
30
+ info,
31
+ typeName,
32
+ path,
33
+ paths
33
34
  });
34
- if (!plan) {
35
- // Nothing is planned under the paths: the caller gets its own selection back untouched.
36
- return select !== null && select !== void 0 ? select : {};
37
- }
38
- return (0, _core.isThenable)(plan) ? plan.then((settled)=>settled.query()) : plan.query();
35
+ const query = (0, _core.isThenable)(plan) ? plan.then((settled)=>queryFromPlan(settled, selection)) : queryFromPlan(plan, selection);
36
+ return (0, _awaitselections.checkAwaitSelections)(query, awaitSelections, 'queryFromInfo', `${info.parentType.name}.${info.fieldName}`);
39
37
  }
40
38
  function planFromInfo({ config, ...options }) {
41
39
  return _selectionmapper.Plan.fromInfo((0, _adapter.drizzleAdapter)(config), options);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/map-query.ts"],"names":["planFromInfo","queryFromInfo","queryFromPlan","config","select","options","plan","Plan","fromInfo","drizzleAdapter","initial","columns","undefined","isThenable","then","settled","query"],"mappings":";;;;;;;;;;;QA4CgBA;eAAAA;;QA3BAC;eAAAA;;QAyCAC;eAAAA;;;sBA1DW;iCACY;yBAEU;AAc1C,SAASD,cAAsC,EACpDE,MAAM,EACNC,MAAM,EACN,GAAGC,SACqB;IACxB,MAAMC,OAAOC,qBAAI,CAACC,QAAQ,CAACC,IAAAA,uBAAc,EAACN,SAAS;QACjD,GAAGE,OAAO;QACV,+EAA+E;QAC/EK,SAASN,SAAS;YAAEO,SAAS,CAAC;YAAG,GAAGP,MAAM;QAAC,IAAIQ;IACjD;IAEA,IAAI,CAACN,MAAM;QACT,wFAAwF;QACxF,OAAQF,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,OACES,IAAAA,gBAAU,EAACP,QAAQA,KAAKQ,IAAI,CAAC,CAACC,UAAY,AAACA,QAAwBC,KAAK,MAAMV,KAAKU,KAAK;AAE5F;AAQO,SAAShB,aAAa,EAC3BG,MAAM,EACN,GAAGE,SACgD;IACnD,OAAOE,qBAAI,CAACC,QAAQ,CAACC,IAAAA,uBAAc,EAACN,SAASE;AAC/C;AASO,SAASH,cACdI,IAA6B,EAC7BF,MAAU;IAEV,IAAI,CAACE,MAAM;QACT,+EAA+E;QAC/E,OAAQF,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,+EAA+E;IAC/E,OAAOE,KAAKU,KAAK,CAACZ,SAAS;QAAEO,SAAS,CAAC;QAAG,GAAGP,MAAM;IAAC,IAAIQ;AAC1D"}
1
+ {"version":3,"sources":["../../src/utils/map-query.ts"],"names":["planFromInfo","queryFromInfo","queryFromPlan","config","context","info","typeName","path","paths","awaitSelections","selection","plan","query","isThenable","then","settled","checkAwaitSelections","parentType","name","fieldName","options","Plan","fromInfo","drizzleAdapter","select","columns","undefined"],"mappings":";;;;;;;;;;;QAiEgBA;eAAAA;;QAlCAC;eAAAA;;QAgDAC;eAAAA;;;sBA/E8B;iCACP;yBAGU;iCACZ;AA0B9B,SAASD,cAAqE,EACnFE,MAAM,EACNC,OAAO,EACPC,IAAI,EACJC,QAAQ,EACRC,IAAI,EACJC,KAAK,EACLC,eAAe,EACf,GAAGC,WAMF;IACD,MAAMC,OAAOX,aAAa;QAAEG;QAAQC;QAASC;QAAMC;QAAUC;QAAMC;IAAM;IACzE,MAAMI,QAAQC,IAAAA,gBAAU,EAACF,QACrBA,KAAKG,IAAI,CAAC,CAACC,UAAYb,cAAca,SAAoCL,cACzER,cAAcS,MAAMD;IAExB,OAAOM,IAAAA,qCAAoB,EACzBJ,OACAH,iBACA,iBACA,GAAGJ,KAAKY,UAAU,CAACC,IAAI,CAAC,CAAC,EAAEb,KAAKc,SAAS,EAAE;AAE/C;AAQO,SAASnB,aAAa,EAC3BG,MAAM,EACN,GAAGiB,SAC2C;IAC9C,OAAOC,qBAAI,CAACC,QAAQ,CAACC,IAAAA,uBAAc,EAACpB,SAASiB;AAC/C;AASO,SAASlB,cACdS,IAA6B,EAC7Ba,MAAU;IAEV,IAAI,CAACb,MAAM;QACT,+EAA+E;QAC/E,OAAQa,mBAAAA,oBAAAA,SAAU,CAAC;IACrB;IAEA,+EAA+E;IAC/E,OAAOb,KAAKC,KAAK,CAACY,SAAS;QAAEC,SAAS,CAAC;QAAG,GAAGD,MAAM;IAAC,IAAIE;AAC1D"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-drizzle",
3
- "version": "0.19.1",
3
+ "version": "0.20.0",
4
4
  "description": "A Pothos plugin for drizzle",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./dts/index.d.ts",
@@ -48,13 +48,13 @@
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/plugin-add-graphql": "4.3.3",
52
+ "@pothos/core": "4.15.1",
53
+ "@pothos/plugin-errors": "4.9.3",
54
+ "@pothos/plugin-relay": "4.8.1",
56
55
  "@pothos/plugin-with-input": "4.1.5",
57
- "@pothos/test-utils": "2.2.1"
56
+ "@pothos/test-utils": "2.2.1",
57
+ "@pothos/plugin-scope-auth": "4.2.1"
58
58
  },
59
59
  "scripts": {
60
60
  "type": "tsc --project tsconfig.type.json",
@@ -248,10 +248,11 @@ export function drizzleConnectionHelpers<
248
248
  ? nestedSelectionOrInfo
249
249
  : (select, path) =>
250
250
  queryFromInfo({
251
+ ...(select as SelectionMap),
251
252
  info: nestedSelectionOrInfo,
252
253
  context: ctx,
253
254
  config,
254
- select: select as SelectionMap,
255
+ awaitSelections: true,
255
256
  path,
256
257
  });
257
258
  // Both callbacks start now; the query waits for whichever of them is async.
@@ -14,7 +14,7 @@ import type { DrizzleConnectionFieldOptions } from './types.js';
14
14
  import type { DrizzlePlan } from './utils/adapter.js';
15
15
  import { getSchemaConfig } from './utils/config.js';
16
16
  import { resolveDrizzleCursorConnection } from './utils/cursors.js';
17
- import { planFromInfo, queryFromPlan } from './utils/map-query.js';
17
+ import { planFromInfo, queryFromInfo, queryFromPlan } from './utils/map-query.js';
18
18
  import { getRefFromModel } from './utils/refs.js';
19
19
  import type { SelectionMap } from './utils/selections.js';
20
20
 
@@ -241,3 +241,14 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection<
241
241
 
242
242
  return fieldRef;
243
243
  } as never;
244
+
245
+ fieldBuilderProto.drizzleQueryFromInfo = function drizzleQueryFromInfo(type, options) {
246
+ const ref = typeof type === 'string' ? getRefFromModel(type, this.builder) : type;
247
+
248
+ return queryFromInfo({
249
+ ...options,
250
+ config: getSchemaConfig(this.builder),
251
+ typeName: this.builder.configStore.getTypeConfig(ref).name,
252
+ awaitSelections: true,
253
+ }) as never;
254
+ };
@@ -4,6 +4,7 @@ import type {
4
4
  FieldNullability,
5
5
  InputFieldMap,
6
6
  InterfaceParam,
7
+ MaybeAsyncSelection,
7
8
  NormalizeArgs,
8
9
  OutputType,
9
10
  PluginName,
@@ -11,12 +12,14 @@ import type {
11
12
  ShapeFromTypeParam,
12
13
  TypeParam,
13
14
  } from '@pothos/core';
15
+ import type { PathSegment } from '@pothos/selection-mapper';
14
16
  import type {
15
17
  BuildQueryResult,
16
18
  DBQueryConfig,
17
19
  TableRelationalConfig,
18
20
  TablesRelationalConfig,
19
21
  } from 'drizzle-orm';
22
+ import type { GraphQLResolveInfo } from 'graphql';
20
23
  import type { DrizzleObjectFieldBuilder } from './drizzle-field-builder.js';
21
24
  import type { PothosDrizzlePlugin } from './index.js';
22
25
  import type { DrizzleInterfaceRef, DrizzleRef } from './interface-ref.js';
@@ -36,6 +39,7 @@ import type {
36
39
  ShapeFromConnection,
37
40
  ShapeFromIdColumns,
38
41
  } from './types.js';
42
+ import type { QueryFromInfoResult } from './utils/map-query.js';
39
43
 
40
44
  declare global {
41
45
  export namespace PothosSchemaTypes {
@@ -215,6 +219,32 @@ declare global {
215
219
  ParentShape,
216
220
  Kind extends FieldKind = FieldKind,
217
221
  > {
222
+ drizzleQueryFromInfo: <
223
+ Table extends keyof Types['DrizzleRelations'],
224
+ const Selection extends DBQueryConfig<
225
+ 'many',
226
+ Types['DrizzleRelations'],
227
+ Types['DrizzleRelations'][Table]
228
+ > = {},
229
+ >(
230
+ type: Table | DrizzleRef<Types, Table>,
231
+ // The concrete query intersection contextually types callbacks while Selection retains literals.
232
+ options: Selection &
233
+ DBQueryConfig<'many', Types['DrizzleRelations'], Types['DrizzleRelations'][Table]> &
234
+ Record<
235
+ Exclude<
236
+ keyof Selection,
237
+ keyof DBQueryConfig<'many'> | 'context' | 'info' | 'path' | 'paths'
238
+ >,
239
+ never
240
+ > & {
241
+ context: Types['Context'];
242
+ info: GraphQLResolveInfo;
243
+ path?: PathSegment[];
244
+ paths?: PathSegment[][];
245
+ },
246
+ ) => MaybeAsyncSelection<Types, QueryFromInfoResult<Selection>>;
247
+
218
248
  drizzleField: <
219
249
  Args extends InputFieldMap,
220
250
  Param extends
package/src/index.ts CHANGED
@@ -19,7 +19,13 @@ export { drizzleConnectionHelpers } from './connection-helpers.js';
19
19
  export { DrizzleObjectFieldBuilder } from './drizzle-field-builder.js';
20
20
  export * from './types.js';
21
21
  export { drizzleTableName } from './types.js';
22
- export { drizzleClientCache } from './utils/config.js';
22
+ export { drizzleClientCache, getSchemaConfig } from './utils/config.js';
23
+ export {
24
+ type QueryFromInfoOptions,
25
+ type QueryFromInfoResult,
26
+ type QueryFromInfoReturn,
27
+ queryFromInfo,
28
+ } from './utils/map-query.js';
23
29
 
24
30
  const pluginName = 'drizzle';
25
31
 
@@ -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