@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,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "ModelLoader", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return ModelLoader;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _drizzleorm = require("drizzle-orm");
|
|
12
|
+
const _core = require("@pothos/core");
|
|
13
|
+
const _loadermap = require("./utils/loader-map");
|
|
14
|
+
const _mapquery = require("./utils/map-query");
|
|
15
|
+
const _selections = require("./utils/selections");
|
|
16
|
+
const _config = require("./utils/config");
|
|
17
|
+
function _define_property(obj, key, value) {
|
|
18
|
+
if (key in obj) {
|
|
19
|
+
Object.defineProperty(obj, key, {
|
|
20
|
+
value: value,
|
|
21
|
+
enumerable: true,
|
|
22
|
+
configurable: true,
|
|
23
|
+
writable: true
|
|
24
|
+
});
|
|
25
|
+
} else {
|
|
26
|
+
obj[key] = value;
|
|
27
|
+
}
|
|
28
|
+
return obj;
|
|
29
|
+
}
|
|
30
|
+
class ModelLoader {
|
|
31
|
+
static forModel(modelName, builder, columns) {
|
|
32
|
+
return (0, _core.createContextCache)((model)=>new ModelLoader(model, builder, modelName, columns));
|
|
33
|
+
}
|
|
34
|
+
sqlForModel(model) {
|
|
35
|
+
const values = this.columns.map((key)=>{
|
|
36
|
+
const columnName = key.name;
|
|
37
|
+
if (columnName in model) {
|
|
38
|
+
return model[columnName];
|
|
39
|
+
}
|
|
40
|
+
throw new Error(`Primary key column ${columnName} not found on ${this.modelName}`);
|
|
41
|
+
});
|
|
42
|
+
return this.columns.length > 1 ? values : values[0];
|
|
43
|
+
}
|
|
44
|
+
getSelection(info) {
|
|
45
|
+
const key = (0, _loadermap.cacheKey)(info.parentType.name, info.path);
|
|
46
|
+
if (!this.queryCache.has(key)) {
|
|
47
|
+
const selection = (0, _mapquery.selectionStateFromInfo)(this.config, this.context, info);
|
|
48
|
+
this.queryCache.set(key, {
|
|
49
|
+
selection,
|
|
50
|
+
query: (0, _selections.selectionToQuery)(selection)
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
return this.queryCache.get(key);
|
|
54
|
+
}
|
|
55
|
+
getSelectionForField(info, typeName) {
|
|
56
|
+
const key = (0, _loadermap.cacheKey)(typeName, info.path);
|
|
57
|
+
if (!this.queryCache.has(key)) {
|
|
58
|
+
const selection = (0, _mapquery.stateFromInfo)({
|
|
59
|
+
config: this.config,
|
|
60
|
+
context: this.context,
|
|
61
|
+
info,
|
|
62
|
+
typeName
|
|
63
|
+
});
|
|
64
|
+
this.queryCache.set(key, {
|
|
65
|
+
selection,
|
|
66
|
+
query: (0, _selections.selectionToQuery)(selection)
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
return this.queryCache.get(key);
|
|
70
|
+
}
|
|
71
|
+
async loadSelection(info, model) {
|
|
72
|
+
const { selection, query } = this.getSelection(info);
|
|
73
|
+
const result = await this.stageQuery(selection, query, model);
|
|
74
|
+
if (result) {
|
|
75
|
+
const mappings = selection.mappings[info.path.key];
|
|
76
|
+
if (mappings) {
|
|
77
|
+
(0, _loadermap.setLoaderMappings)(this.context, info, mappings.mappings);
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
async loadSelectionForField(info, model, returnType) {
|
|
83
|
+
const { selection, query } = this.getSelectionForField(info, returnType);
|
|
84
|
+
const result = await this.stageQuery(selection, query, model);
|
|
85
|
+
if (result) {
|
|
86
|
+
(0, _loadermap.setLoaderMappings)(this.context, info, selection.mappings);
|
|
87
|
+
}
|
|
88
|
+
return result;
|
|
89
|
+
}
|
|
90
|
+
async stageQuery(selection, query, model) {
|
|
91
|
+
for (const entry of this.staged){
|
|
92
|
+
if ((0, _selections.selectionCompatible)(entry.state, query)) {
|
|
93
|
+
(0, _selections.mergeSelection)(this.config, entry.state, query);
|
|
94
|
+
if (!entry.models.has(model)) {
|
|
95
|
+
entry.models.set(model, createResolvablePromise());
|
|
96
|
+
}
|
|
97
|
+
return entry.models.get(model).promise;
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
return this.initLoad(selection, model);
|
|
101
|
+
}
|
|
102
|
+
initLoad(selection, model) {
|
|
103
|
+
const promise = createResolvablePromise();
|
|
104
|
+
const entry = {
|
|
105
|
+
state: selection,
|
|
106
|
+
models: new Map([
|
|
107
|
+
[
|
|
108
|
+
model,
|
|
109
|
+
promise
|
|
110
|
+
]
|
|
111
|
+
])
|
|
112
|
+
};
|
|
113
|
+
this.staged.add(entry);
|
|
114
|
+
const nextTick = createResolvablePromise();
|
|
115
|
+
nextTick.promise.then(()=>{
|
|
116
|
+
const api = this.builder.options.drizzle.client.query[this.modelName];
|
|
117
|
+
const query = api.findMany({
|
|
118
|
+
...(0, _selections.selectionToQuery)(selection),
|
|
119
|
+
where: (0, _drizzleorm.inArray)(this.selectSQL, [
|
|
120
|
+
entry.models.keys()
|
|
121
|
+
].map(([model])=>this.sqlForModel(model)))
|
|
122
|
+
});
|
|
123
|
+
query.then((results)=>{
|
|
124
|
+
for (const [model, promise] of entry.models.entries()){
|
|
125
|
+
const result = results.find((row)=>this.table.primaryKey.every((key)=>row[key.name] === model[key.name]));
|
|
126
|
+
if (result) {
|
|
127
|
+
promise.resolve(result !== null && result !== void 0 ? result : null);
|
|
128
|
+
} else promise.reject(new Error(`Model ${this.modelName}(${this.sqlForModel(model)}) not found`));
|
|
129
|
+
}
|
|
130
|
+
}, (err)=>{
|
|
131
|
+
for (const promise of entry.models.values()){
|
|
132
|
+
promise.reject(err);
|
|
133
|
+
}
|
|
134
|
+
});
|
|
135
|
+
}).catch((err)=>{
|
|
136
|
+
for (const promise of entry.models.values()){
|
|
137
|
+
promise.reject(err);
|
|
138
|
+
}
|
|
139
|
+
});
|
|
140
|
+
setTimeout(()=>void nextTick.resolve(), 0);
|
|
141
|
+
return promise.promise;
|
|
142
|
+
}
|
|
143
|
+
constructor(context, builder, modelName, columns){
|
|
144
|
+
_define_property(this, "context", void 0);
|
|
145
|
+
_define_property(this, "builder", void 0);
|
|
146
|
+
_define_property(this, "modelName", void 0);
|
|
147
|
+
_define_property(this, "queryCache", new Map());
|
|
148
|
+
_define_property(this, "staged", new Set());
|
|
149
|
+
_define_property(this, "config", void 0);
|
|
150
|
+
_define_property(this, "table", void 0);
|
|
151
|
+
_define_property(this, "columns", void 0);
|
|
152
|
+
_define_property(this, "selectSQL", void 0);
|
|
153
|
+
this.context = context;
|
|
154
|
+
this.builder = builder;
|
|
155
|
+
this.modelName = modelName;
|
|
156
|
+
this.config = (0, _config.getSchemaConfig)(builder);
|
|
157
|
+
this.table = this.config.schema[modelName];
|
|
158
|
+
this.columns = columns !== null && columns !== void 0 ? columns : this.table.primaryKey;
|
|
159
|
+
this.selectSQL = this.columns.length > 1 ? (0, _drizzleorm.sql)`(${_drizzleorm.sql.join(this.columns, (0, _drizzleorm.sql)`, `)})` : this.columns[0].getSQL();
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
function createResolvablePromise() {
|
|
163
|
+
let resolveFn;
|
|
164
|
+
let rejectFn;
|
|
165
|
+
const promise = new Promise((resolve, reject)=>{
|
|
166
|
+
resolveFn = resolve;
|
|
167
|
+
rejectFn = reject;
|
|
168
|
+
});
|
|
169
|
+
return {
|
|
170
|
+
promise,
|
|
171
|
+
resolve: resolveFn,
|
|
172
|
+
reject: rejectFn
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
//# sourceMappingURL=model-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/model-loader.ts"],"names":["ModelLoader","forModel","modelName","builder","columns","createContextCache","model","sqlForModel","values","map","key","columnName","name","Error","length","getSelection","info","cacheKey","parentType","path","queryCache","has","selection","selectionStateFromInfo","config","context","set","query","selectionToQuery","get","getSelectionForField","typeName","stateFromInfo","loadSelection","result","stageQuery","mappings","setLoaderMappings","loadSelectionForField","returnType","entry","staged","selectionCompatible","state","mergeSelection","models","createResolvablePromise","promise","initLoad","Map","add","nextTick","then","api","options","drizzle","client","findMany","where","inArray","selectSQL","keys","results","entries","find","row","table","primaryKey","every","resolve","reject","err","catch","setTimeout","constructor","Set","getSchemaConfig","schema","sql","join","getSQL","resolveFn","rejectFn","Promise"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "DrizzleNodeRef", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return DrizzleNodeRef;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _objectref = require("./object-ref");
|
|
12
|
+
class DrizzleNodeRef extends _objectref.DrizzleObjectRef {
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
//# sourceMappingURL=node-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/node-ref.ts"],"names":["DrizzleNodeRef","DrizzleObjectRef"],"mappings":";;;;+BAGaA;;;eAAAA;;;2BAFoB;AAE1B,MAAMA,uBAIHC,2BAAgB;AAAmB"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
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
|
+
DrizzleObjectRef: function() {
|
|
13
|
+
return DrizzleObjectRef;
|
|
14
|
+
},
|
|
15
|
+
drizzleTableKey: function() {
|
|
16
|
+
return drizzleTableKey;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _core = require("@pothos/core");
|
|
20
|
+
function _define_property(obj, key, value) {
|
|
21
|
+
if (key in obj) {
|
|
22
|
+
Object.defineProperty(obj, key, {
|
|
23
|
+
value: value,
|
|
24
|
+
enumerable: true,
|
|
25
|
+
configurable: true,
|
|
26
|
+
writable: true
|
|
27
|
+
});
|
|
28
|
+
} else {
|
|
29
|
+
obj[key] = value;
|
|
30
|
+
}
|
|
31
|
+
return obj;
|
|
32
|
+
}
|
|
33
|
+
const drizzleTableKey = Symbol.for('Pothos.drizzleTableKey');
|
|
34
|
+
let _drizzleTableKey = drizzleTableKey, _abstractReturnShapeKey = _core.abstractReturnShapeKey;
|
|
35
|
+
class DrizzleObjectRef extends _core.ObjectRef {
|
|
36
|
+
addBrand(value) {
|
|
37
|
+
if (Array.isArray(value)) {
|
|
38
|
+
value.forEach((val)=>void (0, _core.brandWithType)(val, this.name));
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
(0, _core.brandWithType)(value, this.name);
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
44
|
+
hasBrand(value) {
|
|
45
|
+
return typeof value === 'object' && value !== null && _core.typeBrandKey in value && value[_core.typeBrandKey] === this.name;
|
|
46
|
+
}
|
|
47
|
+
constructor(name, tableName){
|
|
48
|
+
super(name);
|
|
49
|
+
_define_property(this, _drizzleTableKey, void 0);
|
|
50
|
+
_define_property(this, _abstractReturnShapeKey, void 0);
|
|
51
|
+
_define_property(this, "tableName", void 0);
|
|
52
|
+
this.tableName = tableName;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
//# sourceMappingURL=object-ref.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/object-ref.ts"],"names":["DrizzleObjectRef","drizzleTableKey","Symbol","for","abstractReturnShapeKey","ObjectRef","addBrand","value","Array","isArray","forEach","val","brandWithType","name","hasBrand","typeBrandKey","constructor","tableName"],"mappings":";;;;;;;;;;;IAWaA,gBAAgB;eAAhBA;;IAFAC,eAAe;eAAfA;;;sBAHN;;;;;;;;;;;;;;AAGA,MAAMA,kBAAkBC,OAAOC,GAAG,CAAC;IAOvCF,mBAAAA,iBAEAG,0BAAAA,4BAAsB;AAPlB,MAAMJ,yBAIHK,eAAS;IAajBC,SACEC,KAAQ,EAC4D;QACpE,IAAIC,MAAMC,OAAO,CAACF,QAAQ;YACxBA,MAAMG,OAAO,CAAC,CAACC,MAAQ,KAAKC,IAAAA,mBAAa,EAACD,KAAK,IAAI,CAACE,IAAI;YAExD,OAAON;QACT;QAEAK,IAAAA,mBAAa,EAACL,OAAO,IAAI,CAACM,IAAI;QAE9B,OAAON;IACT;IAEAO,SAASP,KAAc,EAAE;QACvB,OACE,OAAOA,UAAU,YACjBA,UAAU,QACVQ,kBAAY,IAAIR,SAChB,AAACA,KAAsC,CAACQ,kBAAY,CAAC,KAAK,IAAI,CAACF,IAAI;IAEvE;IA3BAG,YAAYH,IAAY,EAAEI,SAAiB,CAAE;QAC3C,KAAK,CAACJ;QAPR,uBAACZ,kBAAD,KAAA;QAEA,uBAACG,yBAAD,KAAA;QAEAa,uBAAAA,aAAAA,KAAAA;QAKE,IAAI,CAACA,SAAS,GAAGA;IACnB;AAwBF"}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
const _core = /*#__PURE__*/ _interop_require_wildcard(require("@pothos/core"));
|
|
6
|
+
const _drizzlefieldbuilder = require("./drizzle-field-builder");
|
|
7
|
+
const _refs = require("./utils/refs");
|
|
8
|
+
const _objectref = require("./object-ref");
|
|
9
|
+
const _cursors = require("./utils/cursors");
|
|
10
|
+
const _noderef = require("./node-ref");
|
|
11
|
+
const _modelloader = require("./model-loader");
|
|
12
|
+
const _interfaceref = require("./interface-ref");
|
|
13
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
14
|
+
if (typeof WeakMap !== "function") return null;
|
|
15
|
+
var cacheBabelInterop = new WeakMap();
|
|
16
|
+
var cacheNodeInterop = new WeakMap();
|
|
17
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
18
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
19
|
+
})(nodeInterop);
|
|
20
|
+
}
|
|
21
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
22
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
23
|
+
return obj;
|
|
24
|
+
}
|
|
25
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
26
|
+
return {
|
|
27
|
+
default: obj
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
31
|
+
if (cache && cache.has(obj)) {
|
|
32
|
+
return cache.get(obj);
|
|
33
|
+
}
|
|
34
|
+
var newObj = {
|
|
35
|
+
__proto__: null
|
|
36
|
+
};
|
|
37
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
38
|
+
for(var key in obj){
|
|
39
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
40
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
41
|
+
if (desc && (desc.get || desc.set)) {
|
|
42
|
+
Object.defineProperty(newObj, key, desc);
|
|
43
|
+
} else {
|
|
44
|
+
newObj[key] = obj[key];
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
newObj.default = obj;
|
|
49
|
+
if (cache) {
|
|
50
|
+
cache.set(obj, newObj);
|
|
51
|
+
}
|
|
52
|
+
return newObj;
|
|
53
|
+
}
|
|
54
|
+
const schemaBuilderProto = _core.default.prototype;
|
|
55
|
+
schemaBuilderProto.drizzleObject = function drizzleObject(table, { select, fields, ...options }) {
|
|
56
|
+
var _this_options_drizzle_client___schema;
|
|
57
|
+
var _options_variant, _ref;
|
|
58
|
+
const name = (_ref = (_options_variant = options.variant) !== null && _options_variant !== void 0 ? _options_variant : options.name) !== null && _ref !== void 0 ? _ref : table;
|
|
59
|
+
const ref = options.variant ? new _objectref.DrizzleObjectRef(options.variant, name) : (0, _refs.getRefFromModel)(table, this, 'object');
|
|
60
|
+
ref.name = name !== null && name !== void 0 ? name : table;
|
|
61
|
+
this.objectType(ref, {
|
|
62
|
+
...options,
|
|
63
|
+
extensions: {
|
|
64
|
+
...options.extensions,
|
|
65
|
+
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
|
+
pothosDrizzleSelect: select !== null && select !== void 0 ? select : {},
|
|
68
|
+
pothosDrizzleLoader: _modelloader.ModelLoader.forModel(table, this)
|
|
69
|
+
},
|
|
70
|
+
name,
|
|
71
|
+
fields: fields ? ()=>fields(new _drizzlefieldbuilder.DrizzleObjectFieldBuilder(ref.name, this, table)) : undefined
|
|
72
|
+
});
|
|
73
|
+
return ref;
|
|
74
|
+
};
|
|
75
|
+
schemaBuilderProto.drizzleInterface = function drizzleInterface(table, { select, fields, ...options }) {
|
|
76
|
+
var _this_options_drizzle_client___schema;
|
|
77
|
+
var _options_name;
|
|
78
|
+
const name = (_options_name = options.name) !== null && _options_name !== void 0 ? _options_name : table;
|
|
79
|
+
const ref = options.variant ? new _interfaceref.DrizzleInterfaceRef(options.variant, name) : (0, _refs.getRefFromModel)(table, this, 'interface');
|
|
80
|
+
ref.name = name !== null && name !== void 0 ? name : table;
|
|
81
|
+
this.interfaceType(ref, {
|
|
82
|
+
...options,
|
|
83
|
+
extensions: {
|
|
84
|
+
...options.extensions,
|
|
85
|
+
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
|
+
pothosDrizzleSelect: select !== null && select !== void 0 ? select : {},
|
|
88
|
+
pothosDrizzleLoader: _modelloader.ModelLoader.forModel(table, this)
|
|
89
|
+
},
|
|
90
|
+
name,
|
|
91
|
+
fields: fields ? ()=>fields(new _drizzlefieldbuilder.DrizzleObjectFieldBuilder(ref.name, this, table, 'Interface')) : undefined
|
|
92
|
+
});
|
|
93
|
+
return ref;
|
|
94
|
+
};
|
|
95
|
+
schemaBuilderProto.drizzleNode = function drizzleNode(table, { id: { column, ...idOptions }, name, variant, ...options }) {
|
|
96
|
+
var _this_nodeInterfaceRef, _this;
|
|
97
|
+
const tableConfig = this.options.drizzle.client._.schema[table];
|
|
98
|
+
const idColumn = typeof column === 'function' ? column(tableConfig.columns) : column;
|
|
99
|
+
const idColumns = Array.isArray(idColumn) ? idColumn : [
|
|
100
|
+
idColumn
|
|
101
|
+
];
|
|
102
|
+
const interfaceRef = (_this_nodeInterfaceRef = (_this = this).nodeInterfaceRef) === null || _this_nodeInterfaceRef === void 0 ? void 0 : _this_nodeInterfaceRef.call(_this);
|
|
103
|
+
const resolve = (0, _cursors.getColumnSerializer)(idColumns);
|
|
104
|
+
const idParser = (0, _cursors.getColumnParser)(idColumns);
|
|
105
|
+
var _ref;
|
|
106
|
+
const typeName = (_ref = variant !== null && variant !== void 0 ? variant : name) !== null && _ref !== void 0 ? _ref : table;
|
|
107
|
+
const nodeRef = new _noderef.DrizzleNodeRef(typeName, table);
|
|
108
|
+
const modelLoader = _modelloader.ModelLoader.forModel(table, this, idColumns);
|
|
109
|
+
if (!interfaceRef) {
|
|
110
|
+
throw new _core.PothosError('builder.drizzleNode requires @pothos/plugin-relay to be installed');
|
|
111
|
+
}
|
|
112
|
+
const extendedOptions = {
|
|
113
|
+
...options,
|
|
114
|
+
name,
|
|
115
|
+
variant,
|
|
116
|
+
interfaces: [
|
|
117
|
+
interfaceRef
|
|
118
|
+
],
|
|
119
|
+
loadWithoutCache: async (id, context, info)=>{
|
|
120
|
+
const record = await modelLoader(context).loadSelectionForField(info, idParser(id), typeName);
|
|
121
|
+
if (record) {
|
|
122
|
+
(0, _core.brandWithType)(record, typeName);
|
|
123
|
+
}
|
|
124
|
+
return record;
|
|
125
|
+
}
|
|
126
|
+
};
|
|
127
|
+
const ref = this.drizzleObject(table, extendedOptions);
|
|
128
|
+
if (options.interfaces) {
|
|
129
|
+
ref.addInterfaces(options.interfaces);
|
|
130
|
+
}
|
|
131
|
+
this.configStore.onTypeConfig(ref, (nodeConfig)=>{
|
|
132
|
+
var _this_options_relayOptions;
|
|
133
|
+
var _this_options_relayOptions_idFieldName;
|
|
134
|
+
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)=>{
|
|
135
|
+
var _this_options_relayOptions;
|
|
136
|
+
return t.globalID({
|
|
137
|
+
...(_this_options_relayOptions = this.options.relayOptions) === null || _this_options_relayOptions === void 0 ? void 0 : _this_options_relayOptions.idFieldOptions,
|
|
138
|
+
...idOptions,
|
|
139
|
+
nullable: false,
|
|
140
|
+
args: {},
|
|
141
|
+
resolve: (parent, args, context, info)=>(0, _core.completeValue)(resolve(parent), (id)=>({
|
|
142
|
+
type: nodeConfig.name,
|
|
143
|
+
id
|
|
144
|
+
}))
|
|
145
|
+
});
|
|
146
|
+
});
|
|
147
|
+
});
|
|
148
|
+
this.configStore.associateParamWithRef(nodeRef, ref);
|
|
149
|
+
return nodeRef;
|
|
150
|
+
};
|
|
151
|
+
schemaBuilderProto.drizzleObjectField = function drizzleObjectField(type, fieldName, field) {
|
|
152
|
+
const ref = typeof type === 'string' ? (0, _refs.getRefFromModel)(type, this) : type;
|
|
153
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
154
|
+
this.configStore.addFields(ref, ()=>({
|
|
155
|
+
[fieldName]: field(new _drizzlefieldbuilder.DrizzleObjectFieldBuilder(name, this, ref.tableName))
|
|
156
|
+
}));
|
|
157
|
+
});
|
|
158
|
+
};
|
|
159
|
+
schemaBuilderProto.drizzleInterfaceField = function drizzleInterfaceField(type, fieldName, field) {
|
|
160
|
+
const ref = typeof type === 'string' ? (0, _refs.getRefFromModel)(type, this) : type;
|
|
161
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
162
|
+
this.configStore.addFields(ref, ()=>({
|
|
163
|
+
[fieldName]: field(new _drizzlefieldbuilder.DrizzleObjectFieldBuilder(name, this, ref.tableName, 'Interface'))
|
|
164
|
+
}));
|
|
165
|
+
});
|
|
166
|
+
};
|
|
167
|
+
schemaBuilderProto.drizzleObjectFields = function drizzleObjectFields(type, fields) {
|
|
168
|
+
const ref = typeof type === 'string' ? (0, _refs.getRefFromModel)(type, this) : type;
|
|
169
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
170
|
+
this.configStore.addFields(ref, ()=>fields(new _drizzlefieldbuilder.DrizzleObjectFieldBuilder(name, this, ref.tableName)));
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
schemaBuilderProto.drizzleInterfaceFields = function drizzleInterfaceFields(type, fields) {
|
|
174
|
+
const ref = typeof type === 'string' ? (0, _refs.getRefFromModel)(type, this) : type;
|
|
175
|
+
this.configStore.onTypeConfig(ref, ({ name })=>{
|
|
176
|
+
this.configStore.addFields(ref, ()=>fields(new _drizzlefieldbuilder.DrizzleObjectFieldBuilder(name, this, ref.tableName, 'Interface')));
|
|
177
|
+
});
|
|
178
|
+
};
|
|
179
|
+
schemaBuilderProto.drizzleGraphQLOrderBy = function drizzleGraphQLOrderBy(table, type, options) {
|
|
180
|
+
var _this_options_drizzle_client___schema;
|
|
181
|
+
return this.addGraphQLInput(type, {
|
|
182
|
+
...options,
|
|
183
|
+
extensions: {
|
|
184
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
185
|
+
drizzleGraphQL: {
|
|
186
|
+
inputType: 'orderBy',
|
|
187
|
+
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
|
+
}
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
};
|
|
193
|
+
schemaBuilderProto.drizzleGraphQLFilters = function drizzleGraphQLFilters(table, type, options) {
|
|
194
|
+
var _this_options_drizzle_client___schema;
|
|
195
|
+
return this.addGraphQLInput(type, {
|
|
196
|
+
...options,
|
|
197
|
+
extensions: {
|
|
198
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
199
|
+
drizzleGraphQL: {
|
|
200
|
+
inputType: 'filters',
|
|
201
|
+
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
|
+
}
|
|
204
|
+
}
|
|
205
|
+
});
|
|
206
|
+
};
|
|
207
|
+
schemaBuilderProto.drizzleGraphQLInsert = function drizzleGraphQLInsert(table, type, options) {
|
|
208
|
+
var _this_options_drizzle_client___schema;
|
|
209
|
+
return this.addGraphQLInput(type, {
|
|
210
|
+
...options,
|
|
211
|
+
extensions: {
|
|
212
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
213
|
+
drizzleGraphQL: {
|
|
214
|
+
inputType: 'insert',
|
|
215
|
+
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
|
+
}
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
};
|
|
221
|
+
schemaBuilderProto.drizzleGraphQLUpdate = function drizzleGraphQLUpdate(table, type, options) {
|
|
222
|
+
var _this_options_drizzle_client___schema;
|
|
223
|
+
return this.addGraphQLInput(type, {
|
|
224
|
+
...options,
|
|
225
|
+
extensions: {
|
|
226
|
+
...options === null || options === void 0 ? void 0 : options.extensions,
|
|
227
|
+
drizzleGraphQL: {
|
|
228
|
+
inputType: 'update',
|
|
229
|
+
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
|
+
}
|
|
232
|
+
}
|
|
233
|
+
});
|
|
234
|
+
};
|
|
235
|
+
|
|
236
|
+
//# sourceMappingURL=schema-builder.js.map
|
|
@@ -0,0 +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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"}
|
package/lib/src/types.js
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "drizzleTableName", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return drizzleTableName;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const drizzleTableName = Symbol.for('Pothos.drizzleTableName');
|
|
12
|
+
|
|
13
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/types.ts"],"names":["drizzleTableName","Symbol","for"],"mappings":";;;;+BAkDaA;;;eAAAA;;;AAAN,MAAMA,mBAAmBC,OAAOC,GAAG,CAAC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "getSchemaConfig", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return getSchemaConfig;
|
|
9
|
+
}
|
|
10
|
+
});
|
|
11
|
+
const _core = require("@pothos/core");
|
|
12
|
+
const cache = (0, _core.createContextCache)((config)=>{
|
|
13
|
+
const dbToSchema = Object.values(config.schema).reduce((acc, table)=>{
|
|
14
|
+
acc[table.dbName] = table;
|
|
15
|
+
return acc;
|
|
16
|
+
}, {});
|
|
17
|
+
return {
|
|
18
|
+
dbToSchema,
|
|
19
|
+
...config
|
|
20
|
+
};
|
|
21
|
+
});
|
|
22
|
+
function getSchemaConfig(builder) {
|
|
23
|
+
return cache(builder.options.drizzle.client._);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +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":";;;;+BAuBgBA;;;eAAAA;;;sBAvBgC;AAMhD,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"}
|