@pothos/plugin-drizzle 0.1.0 → 0.2.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.
Files changed (46) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/dts/drizzle-field-builder.d.ts +10 -10
  3. package/dts/drizzle-field-builder.d.ts.map +1 -1
  4. package/dts/model-loader.d.ts +2 -0
  5. package/dts/model-loader.d.ts.map +1 -1
  6. package/dts/types.d.ts +12 -6
  7. package/dts/types.d.ts.map +1 -1
  8. package/dts/utils/config.d.ts +3 -1
  9. package/dts/utils/config.d.ts.map +1 -1
  10. package/esm/drizzle-field-builder.d.ts +10 -10
  11. package/esm/drizzle-field-builder.d.ts.map +1 -1
  12. package/esm/model-loader.d.ts +2 -0
  13. package/esm/model-loader.d.ts.map +1 -1
  14. package/esm/src/drizzle-field-builder.js +6 -5
  15. package/esm/src/drizzle-field-builder.js.map +1 -1
  16. package/esm/src/field-builder.js +2 -2
  17. package/esm/src/field-builder.js.map +1 -1
  18. package/esm/src/model-loader.js +4 -2
  19. package/esm/src/model-loader.js.map +1 -1
  20. package/esm/src/schema-builder.js +14 -13
  21. package/esm/src/schema-builder.js.map +1 -1
  22. package/esm/src/types.js.map +1 -1
  23. package/esm/src/utils/config.js +26 -2
  24. package/esm/src/utils/config.js.map +1 -1
  25. package/esm/types.d.ts +12 -6
  26. package/esm/types.d.ts.map +1 -1
  27. package/esm/utils/config.d.ts +3 -1
  28. package/esm/utils/config.d.ts.map +1 -1
  29. package/lib/src/drizzle-field-builder.js +6 -5
  30. package/lib/src/drizzle-field-builder.js.map +1 -1
  31. package/lib/src/field-builder.js +2 -2
  32. package/lib/src/field-builder.js.map +1 -1
  33. package/lib/src/model-loader.js +3 -1
  34. package/lib/src/model-loader.js.map +1 -1
  35. package/lib/src/schema-builder.js +14 -13
  36. package/lib/src/schema-builder.js.map +1 -1
  37. package/lib/src/types.js.map +1 -1
  38. package/lib/src/utils/config.js +36 -5
  39. package/lib/src/utils/config.js.map +1 -1
  40. package/package.json +3 -3
  41. package/src/drizzle-field-builder.ts +10 -6
  42. package/src/field-builder.ts +3 -4
  43. package/src/model-loader.ts +6 -2
  44. package/src/schema-builder.ts +8 -7
  45. package/src/types.ts +16 -3
  46. package/src/utils/config.ts +47 -7
@@ -8,6 +8,7 @@ const _interfaceref = require("./interface-ref");
8
8
  const _modelloader = require("./model-loader");
9
9
  const _noderef = require("./node-ref");
10
10
  const _objectref = require("./object-ref");
11
+ const _config = require("./utils/config");
11
12
  const _cursors = require("./utils/cursors");
12
13
  const _refs = require("./utils/refs");
