@pothos/plugin-drizzle 0.0.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.
- package/CHANGELOG.md +7 -0
- package/LICENSE +6 -0
- package/README.md +437 -0
- package/TODO.md +21 -0
- package/drizzle/meta/_journal.json +1 -0
- package/drizzle.config.ts +10 -0
- package/dts/drizzle-field-builder.d.ts +124 -0
- package/dts/drizzle-field-builder.d.ts.map +1 -0
- package/dts/field-builder.d.ts +2 -0
- package/dts/field-builder.d.ts.map +1 -0
- package/dts/global-types.d.ts +92 -0
- package/dts/global-types.d.ts.map +1 -0
- package/dts/index.d.ts +13 -0
- package/dts/index.d.ts.map +1 -0
- package/dts/interface-ref.d.ts +9 -0
- package/dts/interface-ref.d.ts.map +1 -0
- package/dts/model-loader.d.ts +44 -0
- package/dts/model-loader.d.ts.map +1 -0
- package/dts/node-ref.d.ts +5 -0
- package/dts/node-ref.d.ts.map +1 -0
- package/dts/object-ref.d.ts +14 -0
- package/dts/object-ref.d.ts.map +1 -0
- package/dts/schema-builder.d.ts +2 -0
- package/dts/schema-builder.d.ts.map +1 -0
- package/dts/types.d.ts +147 -0
- package/dts/types.d.ts.map +1 -0
- package/dts/utils/config.d.ts +7 -0
- package/dts/utils/config.d.ts.map +1 -0
- package/dts/utils/cursors.d.ts +58 -0
- package/dts/utils/cursors.d.ts.map +1 -0
- package/dts/utils/deep-equal.d.ts +2 -0
- package/dts/utils/deep-equal.d.ts.map +1 -0
- package/dts/utils/drizzle-graphql.d.ts +18 -0
- package/dts/utils/drizzle-graphql.d.ts.map +1 -0
- package/dts/utils/loader-map.d.ts +11 -0
- package/dts/utils/loader-map.d.ts.map +1 -0
- package/dts/utils/map-query.d.ts +30 -0
- package/dts/utils/map-query.d.ts.map +1 -0
- package/dts/utils/refs.d.ts +5 -0
- package/dts/utils/refs.d.ts.map +1 -0
- package/dts/utils/selections.d.ts +22 -0
- package/dts/utils/selections.d.ts.map +1 -0
- package/dts/utils/usage.d.ts +5 -0
- package/dts/utils/usage.d.ts.map +1 -0
- package/esm/drizzle-field-builder.d.ts +216 -0
- package/esm/drizzle-field-builder.d.ts.map +1 -0
- package/esm/field-builder.d.ts +2 -0
- package/esm/field-builder.d.ts.map +1 -0
- package/esm/global-types.d.ts +124 -0
- package/esm/global-types.d.ts.map +1 -0
- package/esm/index.d.ts +13 -0
- package/esm/index.d.ts.map +1 -0
- package/esm/interface-ref.d.ts +9 -0
- package/esm/interface-ref.d.ts.map +1 -0
- package/esm/model-loader.d.ts +45 -0
- package/esm/model-loader.d.ts.map +1 -0
- package/esm/node-ref.d.ts +5 -0
- package/esm/node-ref.d.ts.map +1 -0
- package/esm/object-ref.d.ts +14 -0
- package/esm/object-ref.d.ts.map +1 -0
- package/esm/package.json +3 -0
- package/esm/schema-builder.d.ts +2 -0
- package/esm/schema-builder.d.ts.map +1 -0
- package/esm/src/drizzle-field-builder.js +215 -0
- package/esm/src/drizzle-field-builder.js.map +1 -0
- package/esm/src/field-builder.js +77 -0
- package/esm/src/field-builder.js.map +1 -0
- package/esm/src/global-types.js +2 -0
- package/esm/src/global-types.js.map +1 -0
- package/esm/src/index.js +107 -0
- package/esm/src/index.js.map +1 -0
- package/esm/src/interface-ref.js +26 -0
- package/esm/src/interface-ref.js.map +1 -0
- package/esm/src/model-loader.js +168 -0
- package/esm/src/model-loader.js.map +1 -0
- package/esm/src/node-ref.js +4 -0
- package/esm/src/node-ref.js.map +1 -0
- package/esm/src/object-ref.js +38 -0
- package/esm/src/object-ref.js.map +1 -0
- package/esm/src/schema-builder.js +190 -0
- package/esm/src/schema-builder.js.map +1 -0
- package/esm/src/types.js +2 -0
- package/esm/src/types.js.map +1 -0
- package/esm/src/utils/config.js +15 -0
- package/esm/src/utils/config.js.map +1 -0
- package/esm/src/utils/cursors.js +316 -0
- package/esm/src/utils/cursors.js.map +1 -0
- package/esm/src/utils/deep-equal.js +44 -0
- package/esm/src/utils/deep-equal.js.map +1 -0
- package/esm/src/utils/drizzle-graphql.js +176 -0
- package/esm/src/utils/drizzle-graphql.js.map +1 -0
- package/esm/src/utils/loader-map.js +35 -0
- package/esm/src/utils/loader-map.js.map +1 -0
- package/esm/src/utils/map-query.js +284 -0
- package/esm/src/utils/map-query.js.map +1 -0
- package/esm/src/utils/refs.js +14 -0
- package/esm/src/utils/refs.js.map +1 -0
- package/esm/src/utils/selections.js +136 -0
- package/esm/src/utils/selections.js.map +1 -0
- package/esm/src/utils/usage.js +59 -0
- package/esm/src/utils/usage.js.map +1 -0
- package/esm/types.d.ts +161 -0
- package/esm/types.d.ts.map +1 -0
- package/esm/utils/config.d.ts +7 -0
- package/esm/utils/config.d.ts.map +1 -0
- package/esm/utils/cursors.d.ts +58 -0
- package/esm/utils/cursors.d.ts.map +1 -0
- package/esm/utils/deep-equal.d.ts +2 -0
- package/esm/utils/deep-equal.d.ts.map +1 -0
- package/esm/utils/drizzle-graphql.d.ts +18 -0
- package/esm/utils/drizzle-graphql.d.ts.map +1 -0
- package/esm/utils/loader-map.d.ts +11 -0
- package/esm/utils/loader-map.d.ts.map +1 -0
- package/esm/utils/map-query.d.ts +30 -0
- package/esm/utils/map-query.d.ts.map +1 -0
- package/esm/utils/refs.d.ts +5 -0
- package/esm/utils/refs.d.ts.map +1 -0
- package/esm/utils/selections.d.ts +22 -0
- package/esm/utils/selections.d.ts.map +1 -0
- package/esm/utils/usage.d.ts +5 -0
- package/esm/utils/usage.d.ts.map +1 -0
- package/lib/src/drizzle-field-builder.js +225 -0
- package/lib/src/drizzle-field-builder.js.map +1 -0
- package/lib/src/field-builder.js +82 -0
- package/lib/src/field-builder.js.map +1 -0
- package/lib/src/global-types.js +6 -0
- package/lib/src/global-types.js.map +1 -0
- package/lib/src/index.js +180 -0
- package/lib/src/index.js.map +1 -0
- package/lib/src/interface-ref.js +36 -0
- package/lib/src/interface-ref.js.map +1 -0
- package/lib/src/model-loader.js +176 -0
- package/lib/src/model-loader.js.map +1 -0
- package/lib/src/node-ref.js +15 -0
- package/lib/src/node-ref.js.map +1 -0
- package/lib/src/object-ref.js +56 -0
- package/lib/src/object-ref.js.map +1 -0
- package/lib/src/schema-builder.js +236 -0
- package/lib/src/schema-builder.js.map +1 -0
- package/lib/src/types.js +13 -0
- package/lib/src/types.js.map +1 -0
- package/lib/src/utils/config.js +26 -0
- package/lib/src/utils/config.js.map +1 -0
- package/lib/src/utils/cursors.js +362 -0
- package/lib/src/utils/cursors.js.map +1 -0
- package/lib/src/utils/deep-equal.js +55 -0
- package/lib/src/utils/deep-equal.js.map +1 -0
- package/lib/src/utils/drizzle-graphql.js +192 -0
- package/lib/src/utils/drizzle-graphql.js.map +1 -0
- package/lib/src/utils/loader-map.js +57 -0
- package/lib/src/utils/loader-map.js.map +1 -0
- package/lib/src/utils/map-query.js +308 -0
- package/lib/src/utils/map-query.js.map +1 -0
- package/lib/src/utils/refs.js +33 -0
- package/lib/src/utils/refs.js.map +1 -0
- package/lib/src/utils/selections.js +163 -0
- package/lib/src/utils/selections.js.map +1 -0
- package/lib/src/utils/usage.js +84 -0
- package/lib/src/utils/usage.js.map +1 -0
- package/package.json +66 -0
- package/src/drizzle-field-builder.ts +500 -0
- package/src/field-builder.ts +168 -0
- package/src/global-types.ts +481 -0
- package/src/index.ts +175 -0
- package/src/interface-ref.ts +24 -0
- package/src/model-loader.ts +235 -0
- package/src/node-ref.ts +8 -0
- package/src/object-ref.ts +51 -0
- package/src/schema-builder.ts +299 -0
- package/src/types.ts +640 -0
- package/src/utils/config.ts +28 -0
- package/src/utils/cursors.ts +446 -0
- package/src/utils/deep-equal.ts +58 -0
- package/src/utils/drizzle-graphql.ts +235 -0
- package/src/utils/loader-map.ts +51 -0
- package/src/utils/map-query.ts +582 -0
- package/src/utils/refs.ts +25 -0
- package/src/utils/selections.ts +209 -0
- package/src/utils/usage.ts +64 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/model-loader.ts"],"names":["inArray","sql","createContextCache","cacheKey","setLoaderMappings","selectionStateFromInfo","stateFromInfo","mergeSelection","selectionCompatible","selectionToQuery","getSchemaConfig","ModelLoader","forModel","modelName","builder","columns","model","sqlForModel","values","map","key","columnName","name","Error","length","getSelection","info","parentType","path","queryCache","has","selection","config","context","set","query","get","getSelectionForField","typeName","loadSelection","result","stageQuery","mappings","loadSelectionForField","returnType","entry","staged","state","models","createResolvablePromise","promise","initLoad","Map","add","nextTick","then","api","options","drizzle","client","findMany","where","selectSQL","keys","results","entries","find","row","table","primaryKey","every","resolve","reject","err","catch","setTimeout","constructor","Set","schema","join","getSQL","resolveFn","rejectFn","Promise"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/node-ref.ts"],"names":["DrizzleObjectRef","DrizzleNodeRef"],"mappings":"AACA,SAASA,gBAAgB,QAAQ,eAAe;AAEhD,OAAO,MAAMC,uBAIHD;AAAmC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
function _define_property(obj, key, value) {
|
|
2
|
+
if (key in obj) {
|
|
3
|
+
Object.defineProperty(obj, key, {
|
|
4
|
+
value: value,
|
|
5
|
+
enumerable: true,
|
|
6
|
+
configurable: true,
|
|
7
|
+
writable: true
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
obj[key] = value;
|
|
12
|
+
}
|
|
13
|
+
return obj;
|
|
14
|
+
}
|
|
15
|
+
import { abstractReturnShapeKey, brandWithType, ObjectRef, typeBrandKey } from '@pothos/core';
|
|
16
|
+
export const drizzleTableKey = Symbol.for("Pothos.drizzleTableKey");
|
|
17
|
+
let _drizzleTableKey = drizzleTableKey, _abstractReturnShapeKey = abstractReturnShapeKey;
|
|
18
|
+
export class DrizzleObjectRef extends ObjectRef {
|
|
19
|
+
addBrand(value) {
|
|
20
|
+
if (Array.isArray(value)) {
|
|
21
|
+
value.forEach((val) => void brandWithType(val, this.name));
|
|
22
|
+
return value;
|
|
23
|
+
}
|
|
24
|
+
brandWithType(value, this.name);
|
|
25
|
+
return value;
|
|
26
|
+
}
|
|
27
|
+
hasBrand(value) {
|
|
28
|
+
return typeof value === "object" && value !== null && typeBrandKey in value && value[typeBrandKey] === this.name;
|
|
29
|
+
}
|
|
30
|
+
constructor(name, tableName) {
|
|
31
|
+
super(name);
|
|
32
|
+
_define_property(this, _drizzleTableKey, void 0);
|
|
33
|
+
_define_property(this, _abstractReturnShapeKey, void 0);
|
|
34
|
+
_define_property(this, "tableName", void 0);
|
|
35
|
+
this.tableName = tableName;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=object-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/object-ref.ts"],"names":["abstractReturnShapeKey","brandWithType","ObjectRef","typeBrandKey","drizzleTableKey","Symbol","for","DrizzleObjectRef","addBrand","value","Array","isArray","forEach","val","name","hasBrand","constructor","tableName"],"mappings":";;;;;;;;;;;;;AAAA,SACEA,sBAAsB,EACtBC,aAAa,EACbC,SAAS,EAETC,YAAY,QACP,eAAe;AAGtB,OAAO,MAAMC,kBAAkBC,OAAOC,GAAG,CAAC,0BAA0B;IAOjEF,mBAAAA,iBAEAJ,0BAAAA;AAPH,OAAO,MAAMO,yBAIHL;IAaRM,SACEC,KAAQ,EAC4D;QACpE,IAAIC,MAAMC,OAAO,CAACF,QAAQ;YACxBA,MAAMG,OAAO,CAAC,CAACC,MAAQ,KAAKZ,cAAcY,KAAK,IAAI,CAACC,IAAI;YAExD,OAAOL;QACT;QAEAR,cAAcQ,OAAO,IAAI,CAACK,IAAI;QAE9B,OAAOL;IACT;IAEAM,SAASN,KAAc,EAAE;QACvB,OACE,OAAOA,UAAU,YACjBA,UAAU,QACVN,gBAAgBM,SAChB,AAACA,KAAsC,CAACN,aAAa,KAAK,IAAI,CAACW,IAAI;IAEvE;IA3BAE,YAAYF,IAAY,EAAEG,SAAiB,CAAE;QAC3C,KAAK,CAACH;QAPR,uBAACV,kBAAD,KAAA;QAEA,uBAACJ,yBAAD,KAAA;QAEAiB,uBAAAA,aAAAA,KAAAA;QAKE,IAAI,CAACA,SAAS,GAAGA;IACnB;AAwBF"}
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
import SchemaBuilder, { brandWithType, completeValue, PothosError } from '@pothos/core';
|
|
2
|
+
import { DrizzleObjectFieldBuilder } from './drizzle-field-builder.js';
|
|
3
|
+
import { getRefFromModel } from './utils/refs.js';
|
|
4
|
+
import { DrizzleObjectRef } from './object-ref.js';
|
|
5
|
+
import { getColumnParser, getColumnSerializer } from './utils/cursors.js';
|
|
6
|
+
import { DrizzleNodeRef } from './node-ref.js';
|
|
7
|
+
import { ModelLoader } from './model-loader.js';
|
|
8
|
+
import { DrizzleInterfaceRef } from './interface-ref.js';
|
|
9
|
+
const schemaBuilderProto = SchemaBuilder.prototype;
|
|
10
|
+
schemaBuilderProto.drizzleObject = function drizzleObject(table, { select, fields, ...options }) {
|
|
11
|
+
var _this_options_drizzle_client___schema;
|
|
12
|
+
var _options_variant, _ref;
|
|
13
|
+
const name = (_ref = (_options_variant = options.variant) !== null && _options_variant !== void 0 ? _options_variant : options.name) !== null && _ref !== void 0 ? _ref : table;
|
|
14
|
+
const ref = options.variant ? new DrizzleObjectRef(options.variant, name) : getRefFromModel(table, this, "object");
|
|
15
|
+
ref.name = name !== null && name !== void 0 ? name : table;
|
|
16
|
+
this.objectType(ref, {
|
|
17
|
+
...options,
|
|
18
|
+
extensions: {
|
|
19
|
+
...options.extensions,
|
|
20
|
+
pothosDrizzleModel: table,
|
|
21
|
+
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],
|
|
22
|
+
pothosDrizzleSelect: select !== null && select !== void 0 ? select : {},
|
|
23
|
+
pothosDrizzleLoader: ModelLoader.forModel(table, this)
|
|
24
|
+
},
|
|
25
|
+
name,
|
|
26
|
+
fields: fields ? () => fields(new DrizzleObjectFieldBuilder(ref.name, this, table)) : undefined
|
|
27
|
+
});
|
|
28
|
+
return ref;
|
|
29
|
+
};
|
|
30
|
+
schemaBuilderProto.drizzleInterface = function drizzleInterface(table, { select, fields, ...options }) {
|
|
31
|
+
var _this_options_drizzle_client___schema;
|
|
32
|
+
var _options_name;
|
|
33
|
+
const name = (_options_name = options.name) !== null && _options_name !== void 0 ? _options_name : table;
|
|
34
|
+
const ref = options.variant ? new DrizzleInterfaceRef(options.variant, name) : getRefFromModel(table, this, "interface");
|
|
35
|
+
ref.name = name !== null && name !== void 0 ? name : table;
|
|
36
|
+
this.interfaceType(ref, {
|
|
37
|
+
...options,
|
|
38
|
+
extensions: {
|
|
39
|
+
...options.extensions,
|
|
40
|
+
pothosDrizzleModel: table,
|
|
41
|
+
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],
|
|
42
|
+
pothosDrizzleSelect: select !== null && select !== void 0 ? select : {},
|
|
43
|
+
pothosDrizzleLoader: ModelLoader.forModel(table, this)
|
|
44
|
+
},
|
|
45
|
+
name,
|
|
46
|
+
fields: fields ? () => fields(new DrizzleObjectFieldBuilder(ref.name, this, table, "Interface")) : undefined
|
|
47
|
+
});
|
|
48
|
+
return ref;
|
|
49
|
+
};
|
|
50
|
+
schemaBuilderProto.drizzleNode = function drizzleNode(table, { id: { column, ...idOptions }, name, variant, ...options }) {
|
|
51
|
+
var _this_nodeInterfaceRef, _this;
|
|
52
|
+
const tableConfig = this.options.drizzle.client._.schema[table];
|
|
53
|
+
const idColumn = typeof column === "function" ? column(tableConfig.columns) : column;
|
|
54
|
+
const idColumns = Array.isArray(idColumn) ? idColumn : [
|
|
55
|
+
idColumn
|
|
56
|
+
];
|
|
57
|
+
const interfaceRef = (_this_nodeInterfaceRef = (_this = this).nodeInterfaceRef) === null || _this_nodeInterfaceRef === void 0 ? void 0 : _this_nodeInterfaceRef.call(_this);
|
|
58
|
+
const resolve = getColumnSerializer(idColumns);
|
|
59
|
+
const idParser = getColumnParser(idColumns);
|
|
60
|
+
var _ref;
|
|
61
|
+
const typeName = (_ref = variant !== null && variant !== void 0 ? variant : name) !== null && _ref !== void 0 ? _ref : table;
|
|
62
|
+
const nodeRef = new DrizzleNodeRef(typeName, table);
|
|
63
|
+
const modelLoader = ModelLoader.forModel(table, this, idColumns);
|
|
64
|
+
if (!interfaceRef) {
|
|
65
|
+
throw new PothosError("builder.drizzleNode requires @pothos/plugin-relay to be installed");
|
|
66
|
+
}
|
|
67
|
+
const extendedOptions = {
|
|
68
|
+
...options,
|
|
69
|
+
name,
|
|
70
|
+
variant,
|
|
71
|
+
interfaces: [
|
|
72
|
+
interfaceRef
|
|
73
|
+
],
|
|
74
|
+
loadWithoutCache: async (id, context, info) => {
|
|
75
|
+
const record = await modelLoader(context).loadSelectionForField(info, idParser(id), typeName);
|
|
76
|
+
if (record) {
|
|
77
|
+
brandWithType(record, typeName);
|
|
78
|
+
}
|
|
79
|
+
return record;
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
const ref = this.drizzleObject(table, extendedOptions);
|
|
83
|
+
if (options.interfaces) {
|
|
84
|
+
ref.addInterfaces(options.interfaces);
|
|
85
|
+
}
|
|
86
|
+
this.configStore.onTypeConfig(ref, (nodeConfig) => {
|
|
87
|
+
var _this_options_relayOptions;
|
|
88
|
+
var _this_options_relayOptions_idFieldName;
|
|
89
|
+
this.objectField(ref, (_this_options_relayOptions_idFieldName = (_this_options_relayOptions = this.options.relayOptions) === null || _this_options_relayOptions === void 0 ? void 0 : _this_options_relayOptions.idFieldName) !== null && _this_options_relayOptions_idFieldName !== void 0 ? _this_options_relayOptions_idFieldName : "id", (t) => {
|
|
90
|
+
var _this_options_relayOptions;
|
|
91
|
+
return t.globalID({
|
|
92
|
+
...(_this_options_relayOptions = this.options.relayOptions) === null || _this_options_relayOptions === void 0 ? void 0 : _this_options_relayOptions.idFieldOptions,
|
|
93
|
+
...idOptions,
|
|
94
|
+
nullable: false,
|
|
95
|
+
args: {},
|
|
96
|
+
resolve: (parent, args, context, info) => completeValue(resolve(parent), (id) => ({
|
|
97
|
+
type: nodeConfig.name,
|
|
98
|
+
id
|
|
99
|
+
}))
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
this.configStore.associateParamWithRef(nodeRef, ref);
|
|
104
|
+
return nodeRef;
|
|
105
|
+
};
|
|
106
|
+
schemaBuilderProto.drizzleObjectField = function drizzleObjectField(type, fieldName, field) {
|
|
107
|
+
const ref = typeof type === "string" ? getRefFromModel(type, this) : type;
|
|
108
|
+
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
109
|
+
this.configStore.addFields(ref, () => ({
|
|
110
|
+
[fieldName]: field(new DrizzleObjectFieldBuilder(name, this, ref.tableName))
|
|
111
|
+
}));
|
|
112
|
+
});
|
|
113
|
+
};
|
|
114
|
+
schemaBuilderProto.drizzleInterfaceField = function drizzleInterfaceField(type, fieldName, field) {
|
|
115
|
+
const ref = typeof type === "string" ? getRefFromModel(type, this) : type;
|
|
116
|
+
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
117
|
+
this.configStore.addFields(ref, () => ({
|
|
118
|
+
[fieldName]: field(new DrizzleObjectFieldBuilder(name, this, ref.tableName, "Interface"))
|
|
119
|
+
}));
|
|
120
|
+
});
|
|
121
|
+
};
|
|
122
|
+
schemaBuilderProto.drizzleObjectFields = function drizzleObjectFields(type, fields) {
|
|
123
|
+
const ref = typeof type === "string" ? getRefFromModel(type, this) : type;
|
|
124
|
+
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
125
|
+
this.configStore.addFields(ref, () => fields(new DrizzleObjectFieldBuilder(name, this, ref.tableName)));
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
schemaBuilderProto.drizzleInterfaceFields = function drizzleInterfaceFields(type, fields) {
|
|
129
|
+
const ref = typeof type === "string" ? getRefFromModel(type, this) : type;
|
|
130
|
+
this.configStore.onTypeConfig(ref, ({ name }) => {
|
|
131
|
+
this.configStore.addFields(ref, () => fields(new DrizzleObjectFieldBuilder(name, this, ref.tableName, "Interface")));
|
|
132
|
+
});
|
|
133
|
+
};
|
|
134
|
+
schemaBuilderProto.drizzleGraphQLOrderBy = function drizzleGraphQLOrderBy(table, type, options) {
|
|
135
|
+
var _this_options_drizzle_client___schema;
|
|
136
|
+
return this.addGraphQLInput(type, {
|
|
137
|
+
...options,
|
|
138
|
+
extensions: {
|
|
139
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
140
|
+
drizzleGraphQL: {
|
|
141
|
+
inputType: "orderBy",
|
|
142
|
+
table,
|
|
143
|
+
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]
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
});
|
|
147
|
+
};
|
|
148
|
+
schemaBuilderProto.drizzleGraphQLFilters = function drizzleGraphQLFilters(table, type, options) {
|
|
149
|
+
var _this_options_drizzle_client___schema;
|
|
150
|
+
return this.addGraphQLInput(type, {
|
|
151
|
+
...options,
|
|
152
|
+
extensions: {
|
|
153
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
154
|
+
drizzleGraphQL: {
|
|
155
|
+
inputType: "filters",
|
|
156
|
+
table,
|
|
157
|
+
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]
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
});
|
|
161
|
+
};
|
|
162
|
+
schemaBuilderProto.drizzleGraphQLInsert = function drizzleGraphQLInsert(table, type, options) {
|
|
163
|
+
var _this_options_drizzle_client___schema;
|
|
164
|
+
return this.addGraphQLInput(type, {
|
|
165
|
+
...options,
|
|
166
|
+
extensions: {
|
|
167
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
168
|
+
drizzleGraphQL: {
|
|
169
|
+
inputType: "insert",
|
|
170
|
+
table,
|
|
171
|
+
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]
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
};
|
|
176
|
+
schemaBuilderProto.drizzleGraphQLUpdate = function drizzleGraphQLUpdate(table, type, options) {
|
|
177
|
+
var _this_options_drizzle_client___schema;
|
|
178
|
+
return this.addGraphQLInput(type, {
|
|
179
|
+
...options,
|
|
180
|
+
extensions: {
|
|
181
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
182
|
+
drizzleGraphQL: {
|
|
183
|
+
inputType: "update",
|
|
184
|
+
table,
|
|
185
|
+
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]
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
});
|
|
189
|
+
};
|
|
190
|
+
//# sourceMappingURL=schema-builder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/schema-builder.ts"],"names":["SchemaBuilder","brandWithType","completeValue","PothosError","DrizzleObjectFieldBuilder","getRefFromModel","DrizzleObjectRef","getColumnParser","getColumnSerializer","DrizzleNodeRef","ModelLoader","DrizzleInterfaceRef","schemaBuilderProto","prototype","drizzleObject","table","select","fields","options","name","variant","ref","objectType","extensions","pothosDrizzleModel","pothosDrizzleTable","drizzle","client","_","schema","pothosDrizzleSelect","pothosDrizzleLoader","forModel","undefined","drizzleInterface","interfaceType","drizzleNode","id","column","idOptions","tableConfig","idColumn","columns","idColumns","Array","isArray","interfaceRef","nodeInterfaceRef","resolve","idParser","typeName","nodeRef","modelLoader","extendedOptions","interfaces","loadWithoutCache","context","info","record","loadSelectionForField","addInterfaces","configStore","onTypeConfig","nodeConfig","objectField","relayOptions","idFieldName","t","globalID","idFieldOptions","nullable","args","parent","type","associateParamWithRef","drizzleObjectField","fieldName","field","addFields","tableName","drizzleInterfaceField","drizzleObjectFields","drizzleInterfaceFields","drizzleGraphQLOrderBy","addGraphQLInput","drizzleGraphQL","inputType","drizzleGraphQLFilters","drizzleGraphQLInsert","drizzleGraphQLUpdate"],"mappings":"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"}
|
package/esm/src/types.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types.ts"],"names":["drizzleTableName","Symbol","for"],"mappings":"AAkDA,OAAO,MAAMA,mBAAmBC,OAAOC,GAAG,CAAC,2BAA2B"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { createContextCache } from '@pothos/core';
|
|
2
|
+
const cache = createContextCache((config) => {
|
|
3
|
+
const dbToSchema = Object.values(config.schema).reduce((acc, table) => {
|
|
4
|
+
acc[table.dbName] = table;
|
|
5
|
+
return acc;
|
|
6
|
+
}, {});
|
|
7
|
+
return {
|
|
8
|
+
dbToSchema,
|
|
9
|
+
...config
|
|
10
|
+
};
|
|
11
|
+
});
|
|
12
|
+
export function getSchemaConfig(builder) {
|
|
13
|
+
return cache(builder.options.drizzle.client._);
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/config.ts"],"names":["createContextCache","cache","config","dbToSchema","Object","values","schema","reduce","acc","table","dbName","getSchemaConfig","builder","options","drizzle","client","_"],"mappings":"AAAA,SAASA,kBAAkB,QAAqB,eAAe;AAM/D,MAAMC,QAAQD,mBACZ,CAACE;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;AAGF,OAAO,SAASS,gBACdC,OAA+C;IAE/C,OAAOX,MAAMW,QAAQC,OAAO,CAACC,OAAO,CAACC,MAAM,CAACC,CAAC;AAC/C"}
|
|
@@ -0,0 +1,316 @@
|
|
|
1
|
+
/* eslint-disable no-nested-ternary */ import { decodeBase64, encodeBase64, PothosValidationError } from '@pothos/core';
|
|
2
|
+
import { getOperators, getOrderByOperators } from 'drizzle-orm';
|
|
3
|
+
import { queryFromInfo } from './map-query.js';
|
|
4
|
+
const DEFAULT_MAX_SIZE = 100;
|
|
5
|
+
const DEFAULT_SIZE = 20;
|
|
6
|
+
export function formatCursorChunk(value) {
|
|
7
|
+
if (value instanceof Date) {
|
|
8
|
+
return `D:${String(Number(value))}`;
|
|
9
|
+
}
|
|
10
|
+
switch (typeof value) {
|
|
11
|
+
case "number":
|
|
12
|
+
return `N:${value}`;
|
|
13
|
+
case "string":
|
|
14
|
+
return `S:${value}`;
|
|
15
|
+
case "bigint":
|
|
16
|
+
return `I:${value}`;
|
|
17
|
+
default:
|
|
18
|
+
throw new PothosValidationError(`Unsupported cursor type ${typeof value}`);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
export function formatDrizzleCursor(record, fields) {
|
|
22
|
+
return getCursorFormatter(fields)(record);
|
|
23
|
+
}
|
|
24
|
+
export function getColumnSerializer(fields) {
|
|
25
|
+
if (fields.length === 0) {
|
|
26
|
+
throw new PothosValidationError("Column serializer must have at least one field");
|
|
27
|
+
}
|
|
28
|
+
return (value) => {
|
|
29
|
+
if (fields.length > 1) {
|
|
30
|
+
return `J:${JSON.stringify(fields.map((col) => value[col.name]))}`;
|
|
31
|
+
}
|
|
32
|
+
return `${formatCursorChunk(value[fields[0].name])}`;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export function getCursorFormatter(fields) {
|
|
36
|
+
if (fields.length === 0) {
|
|
37
|
+
throw new PothosValidationError("Cursor must have at least one field");
|
|
38
|
+
}
|
|
39
|
+
const serializer = getColumnSerializer(fields);
|
|
40
|
+
return (value) => {
|
|
41
|
+
return encodeBase64(`DC:${serializer(value)}`);
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
export function parseDrizzleCursor(cursor) {
|
|
45
|
+
if (typeof cursor !== "string") {
|
|
46
|
+
throw new PothosValidationError("Cursor must be a string");
|
|
47
|
+
}
|
|
48
|
+
try {
|
|
49
|
+
const decoded = decodeBase64(cursor);
|
|
50
|
+
if (!decoded.startsWith("DC:")) {
|
|
51
|
+
throw new PothosValidationError("Invalid cursor");
|
|
52
|
+
}
|
|
53
|
+
return parseSerializedDrizzleColumn(decoded.slice(3));
|
|
54
|
+
}
|
|
55
|
+
catch {
|
|
56
|
+
throw new PothosValidationError(`Invalid cursor: ${cursor}`);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
export function parseSerializedDrizzleColumn(value) {
|
|
60
|
+
if (typeof value !== "string") {
|
|
61
|
+
throw new PothosValidationError("value must be a string");
|
|
62
|
+
}
|
|
63
|
+
try {
|
|
64
|
+
const [, type, rawValue] = value.match(/^(S|N|D|J|I):(.*)/);
|
|
65
|
+
switch (type) {
|
|
66
|
+
case "S":
|
|
67
|
+
return rawValue;
|
|
68
|
+
case "N":
|
|
69
|
+
return Number.parseInt(rawValue, 10);
|
|
70
|
+
case "D":
|
|
71
|
+
return new Date(Number.parseInt(rawValue, 10));
|
|
72
|
+
case "J":
|
|
73
|
+
return JSON.parse(rawValue);
|
|
74
|
+
case "I":
|
|
75
|
+
return BigInt(rawValue);
|
|
76
|
+
default:
|
|
77
|
+
throw new PothosValidationError(`Invalid cursor type ${type}`);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
catch {
|
|
81
|
+
throw new PothosValidationError(`Invalid serialized data: ${value}`);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
export function parseID(id, dataType) {
|
|
85
|
+
if (!id) {
|
|
86
|
+
return id;
|
|
87
|
+
}
|
|
88
|
+
switch (dataType) {
|
|
89
|
+
case "String":
|
|
90
|
+
return id;
|
|
91
|
+
case "Int":
|
|
92
|
+
return Number.parseInt(id, 10);
|
|
93
|
+
case "BigInt":
|
|
94
|
+
return BigInt(id);
|
|
95
|
+
case "Boolean":
|
|
96
|
+
return id !== "false";
|
|
97
|
+
case "Float":
|
|
98
|
+
case "Decimal":
|
|
99
|
+
return Number.parseFloat(id);
|
|
100
|
+
case "DateTime":
|
|
101
|
+
return new Date(id);
|
|
102
|
+
case "Json":
|
|
103
|
+
return JSON.parse(id);
|
|
104
|
+
case "Byte":
|
|
105
|
+
return Buffer.from(id, "base64");
|
|
106
|
+
default:
|
|
107
|
+
return id;
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
export function getColumnParser(fields) {
|
|
111
|
+
if (fields.length === 0) {
|
|
112
|
+
throw new PothosValidationError("Column parser must have at least one field");
|
|
113
|
+
}
|
|
114
|
+
return (value) => {
|
|
115
|
+
const parsed = parseSerializedDrizzleColumn(value);
|
|
116
|
+
if (fields.length === 1) {
|
|
117
|
+
return {
|
|
118
|
+
[fields[0].name]: parsed
|
|
119
|
+
};
|
|
120
|
+
}
|
|
121
|
+
if (!Array.isArray(parsed)) {
|
|
122
|
+
throw new PothosValidationError(`Expected compound cursor to contain an array, but got ${parsed}`);
|
|
123
|
+
}
|
|
124
|
+
const record = {};
|
|
125
|
+
fields.forEach((field, i) => {
|
|
126
|
+
record[field.name] = parsed[i];
|
|
127
|
+
});
|
|
128
|
+
return record;
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
export function getCursorParser(fields) {
|
|
132
|
+
if (fields.length === 0) {
|
|
133
|
+
throw new PothosValidationError("Cursor must have at least one field");
|
|
134
|
+
}
|
|
135
|
+
return (cursor) => {
|
|
136
|
+
const parsed = parseDrizzleCursor(cursor);
|
|
137
|
+
if (fields.length === 1) {
|
|
138
|
+
return {
|
|
139
|
+
[fields[0].name]: parsed
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
if (!Array.isArray(parsed)) {
|
|
143
|
+
throw new PothosValidationError(`Expected compound cursor to contain an array, but got ${parsed}`);
|
|
144
|
+
}
|
|
145
|
+
const record = {};
|
|
146
|
+
fields.forEach((field, i) => {
|
|
147
|
+
record[field.name] = parsed[i];
|
|
148
|
+
});
|
|
149
|
+
return record;
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
const orderByOps = getOrderByOperators();
|
|
153
|
+
function parseOrderBy(orderBy, invert) {
|
|
154
|
+
if (!Array.isArray(orderBy)) {
|
|
155
|
+
return parseOrderBy([
|
|
156
|
+
orderBy
|
|
157
|
+
], invert);
|
|
158
|
+
}
|
|
159
|
+
const asc = invert ? "desc" : "asc";
|
|
160
|
+
const desc = invert ? "asc" : "desc";
|
|
161
|
+
const normalized = orderBy.map((field) => {
|
|
162
|
+
if (typeof field === "object" && "asc" in field) {
|
|
163
|
+
return {
|
|
164
|
+
direction: asc,
|
|
165
|
+
column: field.asc
|
|
166
|
+
};
|
|
167
|
+
}
|
|
168
|
+
else if (typeof field === "object" && "desc" in field) {
|
|
169
|
+
return {
|
|
170
|
+
direction: desc,
|
|
171
|
+
column: field.desc
|
|
172
|
+
};
|
|
173
|
+
}
|
|
174
|
+
return {
|
|
175
|
+
direction: asc,
|
|
176
|
+
column: field
|
|
177
|
+
};
|
|
178
|
+
});
|
|
179
|
+
return {
|
|
180
|
+
normalized,
|
|
181
|
+
columns: normalized.map((field) => field.column),
|
|
182
|
+
sql: normalized.map((field) => orderByOps[field.direction](field.column))
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
const ops = getOperators();
|
|
186
|
+
export function drizzleCursorConnectionQuery({ args, ctx, maxSize = DEFAULT_MAX_SIZE, defaultSize = DEFAULT_SIZE, orderBy, where }) {
|
|
187
|
+
const { before, after, first, last } = args;
|
|
188
|
+
if (first != null && first < 0) {
|
|
189
|
+
throw new PothosValidationError("Argument \"first\" must be a non-negative integer");
|
|
190
|
+
}
|
|
191
|
+
if (last != null && last < 0) {
|
|
192
|
+
throw new PothosValidationError("Argument \"last\" must be a non-negative integer");
|
|
193
|
+
}
|
|
194
|
+
if (before && after) {
|
|
195
|
+
throw new PothosValidationError("Arguments \"before\" and \"after\" are not supported at the same time");
|
|
196
|
+
}
|
|
197
|
+
if (before != null && first != null) {
|
|
198
|
+
throw new PothosValidationError("Arguments \"before\" and \"first\" are not supported at the same time");
|
|
199
|
+
}
|
|
200
|
+
if (after != null && last != null) {
|
|
201
|
+
throw new PothosValidationError("Arguments \"after\" and \"last\" are not supported at the same time");
|
|
202
|
+
}
|
|
203
|
+
const cursor = before !== null && before !== void 0 ? before : after;
|
|
204
|
+
const maxSizeForConnection = typeof maxSize === "function" ? maxSize(args, ctx) : maxSize;
|
|
205
|
+
const defaultSizeForConnection = typeof defaultSize === "function" ? defaultSize(args, ctx) : defaultSize;
|
|
206
|
+
var _ref;
|
|
207
|
+
let limit = Math.min((_ref = first !== null && first !== void 0 ? first : last) !== null && _ref !== void 0 ? _ref : defaultSizeForConnection, maxSizeForConnection) + 1;
|
|
208
|
+
if (before !== null && before !== void 0 ? before : last) {
|
|
209
|
+
limit = -limit;
|
|
210
|
+
}
|
|
211
|
+
const parsedOrderBy = parseOrderBy(orderBy, limit < 0);
|
|
212
|
+
const columns = {};
|
|
213
|
+
parsedOrderBy.columns.forEach((column) => {
|
|
214
|
+
columns[column.name] = true;
|
|
215
|
+
});
|
|
216
|
+
let whereClauses = where ? [
|
|
217
|
+
where
|
|
218
|
+
] : [];
|
|
219
|
+
if (cursor) {
|
|
220
|
+
const cursorParser = getCursorParser(parsedOrderBy.columns);
|
|
221
|
+
const parsedCursor = cursorParser(cursor);
|
|
222
|
+
whereClauses.push(ops.or(...parsedOrderBy.normalized.map(({ direction, column }, index) => {
|
|
223
|
+
const compare = direction === "asc" ? ops.gt(column, parsedCursor[column.name]) : ops.lt(column, parsedCursor[column.name]);
|
|
224
|
+
if (index === 0) {
|
|
225
|
+
return compare;
|
|
226
|
+
}
|
|
227
|
+
return ops.and(...parsedOrderBy.normalized.slice(0, index).map(({ column: c }) => ops.eq(c, parsedCursor[c.name])), compare);
|
|
228
|
+
})));
|
|
229
|
+
}
|
|
230
|
+
return {
|
|
231
|
+
cursorColumns: parsedOrderBy.columns,
|
|
232
|
+
columns,
|
|
233
|
+
orderBy: parsedOrderBy.sql,
|
|
234
|
+
limit,
|
|
235
|
+
offset: cursor ? 1 : 0,
|
|
236
|
+
where: ops.and(...whereClauses)
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
export function wrapConnectionResult(results, args, limit, cursor, resolveNode) {
|
|
240
|
+
var _edges_, _edges_1;
|
|
241
|
+
const gotFullResults = results.length === Math.abs(limit);
|
|
242
|
+
const hasNextPage = args.before ? true : args.last ? false : gotFullResults;
|
|
243
|
+
var _args_before;
|
|
244
|
+
const hasPreviousPage = args.after ? true : ((_args_before = args.before) !== null && _args_before !== void 0 ? _args_before : args.last) ? gotFullResults : false;
|
|
245
|
+
const nodes = gotFullResults ? results.slice(limit < 0 ? 1 : 0, limit < 0 ? results.length : -1) : results;
|
|
246
|
+
const connection = {
|
|
247
|
+
args,
|
|
248
|
+
edges: [],
|
|
249
|
+
pageInfo: {
|
|
250
|
+
startCursor: null,
|
|
251
|
+
endCursor: null,
|
|
252
|
+
hasPreviousPage,
|
|
253
|
+
hasNextPage
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
const edges = nodes.map((value, index) => value == null ? null : resolveNode ? {
|
|
257
|
+
connection,
|
|
258
|
+
...value,
|
|
259
|
+
cursor: cursor(value),
|
|
260
|
+
node: resolveNode(value)
|
|
261
|
+
} : {
|
|
262
|
+
connection,
|
|
263
|
+
cursor: cursor(value),
|
|
264
|
+
node: value
|
|
265
|
+
});
|
|
266
|
+
if (args.last && !args.first) {
|
|
267
|
+
edges.reverse();
|
|
268
|
+
}
|
|
269
|
+
connection.edges = edges;
|
|
270
|
+
var _edges__cursor;
|
|
271
|
+
connection.pageInfo.startCursor = (_edges__cursor = (_edges_ = edges[0]) === null || _edges_ === void 0 ? void 0 : _edges_.cursor) !== null && _edges__cursor !== void 0 ? _edges__cursor : null;
|
|
272
|
+
var _edges__cursor1;
|
|
273
|
+
connection.pageInfo.endCursor = (_edges__cursor1 = (_edges_1 = edges[edges.length - 1]) === null || _edges_1 === void 0 ? void 0 : _edges_1.cursor) !== null && _edges__cursor1 !== void 0 ? _edges__cursor1 : null;
|
|
274
|
+
return connection;
|
|
275
|
+
}
|
|
276
|
+
export async function resolveDrizzleCursorConnection(table, info, typeName, config, options, resolve) {
|
|
277
|
+
let query;
|
|
278
|
+
let formatter;
|
|
279
|
+
const results = await resolve((q) => {
|
|
280
|
+
const { cursorColumns, ...connectionQuery } = drizzleCursorConnectionQuery({
|
|
281
|
+
...options,
|
|
282
|
+
orderBy: q.orderBy ? typeof q.orderBy === "function" ? q.orderBy(table.columns) : q.orderBy : table.primaryKey
|
|
283
|
+
});
|
|
284
|
+
formatter = getCursorFormatter(cursorColumns);
|
|
285
|
+
const where = typeof q.where === "function" ? q.where(table.columns, getOperators()) : q.where;
|
|
286
|
+
query = queryFromInfo({
|
|
287
|
+
context: options.ctx,
|
|
288
|
+
info,
|
|
289
|
+
select: {
|
|
290
|
+
...connectionQuery,
|
|
291
|
+
columns: {
|
|
292
|
+
...q.columns,
|
|
293
|
+
...connectionQuery.columns
|
|
294
|
+
},
|
|
295
|
+
where: ops.and(connectionQuery.where, where)
|
|
296
|
+
},
|
|
297
|
+
paths: [
|
|
298
|
+
[
|
|
299
|
+
"nodes"
|
|
300
|
+
],
|
|
301
|
+
[
|
|
302
|
+
"edges",
|
|
303
|
+
"node"
|
|
304
|
+
]
|
|
305
|
+
],
|
|
306
|
+
typeName,
|
|
307
|
+
config
|
|
308
|
+
});
|
|
309
|
+
return query;
|
|
310
|
+
});
|
|
311
|
+
if (!results) {
|
|
312
|
+
return results;
|
|
313
|
+
}
|
|
314
|
+
return wrapConnectionResult(results, options.args, query.limit, formatter);
|
|
315
|
+
}
|
|
316
|
+
//# sourceMappingURL=cursors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/cursors.ts"],"names":["decodeBase64","encodeBase64","PothosValidationError","getOperators","getOrderByOperators","queryFromInfo","DEFAULT_MAX_SIZE","DEFAULT_SIZE","formatCursorChunk","value","Date","String","Number","formatDrizzleCursor","record","fields","getCursorFormatter","getColumnSerializer","length","JSON","stringify","map","col","name","serializer","parseDrizzleCursor","cursor","decoded","startsWith","parseSerializedDrizzleColumn","slice","type","rawValue","match","parseInt","parse","BigInt","parseID","id","dataType","parseFloat","Buffer","from","getColumnParser","parsed","Array","isArray","forEach","field","i","getCursorParser","orderByOps","parseOrderBy","orderBy","invert","asc","desc","normalized","direction","column","columns","sql","ops","drizzleCursorConnectionQuery","args","ctx","maxSize","defaultSize","where","before","after","first","last","maxSizeForConnection","defaultSizeForConnection","limit","Math","min","parsedOrderBy","whereClauses","cursorParser","parsedCursor","push","or","index","compare","gt","lt","and","c","eq","cursorColumns","offset","wrapConnectionResult","results","resolveNode","edges","gotFullResults","abs","hasNextPage","hasPreviousPage","nodes","connection","pageInfo","startCursor","endCursor","node","reverse","resolveDrizzleCursorConnection","table","info","typeName","config","options","resolve","query","formatter","q","connectionQuery","primaryKey","context","select","paths"],"mappings":"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"}
|