@pothos/plugin-drizzle 0.15.0 → 0.16.1

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/field-builder.ts"],"names":["fieldBuilderProto","RootFieldBuilder","prototype","drizzleField","type","resolve","options","modelOrRef","Array","isArray","typeRef","getRefFromModel","builder","typeParam","field","parent","args","context","info","select","queryFromInfo","config","getSchemaConfig","drizzleFieldWithInput","fieldWithInput","drizzleConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","tableName","fieldRef","connection","resolveDrizzleCursorConnection","ctx","q","ObjectRef","extensions"],"mappings":"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"}
1
+ {"version":3,"sources":["../src/field-builder.ts"],"names":["fieldBuilderProto","RootFieldBuilder","prototype","drizzleField","type","resolve","options","modelOrRef","Array","isArray","typeRef","getRefFromModel","builder","typeParam","field","parent","args","context","info","select","queryFromInfo","config","getSchemaConfig","drizzleFieldWithInput","fieldWithInput","drizzleConnection","maxSize","drizzle","maxConnectionSize","defaultSize","defaultConnectionSize","totalCount","connectionOptions","edgeOptions","ref","typeName","configStore","getTypeConfig","name","tableName","fieldRef","connection","returnType","fields","isObjectType","isInterfaceType","getFields","selections","fieldNodes","totalCountOnly","every","selection","selectionSet","s","kind","Kind","FIELD","value","extensions","pothosDrizzleTotalCount","resolveDrizzleCursorConnection","ctx","q","ObjectRef","t","int","nullable"],"mappings":"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"}
package/lib/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/types.ts"],"names":["DrizzleObjectRef","drizzleTableName","Symbol","for"],"mappings":";;;;;;;;;;;QAmrBSA;eAAAA,2BAAgB;;QAjmBZC;eAAAA;;;2BAimBoB;AAjmB1B,MAAMA,mBAAmBC,OAAOC,GAAG,CAAC"}
1
+ {"version":3,"sources":["../src/types.ts"],"names":["DrizzleObjectRef","drizzleTableName","Symbol","for"],"mappings":";;;;;;;;;;;QAssBSA;eAAAA,2BAAgB;;QAnnBZC;eAAAA;;;2BAmnBoB;AAnnB1B,MAAMA,mBAAmBC,OAAOC,GAAG,CAAC"}
@@ -415,7 +415,7 @@ function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, d
415
415
  } : whereClauses[0]
416
416
  };
417
417
  }