13
14
  function _getRequireWildcardCache(nodeInterop) {
@@ -53,7 +54,7 @@ function _interop_require_wildcard(obj, nodeInterop) {
53
54
  }
54
55
  const schemaBuilderProto = _core.default.prototype;
55
56
  schemaBuilderProto.drizzleObject = function drizzleObject(table, { select, fields, ...options }) {
56
- var _this_options_drizzle_client___schema;
57
+ var _getSchemaConfig_schema;
57
58
  var _options_variant, _ref;
58
59
  const name = (_ref = (_options_variant = options.variant) !== null && _options_variant !== void 0 ? _options_variant : options.name) !== null && _ref !== void 0 ? _ref : table;
59
60
  const ref = options.variant ? new _objectref.DrizzleObjectRef(options.variant, name) : (0, _refs.getRefFromModel)(table, this, 'object');
@@ -63,7 +64,7 @@ schemaBuilderProto.drizzleObject = function drizzleObject(table, { select, field
63
64
  extensions: {
64
65
  ...options.extensions,
65
66
  pothosDrizzleModel: table,
66
- pothosDrizzleTable: (_this_options_drizzle_client___schema = this.options.drizzle.client._.schema) === null || _this_options_drizzle_client___schema === void 0 ? void 0 : _this_options_drizzle_client___schema[table],
67
+ pothosDrizzleTable: (_getSchemaConfig_schema = (0, _config.getSchemaConfig)(this).schema) === null || _getSchemaConfig_schema === void 0 ? void 0 : _getSchemaConfig_schema[table],
67
68
  pothosDrizzleSelect: select !== null && select !== void 0 ? select : {},
68
69
  pothosDrizzleLoader: _modelloader.ModelLoader.forModel(table, this)
69
70
  },
@@ -73,7 +74,7 @@ schemaBuilderProto.drizzleObject = function drizzleObject(table, { select, field
73
74
  return ref;
74
75
  };
75
76
  schemaBuilderProto.drizzleInterface = function drizzleInterface(table, { select, fields, ...options }) {
76
- var _this_options_drizzle_client___schema;
77
+ var _getSchemaConfig_schema;
77
78
  var _options_name;
78
79
  const name = (_options_name = options.name) !== null && _options_name !== void 0 ? _options_name : table;
79
80
  const ref = options.variant ? new _interfaceref.DrizzleInterfaceRef(options.variant, name) : (0, _refs.getRefFromModel)(table, this, 'interface');
@@ -83,7 +84,7 @@ schemaBuilderProto.drizzleInterface = function drizzleInterface(table, { select,
83
84
  extensions: {
84
85
  ...options.extensions,
85
86
  pothosDrizzleModel: table,
86
- pothosDrizzleTable: (_this_options_drizzle_client___schema = this.options.drizzle.client._.schema) === null || _this_options_drizzle_client___schema === void 0 ? void 0 : _this_options_drizzle_client___schema[table],
87
+ pothosDrizzleTable: (_getSchemaConfig_schema = (0, _config.getSchemaConfig)(this).schema) === null || _getSchemaConfig_schema === void 0 ? void 0 : _getSchemaConfig_schema[table],
87
88
  pothosDrizzleSelect: select !== null && select !== void 0 ? select : {},
88
89
  pothosDrizzleLoader: _modelloader.ModelLoader.forModel(table, this)
89
90
  },
@@ -94,7 +95,7 @@ schemaBuilderProto.drizzleInterface = function drizzleInterface(table, { select,
94
95
  };
95
96
  schemaBuilderProto.drizzleNode = function drizzleNode(table, { id: { column, ...idOptions }, name, variant, ...options }) {
96
97
  var _this_nodeInterfaceRef, _this;
97
- const tableConfig = this.options.drizzle.client._.schema[table];
98
+ const tableConfig = (0, _config.getSchemaConfig)(this).schema[table];
98
99
  const idColumn = typeof column === 'function' ? column(tableConfig.columns) : column;
99
100
  const idColumns = Array.isArray(idColumn) ? idColumn : [
100
101
  idColumn
@@ -177,7 +178,7 @@ schemaBuilderProto.drizzleInterfaceFields = function drizzleInterfaceFields(type
177
178
  });
178
179
  };
179
180
  schemaBuilderProto.drizzleGraphQLOrderBy = function drizzleGraphQLOrderBy(table, type, options) {
180
- var _this_options_drizzle_client___schema;
181
+ var _getSchemaConfig_schema;
181
182
  return this.addGraphQLInput(type, {
182
183
  ...options,
183
184
  extensions: {
@@ -185,13 +186,13 @@ schemaBuilderProto.drizzleGraphQLOrderBy = function drizzleGraphQLOrderBy(table,
185
186
  drizzleGraphQL: {
186
187
  inputType: 'orderBy',
187
188
  table,
188
- tableConfig: (_this_options_drizzle_client___schema = this.options.drizzle.client._.schema) === null || _this_options_drizzle_client___schema === void 0 ? void 0 : _this_options_drizzle_client___schema[table]
189
+ tableConfig: (_getSchemaConfig_schema = (0, _config.getSchemaConfig)(this).schema) === null || _getSchemaConfig_schema === void 0 ? void 0 : _getSchemaConfig_schema[table]
189
190
  }
190
191
  }
191
192
  });
192
193
  };
193
194
  schemaBuilderProto.drizzleGraphQLFilters = function drizzleGraphQLFilters(table, type, options) {
194
- var _this_options_drizzle_client___schema;
195
+ var _getSchemaConfig_schema;
195
196
  return this.addGraphQLInput(type, {
196
197
  ...options,
197
198
  extensions: {
@@ -199,13 +200,13 @@ schemaBuilderProto.drizzleGraphQLFilters = function drizzleGraphQLFilters(table,
199
200
  drizzleGraphQL: {
200
201
  inputType: 'filters',
201
202
  table,
202
- tableConfig: (_this_options_drizzle_client___schema = this.options.drizzle.client._.schema) === null || _this_options_drizzle_client___schema === void 0 ? void 0 : _this_options_drizzle_client___schema[table]
203
+ tableConfig: (_getSchemaConfig_schema = (0, _config.getSchemaConfig)(this).schema) === null || _getSchemaConfig_schema === void 0 ? void 0 : _getSchemaConfig_schema[table]
203
204
  }
204
205
  }
205
206
  });
206
207
  };
207
208
  schemaBuilderProto.drizzleGraphQLInsert = function drizzleGraphQLInsert(table, type, options) {
208
- var _this_options_drizzle_client___schema;
209
+ var _getSchemaConfig_schema;
209
210
  return this.addGraphQLInput(type, {
210
211
  ...options,
211
212
  extensions: {
@@ -213,13 +214,13 @@ schemaBuilderProto.drizzleGraphQLInsert = function drizzleGraphQLInsert(table, t
213
214
  drizzleGraphQL: {
214
215
  inputType: 'insert',
215
216
  table,
216
- tableConfig: (_this_options_drizzle_client___schema = this.options.drizzle.client._.schema) === null || _this_options_drizzle_client___schema === void 0 ? void 0 : _this_options_drizzle_client___schema[table]
217
+ tableConfig: (_getSchemaConfig_schema = (0, _config.getSchemaConfig)(this).schema) === null || _getSchemaConfig_schema === void 0 ? void 0 : _getSchemaConfig_schema[table]
217
218
  }
218
219
  }
219
220
  });
220
221
  };
221
222
  schemaBuilderProto.drizzleGraphQLUpdate = function drizzleGraphQLUpdate(table, type, options) {
222
- var _this_options_drizzle_client___schema;
223
+ var _getSchemaConfig_schema;
223
224
  return this.addGraphQLInput(type, {
224
225
  ...options,
225
226
  extensions: {
@@ -227,7 +228,7 @@ schemaBuilderProto.drizzleGraphQLUpdate = function drizzleGraphQLUpdate(table, t
227
228
  drizzleGraphQL: {
228
229
  inputType: 'update',
229
230
  table,
230
- tableConfig: (_this_options_drizzle_client___schema = this.options.drizzle.client._.schema) === null || _this_options_drizzle_client___schema === void 0 ? void 0 : _this_options_drizzle_client___schema[table]
231
+ tableConfig: (_getSchemaConfig_schema = (0, _config.getSchemaConfig)(this).schema) === null || _getSchemaConfig_schema === void 0 ? void 0 : _getSchemaConfig_schema[table]
231
232
  }
232
233
  }
233
234
  });
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","drizzleObject","table","select","fields","options","name","variant","ref","DrizzleObjectRef","getRefFromModel","objectType","extensions","pothosDrizzleModel","pothosDrizzleTable","drizzle","client","_","schema","pothosDrizzleSelect","pothosDrizzleLoader","ModelLoader","forModel","DrizzleObjectFieldBuilder","undefined","drizzleInterface","DrizzleInterfaceRef","interfaceType","drizzleNode","id","column","idOptions","tableConfig","idColumn","columns","idColumns","Array","isArray","interfaceRef","nodeInterfaceRef","resolve","getColumnSerializer","idParser","getColumnParser","typeName","nodeRef","DrizzleNodeRef","modelLoader","PothosError","extendedOptions","interfaces","loadWithoutCache","context","info","record","loadSelectionForField","brandWithType","addInterfaces","configStore","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","nullable","args","parent","completeValue","type","associateParamWithRef","drizzleObjectField","fieldName","field","addFields","tableName","drizzleInterfaceField","drizzleObjectFields","drizzleInterfaceFields","drizzleGraphQLOrderBy","addGraphQLInput","drizzleGraphQL","inputType","drizzleGraphQLFilters","drizzleGraphQLInsert","drizzleGraphQLUpdate"],"mappings":"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"}
1
+ {"version":3,"sources":["../../src/schema-builder.ts"],"names":["schemaBuilderProto","SchemaBuilder","prototype","drizzleObject","table","select","fields","options","getSchemaConfig","name","variant","ref","DrizzleObjectRef","getRefFromModel","objectType","extensions","pothosDrizzleModel","pothosDrizzleTable","schema","pothosDrizzleSelect","pothosDrizzleLoader","ModelLoader","forModel","DrizzleObjectFieldBuilder","undefined","drizzleInterface","DrizzleInterfaceRef","interfaceType","drizzleNode","id","column","idOptions","tableConfig","idColumn","columns","idColumns","Array","isArray","interfaceRef","nodeInterfaceRef","resolve","getColumnSerializer","idParser","getColumnParser","typeName","nodeRef","DrizzleNodeRef","modelLoader","PothosError","extendedOptions","interfaces","loadWithoutCache","context","info","record","loadSelectionForField","brandWithType","addInterfaces","configStore","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","nullable","args","parent","completeValue","type","associateParamWithRef","drizzleObjectField","fieldName","field","addFields","tableName","drizzleInterfaceField","drizzleObjectFields","drizzleInterfaceFields","drizzleGraphQLOrderBy","addGraphQLInput","drizzleGraphQL","inputType","drizzleGraphQLFilters","drizzleGraphQLInsert","drizzleGraphQLUpdate"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/types.ts"],"names":["drizzleTableName","Symbol","for"],"mappings":";;;;+BAiDaA;;;eAAAA;;;AAAN,MAAMA,mBAAmBC,OAAOC,GAAG,CAAC"}
1
+ {"version":3,"sources":["../../src/types.ts"],"names":["drizzleTableName","Symbol","for"],"mappings":";;;;+BA8DaA;;;eAAAA;;;AAAN,MAAMA,mBAAmBC,OAAOC,GAAG,CAAC"}
@@ -2,14 +2,34 @@
2
2
  Object.defineProperty(exports, "__esModule", {
3
3
  value: true
4
4
  });
5
- Object.defineProperty(exports, "getSchemaConfig", {
6
- enumerable: true,
7
- get: function() {
5
+ function _export(target, all) {
6
+ for(var name in all)Object.defineProperty(target, name, {
7
+ enumerable: true,
8
+ get: all[name]
9
+ });
10
+ }
11
+ _export(exports, {
12
+ getClient: function() {
13
+ return getClient;
14
+ },
15
+ getSchemaConfig: function() {
8
16
  return getSchemaConfig;
9
17
  }
10
18
  });
11
19
  const _core = require("@pothos/core");
12
- const cache = (0, _core.createContextCache)((config)=>{
20
+ const _drizzleorm = require("drizzle-orm");
21
+ const configCache = (0, _core.createContextCache)((builder)=>{
22
+ let config;
23
+ if (builder.options.drizzle.schema) {
24
+ const tablesConfig = (0, _drizzleorm.extractTablesRelationalConfig)(builder.options.drizzle.schema, _drizzleorm.createTableRelationsHelpers);
25
+ config = {
26
+ fullSchema: builder.options.drizzle.schema,
27
+ schema: tablesConfig.tables,
28
+ tableNamesMap: tablesConfig.tableNamesMap
29
+ };
30
+ } else {
31
+ config = builder.options.drizzle.client._;
32
+ }
13
33
  const dbToSchema = Object.values(config.schema).reduce((acc, table)=>{
14
34
  acc[table.dbName] = table;
15
35
  return acc;
@@ -19,8 +39,19 @@ const cache = (0, _core.createContextCache)((config)=>{
19
39
  ...config
20
40
  };
21
41
  });
42
+ const clientCache = (0, _core.createContextCache)((builder)=>{
43
+ const clientConfig = builder.options.drizzle.client;
44
+ const getClient = typeof clientConfig === 'function' ? (0, _core.createContextCache)((ctx)=>clientConfig(ctx)) : (_ctx)=>clientConfig;
45
+ return (0, _core.createContextCache)((context)=>{
46
+ const client = getClient(context);
47
+ return client;
48
+ });
49
+ });
22
50
  function getSchemaConfig(builder) {
23
- return cache(builder.options.drizzle.client._);
51
+ return configCache(builder);
52
+ }
53
+ function getClient(builder, context) {
54
+ return clientCache(builder)(context);
24
55
  }
25
56
 
26
57
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/utils/config.ts"],"names":["getSchemaConfig","cache","createContextCache","config","dbToSchema","Object","values","schema","reduce","acc","table","dbName","builder","options","drizzle","client","_"],"mappings":";;;;+BA2BgBA;;;eAAAA;;;sBA3BqC;AAUrD,MAAMC,QAAQC,IAAAA,wBAAkB,EAC9B,CAACC;IACC,MAAMC,aAAaC,OAAOC,MAAM,CAACH,OAAOI,MAAM,EAAEC,MAAM,CACpD,CAACC,KAAKC;QACJD,GAAG,CAACC,MAAMC,MAAM,CAAC,GAAGD;QACpB,OAAOD;IACT,GACA,CAAC;IAGH,OAAO;QACLL;QACA,GAAGD,MAAM;IACX;AACF;AAGK,SAASH,gBACdY,OAA+C;IAE/C,OAAOX,MAAMW,QAAQC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,CAAC;AAC/C"}
1
+ {"version":3,"sources":["../../../src/utils/config.ts"],"names":["getClient","getSchemaConfig","configCache","createContextCache","builder","config","options","drizzle","schema","tablesConfig","extractTablesRelationalConfig","createTableRelationsHelpers","fullSchema","tables","tableNamesMap","client","_","dbToSchema","Object","values","reduce","acc","table","dbName","clientCache","clientConfig","ctx","_ctx","context"],"mappings":";;;;;;;;;;;IAkEgBA,SAAS;eAATA;;IANAC,eAAe;eAAfA;;;sBA5DqC;4BAO9C;AAMP,MAAMC,cAAcC,IAAAA,wBAAkB,EACpC,CAACC;IACC,IAAIC;IACJ,IAAID,QAAQE,OAAO,CAACC,OAAO,CAACC,MAAM,EAAE;QAClC,MAAMC,eAAeC,IAAAA,yCAA6B,EAChDN,QAAQE,OAAO,CAACC,OAAO,CAACC,MAAM,EAC9BG,uCAA2B;QAE7BN,SAAS;YACPO,YAAYR,QAAQE,OAAO,CAACC,OAAO,CAACC,MAAM;YAC1CA,QAAQC,aAAaI,MAAM;YAC3BC,eAAeL,aAAaK,aAAa;QAC3C;IACF,OAAO;QACLT,SAAS,AAACD,QAAQE,OAAO,CAACC,OAAO,CAACQ,MAAM,CACrCC,CAAC;IACN;IAEA,MAAMC,aAAaC,OAAOC,MAAM,CAACd,OAAOG,MAAM,EAAEY,MAAM,CACpD,CAACC,KAAKC;QACJD,GAAG,CAACC,MAAMC,MAAM,CAAC,GAAGD;QACpB,OAAOD;IACT,GACA,CAAC;IAGH,OAAO;QACLJ;QACA,GAAGZ,MAAM;IACX;AACF;AAGF,MAAMmB,cAAcrB,IAAAA,wBAAkB,EAAC,CAACC;IACtC,MAAMqB,eAAerB,QAAQE,OAAO,CAACC,OAAO,CAACQ,MAAM;IACnD,MAAMf,YACJ,OAAOyB,iBAAiB,aACpBtB,IAAAA,wBAAkB,EAAC,CAACuB,MAAQD,aAAaC,QACzC,CAACC,OAAiBF;IAExB,OAAOtB,IAAAA,wBAAkB,EAAC,CAACyB;QACzB,MAAMb,SAASf,UAAU4B;QAEzB,OAAOb;IACT;AACF;AAEO,SAASd,gBACdG,OAA+C;IAE/C,OAAOF,YAAYE;AACrB;AAEO,SAASJ,UACdI,OAA+C,EAC/CwB,OAAe;IAEf,OAAOJ,YAAYpB,SAAkBwB;AACvC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@pothos/plugin-drizzle",
3
- "version": "0.1.0",
3
+ "version": "0.2.1",
4
4
  "description": "A Pothos plugin for drizzle",
5
5
  "main": "./lib/index.js",
6
6
  "types": "./dts/index.d.ts",
@@ -46,10 +46,10 @@
46
46
  "graphql-scalars": "^1.23.0",
47
47
  "graphql-tag": "^2.12.6",
48
48
  "postgres": "^3.4.4",
49
- "@pothos/plugin-add-graphql": "4.1.0",
50
49
  "@pothos/core": "4.1.0",
51
- "@pothos/plugin-relay": "4.1.0",
52
50
  "@pothos/plugin-scope-auth": "4.1.0",
51
+ "@pothos/plugin-relay": "4.1.0",
52
+ "@pothos/plugin-add-graphql": "4.1.0",
53
53
  "@pothos/plugin-with-input": "4.1.0",
54
54
  "@pothos/test-utils": "2.1.0"
55
55
  },
@@ -32,6 +32,7 @@ import type {
32
32
  TypesForRelation,
33
33
  VariantFieldOptions,
34
34
  } from './types';
35
+ import { getSchemaConfig } from './utils/config';
35
36
  import {
36
37
  drizzleCursorConnectionQuery,
37
38
  getCursorFormatter,
@@ -195,10 +196,12 @@ export class DrizzleObjectFieldBuilder<
195
196
  connectionOptions = {},
196
197
  edgeOptions = {},
197
198
  ) {
198
- const relationField =
199
- this.builder.options.drizzle.client._.schema?.[this.table].relations[name as string];
200
- const relatedModel =
201
- this.builder.options.drizzle.client._.schema?.[relationField?.referencedTableName!]!;
199
+ const relationField = getSchemaConfig(this.builder).schema?.[this.table].relations[
200
+ name as string
201
+ ];
202
+ const relatedModel = getSchemaConfig(this.builder).schema?.[
203
+ relationField?.referencedTableName!
204
+ ]!;
202
205
 
203
206
  if (!relationField) {
204
207
  throw new PothosSchemaError(
@@ -381,8 +384,9 @@ export class DrizzleObjectFieldBuilder<
381
384
  >
382
385
  ): FieldRef<Types, TypesForRelation<Types, TableConfig['relations'][Field]>, 'Object'> {
383
386
  const [options = {} as never] = allArgs;
384
- const relationField =
385
- this.builder.options.drizzle.client._.schema?.[this.table].relations[name as string];
387
+ const relationField = getSchemaConfig(this.builder).schema?.[this.table].relations[
388
+ name as string
389
+ ];
386
390
 
387
391
  if (!relationField) {
388
392
  throw new PothosSchemaError(
@@ -125,10 +125,9 @@ fieldBuilderProto.drizzleConnection = function drizzleConnection<
125
125
  context: {},
126
126
  info: GraphQLResolveInfo,
127
127
  ) => {
128
- const drizzleModel =
129
- this.builder.options.drizzle.client._.schema?.[
130
- typeof type === 'string' ? type : (ref as DrizzleRef<SchemaTypes>).tableName
131
- ]!;
128
+ const drizzleModel = getSchemaConfig(this.builder).schema?.[
129
+ typeof type === 'string' ? type : (ref as DrizzleRef<SchemaTypes>).tableName
130
+ ]!;
132
131
 
133
132
  return resolveDrizzleCursorConnection(
134
133
  drizzleModel,
@@ -1,7 +1,8 @@
1
1
  import { type SchemaTypes, createContextCache } from '@pothos/core';
2
2
  import { type Column, type TableRelationalConfig, inArray, sql } from 'drizzle-orm';
3
3
  import type { GraphQLResolveInfo } from 'graphql';
4
- import { type PothosDrizzleSchemaConfig, getSchemaConfig } from './utils/config';
4
+ import type { DrizzleClient } from './types';
5
+ import { type PothosDrizzleSchemaConfig, getClient, getSchemaConfig } from './utils/config';
5
6
  import { cacheKey, setLoaderMappings } from './utils/loader-map';
6
7
  import { selectionStateFromInfo, stateFromInfo } from './utils/map-query';
7
8
  import {
@@ -35,6 +36,7 @@ export class ModelLoader {
35
36
  table: TableRelationalConfig;
36
37
  columns: Column[];
37
38
  selectSQL;
39
+ client: DrizzleClient;
38
40
 
39
41
  constructor(
40
42
  context: object,
@@ -52,6 +54,8 @@ export class ModelLoader {
52
54
  this.columns.length > 1
53
55
  ? sql`(${sql.join(this.columns, sql`, `)})`
54
56
  : this.columns[0].getSQL();
57
+
58
+ this.client = getClient(builder, context);
55
59
  }
56
60
 
57
61
  static forModel<Types extends SchemaTypes>(
@@ -166,7 +170,7 @@ export class ModelLoader {
166
170
  nextTick.promise
167
171
  .then(() => {
168
172
  const api = (
169
- this.builder.options.drizzle.client.query as Record<
173
+ this.client.query as Record<
170
174
  string,
171
175
  { findMany: (...args: unknown[]) => Promise<Record<string, unknown>[]> }
172
176
  >
@@ -16,6 +16,7 @@ import { ModelLoader } from './model-loader';
16
16
  import { DrizzleNodeRef } from './node-ref';
17
17
  import { DrizzleObjectRef } from './object-ref';
18
18
  import type { DrizzleGraphQLInputExtensions, DrizzleNodeOptions } from './types';
19
+ import { getSchemaConfig } from './utils/config';
19
20
  import { getColumnParser, getColumnSerializer } from './utils/cursors';
20
21
  import { getRefFromModel } from './utils/refs';
21
22
 
@@ -35,7 +36,7 @@ schemaBuilderProto.drizzleObject = function drizzleObject(table, { select, field
35
36
  extensions: {
36
37
  ...options.extensions,
37
38
  pothosDrizzleModel: table,
38
- pothosDrizzleTable: this.options.drizzle.client._.schema?.[table],
39
+ pothosDrizzleTable: getSchemaConfig(this).schema?.[table],
39
40
  pothosDrizzleSelect: select ?? {},
40
41
  pothosDrizzleLoader: ModelLoader.forModel(table, this),
41
42
  },
@@ -63,7 +64,7 @@ schemaBuilderProto.drizzleInterface = function drizzleInterface(
63
64
  extensions: {
64
65
  ...options.extensions,
65
66
  pothosDrizzleModel: table,
66
- pothosDrizzleTable: this.options.drizzle.client._.schema?.[table],
67
+ pothosDrizzleTable: getSchemaConfig(this).schema?.[table],
67
68
  pothosDrizzleSelect: select ?? {},
68
69
  pothosDrizzleLoader: ModelLoader.forModel(table, this),
69
70
  },
@@ -88,7 +89,7 @@ schemaBuilderProto.drizzleNode = function drizzleNode(
88
89
  ...options
89
90
  }: DrizzleNodeOptions<SchemaTypes, keyof SchemaTypes['DrizzleRelationSchema'], {}, {}, []>,
90
91
  ) {
91
- const tableConfig = this.options.drizzle.client._.schema![table];
92
+ const tableConfig = getSchemaConfig(this).schema![table];
92
93
  const idColumn = typeof column === 'function' ? column(tableConfig.columns) : column;
93
94
  const idColumns = Array.isArray(idColumn) ? idColumn : [idColumn];
94
95
  const interfaceRef = this.nodeInterfaceRef?.();
@@ -214,7 +215,7 @@ schemaBuilderProto.drizzleGraphQLOrderBy = function drizzleGraphQLOrderBy(
214
215
  drizzleGraphQL: {
215
216
  inputType: 'orderBy',
216
217
  table,
217
- tableConfig: this.options.drizzle.client._.schema?.[table]!,
218
+ tableConfig: getSchemaConfig(this).schema?.[table]!,
218
219
  } satisfies DrizzleGraphQLInputExtensions,
219
220
  },
220
221
  });
@@ -240,7 +241,7 @@ schemaBuilderProto.drizzleGraphQLFilters = function drizzleGraphQLFilters(
240
241
  drizzleGraphQL: {
241
242
  inputType: 'filters',
242
243
  table,
243
- tableConfig: this.options.drizzle.client._.schema?.[table]!,
244
+ tableConfig: getSchemaConfig(this).schema?.[table]!,
244
245
  } satisfies DrizzleGraphQLInputExtensions,
245
246
  },
246
247
  });
@@ -266,7 +267,7 @@ schemaBuilderProto.drizzleGraphQLInsert = function drizzleGraphQLInsert(
266
267
  drizzleGraphQL: {
267
268
  inputType: 'insert',
268
269
  table,
269
- tableConfig: this.options.drizzle.client._.schema?.[table]!,
270
+ tableConfig: getSchemaConfig(this).schema?.[table]!,
270
271
  } satisfies DrizzleGraphQLInputExtensions,
271
272
  },
272
273
  });
@@ -292,7 +293,7 @@ schemaBuilderProto.drizzleGraphQLUpdate = function drizzleGraphQLUpdate(
292
293
  drizzleGraphQL: {
293
294
  inputType: 'update',
294
295
  table,
295
- tableConfig: this.options.drizzle.client._.schema?.[table]!,
296
+ tableConfig: getSchemaConfig(this).schema?.[table]!,
296
297
  } satisfies DrizzleGraphQLInputExtensions,
297
298
  },
298
299
  });
package/src/types.ts CHANGED
@@ -41,11 +41,24 @@ import type { DrizzleRef } from './interface-ref';
41
41
  import type { IndirectInclude } from './utils/map-query';
42
42
  import type { SelectionMap } from './utils/selections';
43
43
 
44
- export interface DrizzlePluginOptions<_Types extends SchemaTypes> {
45
- client: { _: Partial<RelationalSchemaConfig<TablesRelationalConfig>>; query: {} };
44
+ export type DrizzleClient = {
45
+ _: Partial<RelationalSchemaConfig<TablesRelationalConfig>>;
46
+ query: {};
47
+ };
48
+
49
+ export type DrizzlePluginOptions<Types extends SchemaTypes> = {
46
50
  maxConnectionSize?: number;
47
51
  defaultConnectionSize?: number;
48
- }
52
+ } & (
53
+ | {
54
+ client: DrizzleClient;
55
+ schema?: Record<string, unknown>;
56
+ }
57
+ | {
58
+ client: (ctx: Types['Context']) => DrizzleClient;
59
+ schema: Record<string, unknown>;
60
+ }
61
+ );
49
62
 
50
63
  export const drizzleTableName = Symbol.for('Pothos.drizzleTableName');
51
64
 
@@ -1,15 +1,34 @@
1
1
  import { type SchemaTypes, createContextCache } from '@pothos/core';
2
- import type {
3
- RelationalSchemaConfig,
4
- TableRelationalConfig,
5
- TablesRelationalConfig,
2
+ import {
3
+ type RelationalSchemaConfig,
4
+ type TableRelationalConfig,
5
+ type TablesRelationalConfig,
6
+ createTableRelationsHelpers,
7
+ extractTablesRelationalConfig,
6
8
  } from 'drizzle-orm';
9
+ import type { DrizzleClient } from '../types';
7
10
 
8
11
  export interface PothosDrizzleSchemaConfig extends RelationalSchemaConfig<TablesRelationalConfig> {
9
12
  dbToSchema: Record<string, TableRelationalConfig>;
10
13
  }
11
- const cache = createContextCache(
12
- (config: RelationalSchemaConfig<TablesRelationalConfig>): PothosDrizzleSchemaConfig => {
14
+ const configCache = createContextCache(
15
+ (builder: PothosSchemaTypes.SchemaBuilder<SchemaTypes>): PothosDrizzleSchemaConfig => {
16
+ let config: RelationalSchemaConfig<TablesRelationalConfig>;
17
+ if (builder.options.drizzle.schema) {
18
+ const tablesConfig = extractTablesRelationalConfig(
19
+ builder.options.drizzle.schema,
20
+ createTableRelationsHelpers,
21
+ );
22
+ config = {
23
+ fullSchema: builder.options.drizzle.schema,
24
+ schema: tablesConfig.tables,
25
+ tableNamesMap: tablesConfig.tableNamesMap,
26
+ };
27
+ } else {
28
+ config = (builder.options.drizzle.client as DrizzleClient)
29
+ ._ as RelationalSchemaConfig<TablesRelationalConfig>;
30
+ }
31
+
13
32
  const dbToSchema = Object.values(config.schema).reduce<Record<string, TableRelationalConfig>>(
14
33
  (acc, table) => {
15
34
  acc[table.dbName] = table;
@@ -25,8 +44,29 @@ const cache = createContextCache(
25
44
  },
26
45
  );
27
46
 
47
+ const clientCache = createContextCache((builder: PothosSchemaTypes.SchemaBuilder<SchemaTypes>) => {
48
+ const clientConfig = builder.options.drizzle.client;
49
+ const getClient =
50
+ typeof clientConfig === 'function'
51
+ ? createContextCache((ctx) => clientConfig(ctx))
52
+ : (_ctx: object) => clientConfig;
53
+
54
+ return createContextCache((context: object) => {
55
+ const client = getClient(context);
56
+
57
+ return client;
58
+ });
59
+ });
60
+
28
61
  export function getSchemaConfig<Types extends SchemaTypes>(
29
62
  builder: PothosSchemaTypes.SchemaBuilder<Types>,
30
63
  ) {
31
- return cache(builder.options.drizzle.client._ as RelationalSchemaConfig<TablesRelationalConfig>);
64
+ return configCache(builder as never);
65
+ }
66
+
67
+ export function getClient<Types extends SchemaTypes>(
68
+ builder: PothosSchemaTypes.SchemaBuilder<Types>,
69
+ context: object,
70
+ ) {
71
+ return clientCache(builder as never)(context);
32
72
  }