418
- function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent) {
418
+ function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent, totalCount) {
419
419
  var _edges_, _edges_1;
420
420
  const gotFullResults = results.length === Math.abs(limit);
421
421
  const hasNextPage = args.before ? true : args.last ? false : gotFullResults;
@@ -424,6 +424,7 @@ function wrapConnectionResult(results, args, limit, cursor, resolveNode, parent)
424
424
  const connection = {
425
425
  parent,
426
426
  args,
427
+ totalCount,
427
428
  edges: [],
428
429
  pageInfo: {
429
430
  startCursor: null,
@@ -498,7 +499,22 @@ async function resolveDrizzleCursorConnection(tableName, info, typeName, config,
498
499
  if (!results) {
499
500
  return results;
500
501
  }
501
- return wrapConnectionResult(results, options.args, query.limit, formatter, undefined, parent);
502
+ // Handle totalCountOnly case where resolve returns [] without calling query function
503
+ if (!query) {
504
+ return {
505
+ parent,
506
+ args: options.args,
507
+ totalCount: options.totalCount,
508
+ edges: [],
509
+ pageInfo: {
510
+ startCursor: null,
511
+ endCursor: null,
512
+ hasPreviousPage: false,
513
+ hasNextPage: false
514
+ }
515
+ };
516
+ }
517
+ return wrapConnectionResult(results, options.args, query.limit, formatter, undefined, parent, options.totalCount);
502
518
  }
503
519
 
504
520
  //# sourceMappingURL=cursors.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","formatIDChunk","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","getIDParser","getIDSerializer","parseDrizzleCursor","parseSerializedDrizzleColumn","parseSerializedIDColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","config","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","dataType","error","name","parsed","Array","isArray","forEach","i","parseOrderBy","table","orderBy","invert","entries","columns","normalized","asc","desc","push","direction","column","tableColumns","getColumns","Object","fromEntries","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","cursorParser","parsedCursor","parts","index","columnName","compare","gt","lt","AND","c","OR","cursorColumns","results","resolveNode","parent","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","queryFromInfo","context","select","paths","undefined"],"mappings":";;;;;;;;;;;QA0VgBA;eAAAA;;QAlUAC;eAAAA;;QAqBAC;eAAAA;;QAQAC;eAAAA;;QA8KAC;eAAAA;;QAhJAC;eAAAA;;QAcAC;eAAAA;;QAoKAC;eAAAA;;QA5EAC;eAAAA;;QArHAC;eAAAA;;QAyCAC;eAAAA;;QAiBAC;eAAAA;;QA2BAC;eAAAA;;QAqWMC;eAAAA;;QArDNC;eAAAA;;;sBAncT;4BAQA;0BAIuB;AAG9B,MAAMC,mBAAmB;AACzB,MAAMC,eAAe;AAEd,SAASf,kBAAkBgB,KAAc;IAC9C,IAAIA,SAAS,MAAM;QACjB,OAAO;IACT;IAEA,IAAIA,iBAAiBC,MAAM;QACzB,OAAO,CAAC,EAAE,EAAEC,OAAOC,OAAOH,SAAS;IACrC;IAEA,OAAQ,OAAOA;QACb,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,OAAO;QACrB,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,OAAO;QACrB,KAAK;YACH,OAAO,CAAC,EAAE,EAAEA,OAAO;QACrB;YACE,MAAM,IAAII,2BAAqB,CAAC,CAAC,wBAAwB,EAAE,OAAOJ,OAAO;IAC7E;AACF;AAEO,SAASf,oBACdoB,MAA+B,EAC/BC,MAAgB,EAChBC,MAAiC;IAEjC,OAAOlB,mBAAmBiB,QAAQC,QAAQF;AAC5C;AAEO,SAASnB,cAAcc,KAAc;IAC1C,IAAIA,iBAAiBC,MAAM;QACzB,OAAO,GAAGC,OAAOC,OAAOH,SAAS;IACnC;IAEA,OAAQ,OAAOA;QACb,KAAK;QACL,KAAK;QACL,KAAK;YACH,OAAO,GAAGA,OAAO;QACnB;YACE,MAAM,IAAII,2BAAqB,CAAC,CAAC,oBAAoB,EAAE,OAAOJ,OAAO;IACzE;AACF;AAEO,SAASR,gBAAgBc,MAAgB,EAAEC,MAAiC;IACjF,IAAID,OAAOE,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIJ,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACJ;QACN,IAAIM,OAAOE,MAAM,GAAG,GAAG;YACrBF,OAAOG,GAAG,CAAC,CAACC,QAAUA,MAAMC,SAAS;YACrC,OAAO,GAAGC,KAAKC,SAAS,CAACP,OAAOG,GAAG,CAAC,CAACK,MAAQd,KAAK,CAACO,OAAOQ,cAAc,CAACD,KAAK,IAAI;QACpF;QAEA,OAAO,GAAG5B,cAAcc,KAAK,CAACO,OAAOQ,cAAc,CAACT,MAAM,CAAC,EAAE,EAAE,GAAG;IACpE;AACF;AAEO,SAASlB,oBAAoBkB,MAAgB,EAAEC,MAAiC;IACrF,IAAID,OAAOE,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIJ,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACJ;QACN,IAAIM,OAAOE,MAAM,GAAG,GAAG;YACrB,OAAO,CAAC,EAAE,EAAEI,KAAKC,SAAS,CAACP,OAAOG,GAAG,CAAC,CAACK,MAAQd,KAAK,CAACO,OAAOQ,cAAc,CAACD,KAAK,IAAI;QACtF;QAEA,OAAO9B,kBAAkBgB,KAAK,CAACO,OAAOQ,cAAc,CAACT,MAAM,CAAC,EAAE,EAAE;IAClE;AACF;AAEO,SAASjB,mBAAmBiB,MAAgB,EAAEC,MAAiC;IACpF,IAAID,OAAOE,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIJ,2BAAqB,CAAC;IAClC;IAEA,MAAMY,aAAa5B,oBAAoBkB,QAAQC;IAE/C,OAAO,CAACP;QACN,OAAOiB,IAAAA,kBAAY,EAAC,CAAC,GAAG,EAAED,WAAWhB,QAAQ;IAC/C;AACF;AAEO,SAASP,mBAAmByB,MAAe;IAChD,IAAI,OAAOA,WAAW,UAAU;QAC9B,MAAM,IAAId,2BAAqB,CAAC;IAClC;IAEA,IAAI;QACF,MAAMe,UAAUC,IAAAA,kBAAY,EAACF;QAC7B,IAAI,CAACC,QAAQE,UAAU,CAAC,QAAQ;YAC9B,MAAM,IAAIjB,2BAAqB,CAAC;QAClC;QAEA,OAAOV,6BAA6ByB,QAAQG,KAAK,CAAC;IACpD,EAAE,OAAM;QACN,MAAM,IAAIlB,2BAAqB,CAAC,CAAC,gBAAgB,EAAEc,QAAQ;IAC7D;AACF;AAEO,SAASxB,6BAA6BM,KAAc;IACzD,IAAI,OAAOA,UAAU,UAAU;QAC7B,MAAM,IAAII,2BAAqB,CAAC;IAClC;IAEA,IAAI;QACF,MAAM,GAAGmB,MAAMC,SAAS,GAAGxB,MAAMyB,KAAK,CAAC;QAEvC,OAAQF;YACN,KAAK;gBACH,OAAOC;YACT,KAAK;gBACH,OAAOrB,OAAOuB,QAAQ,CAACF,UAAU;YACnC,KAAK;gBACH,OAAO,IAAIvB,KAAKE,OAAOuB,QAAQ,CAACF,UAAU;YAC5C,KAAK;gBACH,OAAOZ,KAAKe,KAAK,CAACH;YACpB,KAAK;gBACH,OAAOI,OAAOJ;YAChB;gBACE,MAAM,IAAIpB,2BAAqB,CAAC,CAAC,oBAAoB,EAAEmB,MAAM;QACjE;IACF,EAAE,OAAM;QACN,MAAM,IAAInB,2BAAqB,CAAC,CAAC,yBAAyB,EAAEJ,OAAO;IACrE;AACF;AAEO,SAASL,wBAAwBkC,EAAU,EAAEnB,KAAa;IAC/D,IAAI,CAACmB,IAAI;QACP,OAAOA;IACT;IAEA,IAAI;QACF,IAAInB,MAAMoB,QAAQ,CAACT,UAAU,CAAC,WAAW;YACvC,OAAOlB,OAAOuB,QAAQ,CAACG,IAAI;QAC7B;QAEA,IAAInB,MAAMoB,QAAQ,CAACT,UAAU,CAAC,WAAW;YACvC,OAAOO,OAAOC;QAChB;QAEA,IAAInB,MAAMoB,QAAQ,CAACT,UAAU,CAAC,WAAW;YACvC,OAAOQ;QACT;QAEA,IAAInB,MAAMoB,QAAQ,KAAK,eAAe;YACpC,OAAO,IAAI7B,KAAK4B;QAClB;QAEA,MAAM,IAAIzB,2BAAqB,CAAC,CAAC,oBAAoB,EAAEM,MAAMoB,QAAQ,EAAE;IACzE,EAAE,OAAOC,OAAgB;QACvB,IAAIA,iBAAiB3B,2BAAqB,EAAE;YAC1C,MAAM2B;QACR;QAEA,MAAM,IAAI3B,2BAAqB,CAAC,CAAC,uBAAuB,EAAEyB,IAAI;IAChE;AACF;AAEO,SAAStC,YAAYe,MAAyB;IACnD,IAAIA,OAAOE,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIJ,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACJ;QACN,IAAIM,OAAOE,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACF,MAAM,CAAC,EAAE,CAAC0B,IAAI,CAAC,EAAErC,wBAAwBK,OAAOM,MAAM,CAAC,EAAE;YAAE;QACvE;QAEA,IAAI;YACF,MAAM2B,SAASrB,KAAKe,KAAK,CAAC3B;YAE1B,IAAI,CAACkC,MAAMC,OAAO,CAACF,SAAS;gBAC1B,MAAM,IAAI7B,2BAAqB,CAC7B,CAAC,kDAAkD,EAAEJ,OAAO;YAEhE;YAEA,IAAIiC,OAAOzB,MAAM,KAAKF,OAAOE,MAAM,EAAE;gBACnC,MAAM,IAAIJ,2BAAqB,CAC7B,CAAC,gCAAgC,EAAEE,OAAOE,MAAM,CAAC,mBAAmB,EAAEyB,OAAOzB,MAAM,EAAE;YAEzF;YAEA,MAAMH,SAAkC,CAAC;YAEzCC,OAAO8B,OAAO,CAAC,CAAC1B,OAAO2B;gBACrBhC,MAAM,CAACK,MAAMsB,IAAI,CAAC,GAAGC,MAAM,CAACI,EAAE;YAChC;YAEA,OAAOhC;QACT,EAAE,OAAO0B,OAAgB;YACvB,IAAIA,iBAAiB3B,2BAAqB,EAAE;gBAC1C,MAAM2B;YACR;YAEA,MAAM,IAAI3B,2BAAqB,CAAC,CAAC,uBAAuB,EAAEJ,OAAO;QACnE;IACF;AACF;AAEO,SAASb,gBAAgBmB,MAAyB;IACvD,IAAIA,OAAOE,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIJ,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACJ;QACN,MAAMiC,SAASvC,6BAA6BM;QAE5C,IAAIM,OAAOE,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACF,MAAM,CAAC,EAAE,CAAC0B,IAAI,CAAC,EAAEC;YAAO;QACpC;QAEA,IAAI,CAACC,MAAMC,OAAO,CAACF,SAAS;YAC1B,MAAM,IAAI7B,2BAAqB,CAC7B,CAAC,sDAAsD,EAAE6B,QAAQ;QAErE;QAEA,IAAIA,OAAOzB,MAAM,KAAKF,OAAOE,MAAM,EAAE;YACnC,MAAM,IAAIJ,2BAAqB,CAC7B,CAAC,oCAAoC,EAAEE,OAAOE,MAAM,CAAC,mBAAmB,EAAEyB,OAAOzB,MAAM,EAAE;QAE7F;QAEA,MAAMH,SAAkC,CAAC;QAEzCC,OAAO8B,OAAO,CAAC,CAAC1B,OAAO2B;YACrBhC,MAAM,CAACK,MAAMsB,IAAI,CAAC,GAAGC,MAAM,CAACI,EAAE;QAChC;QAEA,OAAOhC;IACT;AACF;AAEO,SAASf,gBAAgBgB,MAAyB;IACvD,IAAIA,OAAOE,MAAM,KAAK,GAAG;QACvB,MAAM,IAAIJ,2BAAqB,CAAC;IAClC;IAEA,OAAO,CAACc;QACN,MAAMe,SAASxC,mBAAmByB;QAElC,IAAIZ,OAAOE,MAAM,KAAK,GAAG;YACvB,OAAO;gBAAE,CAACF,MAAM,CAAC,EAAE,CAAC0B,IAAI,CAAC,EAAEC;YAAO;QACpC;QAEA,IAAI,CAACC,MAAMC,OAAO,CAACF,SAAS;YAC1B,MAAM,IAAI7B,2BAAqB,CAC7B,CAAC,sDAAsD,EAAE6B,QAAQ;QAErE;QAEA,MAAM5B,SAAkC,CAAC;QAEzCC,OAAO8B,OAAO,CAAC,CAAC1B,OAAO2B;YACrBhC,MAAM,CAACK,MAAMsB,IAAI,CAAC,GAAGC,MAAM,CAACI,EAAE;QAChC;QAEA,OAAOhC;IACT;AACF;AAaA,SAASiC,aACP/B,MAAiC,EACjCgC,KAA4B,EAC5BC,OAAiD,EACjDC,MAAe;IAEf,MAAMC,UAAuD,EAAE;IAC/D,MAAMC,UAAoB,EAAE;IAC5B,MAAMC,aAA8D,EAAE;IAEtE,MAAMC,MAAMJ,SAAS,SAAS;IAC9B,MAAMK,OAAOL,SAAS,QAAQ;IAE9B,IAAI,WAAWD,WAAWA,QAAQD,KAAK,IAAI,OAAOC,QAAQD,KAAK,KAAK,UAAU;QAC5EG,QAAQK,IAAI,CAAC;YAACxC,OAAOQ,cAAc,CAACyB;YAAoBK;SAAI;QAC5DF,QAAQI,IAAI,CAACP;QACbI,WAAWG,IAAI,CAAC;YAAEC,WAAW;YAAOC,QAAQT;QAAkB;IAChE,OAAO,IAAIN,MAAMC,OAAO,CAACK,UAAU;QACjC,KAAK,MAAM9B,SAAS8B,QAAS;YAC3BE,QAAQK,IAAI,CAAC;gBAACxC,OAAOQ,cAAc,CAACL;gBAAQmC;aAAI;YAChDF,QAAQI,IAAI,CAACrC;YACbkC,WAAWG,IAAI,CAAC;gBAAEC,WAAW;gBAAOC,QAAQvC;YAAM;QACpD;IACF,OAAO;QACL,MAAMwC,eAAeC,IAAAA,sBAAU,EAACZ,MAAMA,KAAK;QAC3Ca,OAAOV,OAAO,CACZF,SAGAJ,OAAO,CAAC,CAAC,CAACJ,MAAMgB,UAAU;YAC1B,IAAIA,WAAW;gBACb,MAAMC,SAASC,YAAY,CAAClB,KAAK;gBACjCW,QAAQI,IAAI,CAACE;gBACbP,QAAQK,IAAI,CAAC;oBAACf;oBAAMgB,cAAc,QAAQH,MAAMC;iBAAK;gBACrDF,WAAWG,IAAI,CAAC;oBAAEC,WAAWA;oBAAWC;gBAAO;YACjD;QACF;IACF;IAEA,OAAO;QACLL;QACAD;QACAH,SAASY,OAAOC,WAAW,CAACX;IAC9B;AACF;AAEO,SAAS3D,6BAA6B,EAC3CuE,IAAI,EACJC,GAAG,EACHC,UAAU1D,gBAAgB,EAC1B2D,cAAc1D,YAAY,EAC1ByC,OAAO,EACPkB,KAAK,EACLnD,MAAM,EACNgC,KAAK,EAC+B;IACpC,MAAM,EAAEoB,MAAM,EAAEC,KAAK,EAAEC,KAAK,EAAEC,IAAI,EAAE,GAAGR;IACvC,IAAIO,SAAS,QAAQA,QAAQ,GAAG;QAC9B,MAAM,IAAIzD,2BAAqB,CAAC;IAClC;IAEA,IAAI0D,QAAQ,QAAQA,OAAO,GAAG;QAC5B,MAAM,IAAI1D,2BAAqB,CAAC;IAClC;IAEA,IAAIyD,SAAS,QAAQC,QAAQ,MAAM;QACjC,MAAM,IAAI1D,2BAAqB,CAC7B;IAEJ;IAEA,MAAM2D,uBAAuB,OAAOP,YAAY,aAAaA,QAAQF,MAAMC,OAAOC;IAClF,MAAMQ,2BACJ,OAAOP,gBAAgB,aAAaA,YAAYH,MAAMC,OAAOE;QAExCI;IAAvB,MAAMI,QAAQC,KAAKC,GAAG,CAACN,CAAAA,OAAAA,kBAAAA,mBAAAA,QAASC,kBAATD,kBAAAA,OAAiBG,0BAA0BD,wBAAwB;IAC1F,MAAMK,WAAW,CAACP,SAAS,CAAC,CAACC;IAE7B,MAAMO,gBAAgB/B,aAAa/B,QAAQgC,OAAOC,SAAS4B;IAE3D,MAAMzB,UAAmC,CAAC;IAE1C,KAAK,MAAMM,UAAUoB,cAAc1B,OAAO,CAAE;QAC1CA,OAAO,CAACpC,OAAOQ,cAAc,CAACkC,QAAQ,GAAG;IAC3C;IAEA,MAAMqB,eAAqB,EAAE;IAE7B,IAAIZ,OAAO;QACTY,aAAavB,IAAI,CAACW;IACpB;IAEA,IAAIE,OAAO;QACT,MAAMW,eAAejF,gBAAgB+E,cAAc1B,OAAO;QAC1D,MAAM6B,eAAeD,aAAaX;QAElC,MAAMa,QAAQJ,cAAczB,UAAU,CAACnC,GAAG,CAAC,CAAC,EAAEuC,SAAS,EAAEC,MAAM,EAAE,EAAEyB;YACjE,MAAMC,aAAapE,OAAOQ,cAAc,CAACkC;YACzC,MAAM2B,UACJ5B,cAAc,QACV;gBAAE,CAAC2B,WAAW,EAAE;oBAAEE,IAAIL,YAAY,CAACvB,OAAOjB,IAAI,CAAC;gBAAC;YAAE,IAClD;gBAAE,CAAC2C,WAAW,EAAE;oBAAEG,IAAIN,YAAY,CAACvB,OAAOjB,IAAI,CAAC;gBAAC;YAAE;YAExD,IAAI0C,UAAU,GAAG;gBACf,OAAOE;YACT;YAEA,OAAO;gBACLG,KAAK;uBACAV,cAAczB,UAAU,CAACtB,KAAK,CAAC,GAAGoD,OAAOjE,GAAG,CAAC,CAAC,EAAEwC,QAAQ+B,CAAC,EAAE;wBAC5D,OAAO;4BAAE,CAACzE,OAAOQ,cAAc,CAACiE,GAAG,EAAER,YAAY,CAACQ,EAAEhD,IAAI,CAAC;wBAAC;oBAC5D;oBACA4C;iBACD;YACH;QACF;QAEAN,aAAavB,IAAI,CAAC0B,MAAMjE,MAAM,GAAG,IAAI;YAAEyE,IAAIR;QAAM,IAAIA,KAAK,CAAC,EAAE;IAC/D;IAEA,IAAId,QAAQ;QACV,MAAMY,eAAejF,gBAAgB+E,cAAc1B,OAAO;QAC1D,MAAM6B,eAAeD,aAAaZ;QAElC,MAAMc,QAAQJ,cAAczB,UAAU,CAACnC,GAAG,CAAC,CAAC,EAAEuC,SAAS,EAAEC,MAAM,EAAE,EAAEyB;YACjE,MAAMC,aAAapE,OAAOQ,cAAc,CAACkC;YACzC,MAAM2B,UACJ5B,cAAc,SACV;gBAAE,CAAC2B,WAAW,EAAE;oBAAEE,IAAIL,YAAY,CAACvB,OAAOjB,IAAI,CAAC;gBAAC;YAAE,IAClD;gBAAE,CAAC2C,WAAW,EAAE;oBAAEG,IAAIN,YAAY,CAACvB,OAAOjB,IAAI,CAAC;gBAAC;YAAE;YAExD,IAAI0C,UAAU,GAAG;gBACf,OAAOE;YACT;YAEA,OAAO;gBACLG,KAAK;uBACAV,cAAczB,UAAU,CAACtB,KAAK,CAAC,GAAGoD,OAAOjE,GAAG,CAAC,CAAC,EAAEwC,QAAQ+B,CAAC,EAAE;wBAC5D,OAAO;4BAAE,CAACzE,OAAOQ,cAAc,CAACiE,GAAG,EAAER,YAAY,CAACQ,EAAEhD,IAAI,CAAC;wBAAC;oBAC5D;oBACA4C;iBACD;YACH;QACF;QAEAN,aAAavB,IAAI,CAAC0B,MAAMjE,MAAM,GAAG,IAAI;YAAEyE,IAAIR;QAAM,IAAIA,KAAK,CAAC,EAAE;IAC/D;IAEA,OAAO;QACLS,eAAeb,cAAc1B,OAAO;QACpCA;QACAH,SAAS6B,cAAc7B,OAAO;QAC9ByB;QACAP,OAAOY,aAAa9D,MAAM,GAAG,IAAI;YAAEuE,KAAKT;QAAa,IAAIA,YAAY,CAAC,EAAE;IAC1E;AACF;AAEO,SAASzE,qBACdsF,OAAqB,EACrB7B,IAAkD,EAClDW,KAAa,EACb/C,MAA2B,EAC3BkE,WAAwD,EACxDC,MAAgB;QAyCkBC,SACFA;IAxChC,MAAMC,iBAAiBJ,QAAQ3E,MAAM,KAAK0D,KAAKsB,GAAG,CAACvB;IACnD,MAAMwB,cAAcnC,KAAKK,MAAM,GAAG,OAAOL,KAAKQ,IAAI,GAAG,QAAQyB;IAC7D,MAAMG,kBAAkBpC,KAAKM,KAAK,GAAG,OAAO,CAACN,KAAKO,KAAK,IAAI,CAAC,CAACP,KAAKQ,IAAI,GAAGyB,iBAAiB;IAC1F,MAAMI,QAAQJ,iBAAiBJ,QAAQ7D,KAAK,CAAC,GAAG,CAAC,KAAK6D;IAEtD,MAAMS,aAAa;QACjBP;QACA/B;QACAgC,OAAO,EAAE;QACTO,UAAU;YACRC,aAAa;YACbC,WAAW;YACXL;YACAD;QACF;IACF;IAEA,MAAMH,QAAQK,MAAMlF,GAAG,CAAC,CAACT,QACvBA,SAAS,OACL,OACAoF,cACE;YACEQ;YACA,GAAG5F,KAAK;YACRkB,QAAQA,OAAOlB;YACfgG,MAAMZ,YAAYpF;QACpB,IACA;YACE4F;YACA1E,QAAQA,OAAOlB;YACfgG,MAAMhG;QACR;IAGR,IAAIsD,KAAKQ,IAAI,IAAI,CAACR,KAAKO,KAAK,EAAE;QAC5ByB,MAAMW,OAAO;IACf;IAEAL,WAAWN,KAAK,GAAGA;QACeA;IAAlCM,WAAWC,QAAQ,CAACC,WAAW,GAAGR,CAAAA,kBAAAA,UAAAA,KAAK,CAAC,EAAE,cAARA,8BAAAA,QAAUpE,MAAM,cAAhBoE,4BAAAA,iBAAoB;QACtBA;IAAhCM,WAAWC,QAAQ,CAACE,SAAS,GAAGT,CAAAA,mBAAAA,WAAAA,KAAK,CAACA,MAAM9E,MAAM,GAAG,EAAE,cAAvB8E,+BAAAA,SAAyBpE,MAAM,cAA/BoE,6BAAAA,kBAAmC;IAEnE,OAAOM;AACT;AAEO,eAAehG,+BACpBsG,SAAiB,EACjBC,IAAwB,EACxBC,QAAgB,EAChB7F,MAAiC,EACjC8F,OAAkF,EAClFC,OAE+B,EAC/BjB,MAAe;IAEf,MAAM9C,QAAQhC,OAAOgG,SAAS,CAACL,UAAU;IACzC,IAAIM;IACJ,IAAIC;IACJ,MAAMtB,UAAU,MAAMmB,QAAQ,CAACI,IAAI,CAAC,CAAC;YAK9B;QAJL,MAAM,EAAExB,aAAa,EAAE,GAAGyB,iBAAiB,GAAG5H,6BAA6B;YACzE,GAAGsH,OAAO;YACV9F;YACAiC,SACE,CAAC,OAAA,OAAOkE,EAAElE,OAAO,KAAK,aAAakE,EAAElE,OAAO,CAACD,MAAMA,KAAK,IAAamE,EAAElE,OAAO,cAA7E,kBAAA,OACDjC,OAAOqG,aAAa,CAACrE,MAAMP,IAAI;YACjCO;QACF;QACAkE,YAAYpH,mBAAmB6F,eAAe3E;QAE9CiG,QAAQK,IAAAA,uBAAa,EAAC;YACpBC,SAAST,QAAQ9C,GAAG;YACpB4C;YACAY,QAAQ;gBACN,GAAGJ,eAAe;gBAClBhE,SAAS;oBACP,GAAG+D,EAAE/D,OAAO;oBACZ,GAAGgE,gBAAgBhE,OAAO;gBAC5B;gBACAe,OACEiD,gBAAgBjD,KAAK,IAAIgD,EAAEhD,KAAK,GAC5B;oBACEqB,KAAK;wBAAC2B,EAAEhD,KAAK;wBAAEiD,gBAAgBjD,KAAK;qBAAC;gBACvC,IACAgD,EAAEhD,KAAK,IAAIiD,gBAAgBjD,KAAK;YACxC;YACAsD,OAAO;gBAAC;oBAAC;iBAAQ;gBAAE;oBAAC;oBAAS;iBAAO;aAAC;YACrCZ;YACA7F;QAEF;QAEA,OAAOiG;IACT;IAEA,IAAI,CAACrB,SAAS;QACZ,OAAOA;IACT;IAEA,OAAOtF,qBACLsF,SACAkB,QAAQ/C,IAAI,EACZkD,MAAOvC,KAAK,EACZwC,WACAQ,WACA5B;AAEJ"}
1
+ {"version":3,"sources":["../../src/utils/cursors.ts"],"names":["drizzleCursorConnectionQuery","formatCursorChunk","formatDrizzleCursor","formatIDChunk","getColumnParser","getColumnSerializer","getCursorFormatter","getCursorParser","getIDParser","getIDSerializer","parseDrizzleCursor","parseSerializedDrizzleColumn","parseSerializedIDColumn","resolveDrizzleCursorConnection","wrapConnectionResult","DEFAULT_MAX_SIZE","DEFAULT_SIZE","value","Date","String","Number","PothosValidationError","record","fields","config","length","map","field","keyAsName","JSON","stringify","col","columnToTsName","serializer","encodeBase64","cursor","decoded","decodeBase64","startsWith","slice","type","rawValue","match","parseInt","parse","BigInt","id","dataType","error","name","parsed","Array","isArray","forEach","i","parseOrderBy","table","orderBy","invert","entries","columns","normalized","asc","desc","push","direction","column","tableColumns","getColumns","Object","fromEntries","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","inverted","parsedOrderBy","whereClauses","cursorParser","parsedCursor","parts","index","columnName","compare","gt","lt","AND","c","OR","cursorColumns","results","resolveNode","parent","totalCount","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","tableName","info","typeName","options","resolve","relations","query","formatter","q","connectionQuery","getPrimaryKey","queryFromInfo","context","select","paths","undefined"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-drizzle",
3
- "version": "0.15.0",
3
+ "version": "0.16.1",
4
4
  "description": "A Pothos plugin for drizzle",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./dts/index.d.ts",
@@ -46,13 +46,13 @@
46
46
  "graphql-scalars": "^1.25.0",
47
47
  "graphql-tag": "^2.12.6",
48
48
  "postgres": "^3.4.7",
49
- "@pothos/core": "4.10.0",
50
49
  "@pothos/plugin-add-graphql": "4.2.4",
51
- "@pothos/plugin-errors": "4.8.0",
52
50
  "@pothos/plugin-relay": "4.6.2",
53
- "@pothos/plugin-scope-auth": "4.1.6",
54
51
  "@pothos/plugin-with-input": "4.1.4",
55
- "@pothos/test-utils": "2.1.3"
52
+ "@pothos/plugin-scope-auth": "4.1.6",
53
+ "@pothos/core": "4.10.0",
54
+ "@pothos/test-utils": "2.1.3",
55
+ "@pothos/plugin-errors": "4.8.0"
56
56
  },
57
57
  "scripts": {
58
58
  "type": "tsc --project tsconfig.type.json",
@@ -5,6 +5,7 @@ import {
5
5
  type FieldRef,
6
6
  type InferredFieldOptionKeys,
7
7
  type InputFieldMap,
8
+ type InputShapeFromFields,
8
9
  type InterfaceParam,
9
10
  isThenable,
10
11
  type MaybePromise,
@@ -17,18 +18,37 @@ import {
17
18
  type ShapeFromTypeParam,
18
19
  type TypeParam,
19
20
  } from '@pothos/core';
20
- import { type InferSelectModel, Many, type TableRelationalConfig } from 'drizzle-orm';
21
+ import {
22
+ and,
23
+ type BuildQueryResult,
24
+ type DBQueryConfig,
25
+ eq,
26
+ type InferSelectModel,
27
+ Many,
28
+ type SQL,
29
+ type Table,
30
+ type TableRelationalConfig,
31
+ } from 'drizzle-orm';
32
+ import {
33
+ type FieldNode,
34
+ Kind as GraphQLKind,
35
+ type GraphQLResolveInfo,
36
+ getNamedType,
37
+ isInterfaceType,
38
+ isObjectType,
39
+ } from 'graphql';
21
40
  import type { DrizzleRef } from './interface-ref';
22
41
  import type {
23
42
  DrizzleConnectionShape,
24
43
  ListRelation,
25
44
  RelatedConnectionOptions,
45
+ RelatedCountOptions,
26
46
  RelatedFieldOptions,
27
47
  ShapeFromConnection,
28
48
  TypesForRelation,
29
49
  VariantFieldOptions,
30
50
  } from './types';
31
- import { getSchemaConfig } from './utils/config';
51
+ import { getClient, getSchemaConfig } from './utils/config';
32
52
  import {
33
53
  drizzleCursorConnectionQuery,
34
54
  getCursorFormatter,
@@ -156,6 +176,7 @@ export class DrizzleObjectFieldBuilder<
156
176
  resolve: _,
157
177
  extensions,
158
178
  description,
179
+ totalCount,
159
180
  ...options
160
181
  }: {
161
182
  type?: ObjectRef<Types, unknown, unknown>;
@@ -164,6 +185,7 @@ export class DrizzleObjectFieldBuilder<
164
185
  extensions?: {};
165
186
  description?: string;
166
187
  query?: ((args: {}, ctx: {}) => {}) | {};
188
+ totalCount?: boolean;
167
189
  resolve?: (
168
190
  query: {},
169
191
  parent: unknown,
@@ -188,6 +210,15 @@ export class DrizzleObjectFieldBuilder<
188
210
  const ref = options.type ?? getRefFromModel(relationField.targetTableName, this.builder);
189
211
  let typeName: string | undefined;
190
212
 
213
+ const buildCountFilter = (parentTable: TableConfig['table']): SQL => {
214
+ const { sourceColumns, targetColumns } = relationField;
215
+ return and(
216
+ ...sourceColumns.map((sourceCol: { name: string }, i: number) =>
217
+ eq(targetColumns[i], parentTable[sourceCol.name as never]),
218
+ ),
219
+ )!;
220
+ };
221
+
191
222
  const getQuery = (args: PothosSchemaTypes.DefaultConnectionArguments, ctx: {}) => {
192
223
  const { limit, orderBy, where, ...fieldQuery } =
193
224
  (typeof query === 'function' ? query(args, ctx) : query) ?? {};
@@ -223,8 +254,31 @@ export class DrizzleObjectFieldBuilder<
223
254
  args: object,
224
255
  context: object,
225
256
  nestedQuery: (query: unknown, path?: unknown) => { select?: object },
257
+ getSelection: (path: string[]) => FieldNode | null,
226
258
  ) => {
227
259
  typeName ??= this.builder.configStore.getTypeConfig(ref).name;
260
+
261
+ const hasTotalCount = totalCount && !!getSelection(['totalCount']);
262
+ const hasEdges = !!getSelection(['edges']);
263
+ const hasNodes = !!getSelection(['nodes']);
264
+ const hasPageInfo = !!getSelection(['pageInfo']);
265
+ const totalCountOnly = hasTotalCount && !hasEdges && !hasNodes && !hasPageInfo;
266
+ const countSelection = {
267
+ [`_${name as string}_count`]: (parent: TableConfig['table']) =>
268
+ getClient(this.builder, context).$count(
269
+ relatedTable.table as Table,
270
+ buildCountFilter(parent),
271
+ ),
272
+ };
273
+
274
+ if (totalCountOnly) {
275
+ return {
276
+ columns: {},
277
+ with: {},
278
+ extras: countSelection,
279
+ };
280
+ }
281
+
228
282
  const nested = nestedQuery(getQuery(args, context).select, {
229
283
  getType: () => typeName!,
230
284
  paths: [[{ name: 'nodes' }], [{ name: 'edges' }, { name: 'node' }]],
@@ -235,6 +289,7 @@ export class DrizzleObjectFieldBuilder<
235
289
  with: {
236
290
  [name]: nested,
237
291
  },
292
+ extras: hasTotalCount ? countSelection : {},
238
293
  };
239
294
  };
240
295
  const fieldRef = (
@@ -254,15 +309,67 @@ export class DrizzleObjectFieldBuilder<
254
309
  parent: unknown,
255
310
  args: PothosSchemaTypes.DefaultConnectionArguments,
256
311
  context: {},
312
+ info: GraphQLResolveInfo,
257
313
  ) => {
314
+ const countKey = `_${name as string}_count`;
315
+ const parentRecord = parent as Record<string, unknown>;
316
+ const countValue = totalCount
317
+ ? (parentRecord[countKey] as number | undefined)
318
+ : undefined;
319
+
320
+ if (!(name in parentRecord)) {
321
+ return {
322
+ parent,
323
+ args,
324
+ totalCount: countValue,
325
+ edges: [],
326
+ pageInfo: {
327
+ startCursor: null,
328
+ endCursor: null,
329
+ hasPreviousPage: false,
330
+ hasNextPage: false,
331
+ },
332
+ };
333
+ }
334
+
335
+ // Detect totalCountOnly to skip cursor computation when only totalCount is requested
336
+ const returnType = getNamedType(info.returnType);
337
+ const fields =
338
+ isObjectType(returnType) || isInterfaceType(returnType) ? returnType.getFields() : {};
339
+ const totalCountOnly = info.fieldNodes.every((selection) =>
340
+ selection.selectionSet?.selections.every(
341
+ (s) =>
342
+ s.kind === GraphQLKind.FIELD &&
343
+ (fields[s.name.value]?.extensions?.pothosDrizzleTotalCount ||
344
+ s.name.value === '__typename'),
345
+ ),
346
+ );
347
+
348
+ if (totalCountOnly) {
349
+ return {
350
+ parent,
351
+ args,
352
+ totalCount: countValue,
353
+ edges: [],
354
+ pageInfo: {
355
+ startCursor: null,
356
+ endCursor: null,
357
+ hasPreviousPage: false,
358
+ hasNextPage: false,
359
+ },
360
+ };
361
+ }
362
+
258
363
  const { select, cursorColumns } = getQuery(args, context);
364
+
259
365
  return wrapConnectionResult(
260
- (parent as Record<string, never>)[name],
366
+ parentRecord[name] as readonly {}[],
261
367
  args,
262
368
  select.limit,
263
369
  getCursorFormatter(cursorColumns, schemaConfig),
264
370
  undefined,
265
371
  parent,
372
+ countValue,
266
373
  );
267
374
  },
268
375
  },
@@ -270,6 +377,20 @@ export class DrizzleObjectFieldBuilder<
270
377
  ? connectionOptions
271
378
  : {
272
379
  ...connectionOptions,
380
+ fields: totalCount
381
+ ? (
382
+ t: PothosSchemaTypes.ObjectFieldBuilder<SchemaTypes, { totalCount?: number }>,
383
+ ) => ({
384
+ totalCount: t.int({
385
+ nullable: false,
386
+ extensions: {
387
+ pothosDrizzleTotalCount: true,
388
+ },
389
+ resolve: (connection) => connection.totalCount,
390
+ }),
391
+ ...(connectionOptions as { fields?: (t: unknown) => {} }).fields?.(t),
392
+ })
393
+ : (connectionOptions as { fields: undefined }).fields,
273
394
  },
274
395
  edgeOptions,
275
396
  );
@@ -406,6 +527,128 @@ export class DrizzleObjectFieldBuilder<
406
527
  } as never) as never;
407
528
  }
408
529
 
530
+ relatedField<
531
+ Field extends keyof TableConfig['relations'],
532
+ Type extends TypeParam<Types>,
533
+ Nullable extends boolean,
534
+ Args extends InputFieldMap,
535
+ Select extends DBQueryConfig<'many', Types['DrizzleRelations'], TableConfig>,
536
+ ShapeWithSelection = Shape &
537
+ BuildQueryResult<Types['DrizzleRelations'], TableConfig, Select & { columns: {} }>,
538
+ >(
539
+ relationName: Field,
540
+ options: {
541
+ type: Type;
542
+ nullable?: Nullable;
543
+ args?: Args;
544
+ description?: string;
545
+ select: (
546
+ buildFilter: (parentTable: TableConfig['table']) => SQL,
547
+ args: Args extends InputFieldMap ? InputShapeFromFields<Args> : {},
548
+ ctx: Types['Context'],
549
+ nestedQuery: (
550
+ query: DBQueryConfig<'many', Types['DrizzleRelations'], TableConfig>,
551
+ ) => DBQueryConfig<'many', Types['DrizzleRelations'], TableConfig>,
552
+ ) => Select;
553
+ resolve: (
554
+ parent: ShapeWithSelection,
555
+ args: Args extends InputFieldMap ? InputShapeFromFields<Args> : {},
556
+ ctx: Types['Context'],
557
+ info: unknown,
558
+ ) => ShapeFromTypeParam<Types, Type, Nullable>;
559
+ },
560
+ ): FieldRef<Types, ShapeFromTypeParam<Types, Type, Nullable>, 'DrizzleObject'> {
561
+ const schemaConfig = getSchemaConfig(this.builder);
562
+ const relationField = schemaConfig.relations?.[this.table].relations[relationName as string];
563
+
564
+ if (!relationField) {
565
+ throw new PothosSchemaError(
566
+ `Could not find relation ${relationName as string} on table ${this.table}`,
567
+ );
568
+ }
569
+
570
+ const buildFilter = (parentTable: TableConfig['table']): SQL => {
571
+ const { sourceColumns, targetColumns } = relationField;
572
+
573
+ return and(
574
+ ...sourceColumns.map((sourceCol, i) =>
575
+ eq(targetColumns[i], parentTable[sourceCol.name as never]),
576
+ ),
577
+ )!;
578
+ };
579
+
580
+ const relationSelect = (
581
+ args: object,
582
+ context: Types['Context'],
583
+ nestedQuery: (query: unknown) => unknown,
584
+ ) => {
585
+ const selection = options.select(
586
+ buildFilter as never,
587
+ args as never,
588
+ context,
589
+ nestedQuery as never,
590
+ ) as Select & { with?: unknown };
591
+ return {
592
+ columns: selection.columns ?? {},
593
+ extras: selection.extras,
594
+ with: selection.with,
595
+ };
596
+ };
597
+
598
+ return this.field({
599
+ type: options.type,
600
+ nullable: options.nullable,
601
+ args: options.args,
602
+ description: options.description,
603
+ extensions: {
604
+ pothosDrizzleSelect: relationSelect as never,
605
+ },
606
+ resolve: options.resolve as never,
607
+ } as never) as never;
608
+ }
609
+
610
+ relatedCount<
611
+ Field extends keyof TableConfig['relations'],
612
+ Args extends InputFieldMap,
613
+ Where extends SQL | undefined,
614
+ >(
615
+ relationName: Field,
616
+ ...allArgs: NormalizeArgs<[options: RelatedCountOptions<Types, Shape, Args, Where>]>
617
+ ): FieldRef<Types, number, 'DrizzleObject'> {
618
+ const [{ where, ...options } = {} as never] = allArgs;
619
+ const countKey = `_${relationName as string}_count`;
620
+ const schemaConfig = getSchemaConfig(this.builder);
621
+ const relationField = schemaConfig.relations?.[this.table].relations[relationName as string];
622
+ const relatedTable = schemaConfig.relations[relationField.targetTableName];
623
+
624
+ return this.relatedField(relationName, {
625
+ ...options,
626
+ type: 'Int' as never,
627
+ nullable: false,
628
+ select: (
629
+ buildFilter: (parent: TableConfig['table']) => SQL,
630
+ args: object,
631
+ ctx: Types['Context'],
632
+ ) => {
633
+ const whereClause =
634
+ typeof where === 'function'
635
+ ? (where as (args: unknown, ctx: unknown) => SQL | undefined)(args, ctx)
636
+ : where;
637
+
638
+ return {
639
+ extras: {
640
+ [countKey]: (parent: TableConfig['table']) =>
641
+ getClient(this.builder, ctx).$count(
642
+ relatedTable.table as Table,
643
+ whereClause ? and(buildFilter(parent), whereClause) : buildFilter(parent),
644
+ ),
645
+ },
646
+ } as never;
647
+ },
648
+ resolve: (parent: Record<string, number>) => parent[countKey],
649
+ } as never) as FieldRef<Types, number, 'DrizzleObject'>;
650
+ }
651
+
409
652
  expose<
410
653
  Type extends TypeParam<Types>,
411
654
  Nullable extends boolean,
@@ -1,7 +1,8 @@
1
- import type { FieldRef } from '@pothos/core';
1
+ import type { FieldRef, MaybePromise } from '@pothos/core';
2
2
  import { type FieldKind, ObjectRef, RootFieldBuilder, type SchemaTypes } from '@pothos/core';
3
3
  import type { TableRelationalConfig } from 'drizzle-orm';
4
4
  import type { GraphQLResolveInfo } from 'graphql';
5
+ import { isInterfaceType, isObjectType, Kind } from 'graphql';
5
6
  import type { DrizzleRef } from './interface-ref';
6
7
  import type { DrizzleConnectionFieldOptions } from './types';
7
8
  import { getSchemaConfig } from './utils/config';
@@ -101,6 +102,7 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection<
101
102
  maxSize = this.builder.options.drizzle?.maxConnectionSize,
102
103
  defaultSize = this.builder.options.drizzle?.defaultConnectionSize,
103
104
  resolve,
105
+ totalCount,
104
106
  ...options
105
107
  }: DrizzleConnectionFieldOptions<
106
108
  SchemaTypes,
@@ -133,6 +135,21 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection<
133
135
  context: {},
134
136
  info: GraphQLResolveInfo,
135
137
  ) => {
138
+ const returnType = info.returnType;
139
+ const fields =
140
+ isObjectType(returnType) || isInterfaceType(returnType) ? returnType.getFields() : {};
141
+
142
+ const selections = info.fieldNodes;
143
+
144
+ const totalCountOnly = selections.every((selection) =>
145
+ selection.selectionSet?.selections.every(
146
+ (s) =>
147
+ s.kind === Kind.FIELD &&
148
+ (fields[s.name.value]?.extensions?.pothosDrizzleTotalCount ||
149
+ s.name.value === '__typename'),
150
+ ),
151
+ );
152
+
136
153
  return resolveDrizzleCursorConnection(
137
154
  tableName,
138
155
  info,
@@ -143,8 +160,13 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection<
143
160
  maxSize,
144
161
  defaultSize,
145
162
  args,
163
+ totalCount: totalCount && (() => totalCount(parent, args as never, context, info)),
146
164
  },
147
165
  (q) => {
166
+ if (totalCountOnly) {
167
+ return [];
168
+ }
169
+
148
170
  // return checkIfQueryIsUsed(
149
171
  // this.builder,
150
172
  // query,
@@ -160,6 +182,23 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection<
160
182
  ? connectionOptions
161
183
  : {
162
184
  ...connectionOptions,
185
+ fields: totalCount
186
+ ? (
187
+ t: PothosSchemaTypes.ObjectFieldBuilder<
188
+ SchemaTypes,
189
+ { totalCount?: () => MaybePromise<number> }
190
+ >,
191
+ ) => ({
192
+ totalCount: t.int({
193
+ nullable: false,
194
+ extensions: {
195
+ pothosDrizzleTotalCount: true,
196
+ },
197
+ resolve: (parent) => parent.totalCount?.(),
198
+ }),
199
+ ...(connectionOptions as { fields?: (t: unknown) => {} }).fields?.(t),
200
+ })
201
+ : (connectionOptions as { fields: undefined }).fields,
163
202
  extensions: {
164
203
  ...(connectionOptions as Record<string, object> | undefined)?.extensions,
165
204
  },
package/src/types.ts CHANGED
@@ -51,6 +51,7 @@ export type DrizzleClient = {
51
51
  readonly relations: AnyRelations;
52
52
  };
53
53
  query: {};
54
+ $count: (table: Table, filter?: SQL) => SQL<number>;
54
55
  };
55
56
 
56
57
  export type DrizzlePluginOptions<Types extends SchemaTypes> = {
@@ -428,6 +429,18 @@ export type RefForRelation<Types extends SchemaTypes, Rel extends Relation> = Re
428
429
  ? ObjectRef<Types, TypesForRelation<Types, Rel>>
429
430
  : [ObjectRef<Types, TypesForRelation<Types, Rel>>];
430
431
 
432
+ export type RelatedCountOptions<
433
+ Types extends SchemaTypes,
434
+ Shape,
435
+ Args extends InputFieldMap,
436
+ Where,
437
+ > = Omit<
438
+ PothosSchemaTypes.ObjectFieldOptions<Types, Shape, 'Int', false, Args, number>,
439
+ 'type' | InferredFieldOptionKeys
440
+ > & {
441
+ where?: Where | ((args: InputShapeFromFields<Args>, context: Types['Context']) => Where);
442
+ };
443
+
431
444
  export type TypesForRelation<Types extends SchemaTypes, Rel extends Relation> = BuildQueryResult<
432
445
  Types['DrizzleRelations'],
433
446
  Types['DrizzleRelations'][Rel['targetTable']['_']['name']],
@@ -543,6 +556,12 @@ export type DrizzleConnectionFieldOptions<
543
556
  type: Type;
544
557
  defaultSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
545
558
  maxSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
559
+ totalCount?: (
560
+ parent: ParentShape,
561
+ args: ConnectionArgs,
562
+ context: Types['Context'],
563
+ info: GraphQLResolveInfo,
564
+ ) => MaybePromise<number>;
546
565
 
547
566
  resolve: (
548
567
  query: <T = {}>(
@@ -626,7 +645,7 @@ export type RelatedConnectionOptions<
626
645
 
627
646
  defaultSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
628
647
  maxSize?: number | ((args: ConnectionArgs, ctx: Types['Context']) => number);
629
- // totalCount?: NeedsResolve extends false ? boolean : false;
648
+ totalCount?: boolean;
630
649
  }
631
650
  : never);
632
651