@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,57 @@
|
|
|
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
|
+
cacheKey: function() {
|
|
13
|
+
return cacheKey;
|
|
14
|
+
},
|
|
15
|
+
getLoaderMapping: function() {
|
|
16
|
+
return getLoaderMapping;
|
|
17
|
+
},
|
|
18
|
+
setLoaderMappings: function() {
|
|
19
|
+
return setLoaderMappings;
|
|
20
|
+
}
|
|
21
|
+
});
|
|
22
|
+
const _core = require("@pothos/core");
|
|
23
|
+
const cache = (0, _core.createContextCache)((ctx)=>new Map());
|
|
24
|
+
function cacheKey(type, path, subPath = []) {
|
|
25
|
+
let key = '';
|
|
26
|
+
let current = path;
|
|
27
|
+
while(current){
|
|
28
|
+
if (typeof current.key === 'string') {
|
|
29
|
+
key = key ? `${current.key}.${key}` : current.key;
|
|
30
|
+
}
|
|
31
|
+
current = current.prev;
|
|
32
|
+
}
|
|
33
|
+
for (const entry of subPath){
|
|
34
|
+
key = `${key}.${entry}`;
|
|
35
|
+
}
|
|
36
|
+
return `${type}@${key}`;
|
|
37
|
+
}
|
|
38
|
+
function setLoaderMappings(ctx, info, value) {
|
|
39
|
+
Object.keys(value).forEach((field)=>{
|
|
40
|
+
const map = cache(ctx);
|
|
41
|
+
const mapping = value[field];
|
|
42
|
+
const subPath = [
|
|
43
|
+
...mapping.indirectPath,
|
|
44
|
+
field
|
|
45
|
+
];
|
|
46
|
+
const key = cacheKey(mapping.type, info.path, subPath);
|
|
47
|
+
map.set(key, mapping.mappings);
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
function getLoaderMapping(ctx, path, type) {
|
|
51
|
+
const map = cache(ctx);
|
|
52
|
+
const key = cacheKey(type, path, []);
|
|
53
|
+
var _map_get;
|
|
54
|
+
return (_map_get = map.get(key)) !== null && _map_get !== void 0 ? _map_get : null;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
//# sourceMappingURL=loader-map.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/loader-map.ts"],"names":["cacheKey","getLoaderMapping","setLoaderMappings","cache","createContextCache","ctx","Map","type","path","subPath","key","current","prev","entry","info","value","Object","keys","forEach","field","map","mapping","indirectPath","set","mappings","get"],"mappings":";;;;;;;;;;;IAegBA,QAAQ;eAARA;;IA8BAC,gBAAgB;eAAhBA;;IAZAC,iBAAiB;eAAjBA;;;sBAhCmB;AAYnC,MAAMC,QAAQC,IAAAA,wBAAkB,EAAC,CAACC,MAAQ,IAAIC;AAEvC,SAASN,SAASO,IAAY,EAAEC,IAAgC,EAAEC,UAAoB,EAAE;IAC7F,IAAIC,MAAM;IACV,IAAIC,UAAkDH;IAEtD,MAAOG,QAAS;QACd,IAAI,OAAOA,QAAQD,GAAG,KAAK,UAAU;YACnCA,MAAMA,MAAM,CAAC,EAAEC,QAAQD,GAAG,CAAC,CAAC,EAAEA,IAAI,CAAC,GAAGC,QAAQD,GAAG;QACnD;QACAC,UAAUA,QAAQC,IAAI;IACxB;IAEA,KAAK,MAAMC,SAASJ,QAAS;QAC3BC,MAAM,CAAC,EAAEA,IAAI,CAAC,EAAEG,MAAM,CAAC;IACzB;IAEA,OAAO,CAAC,EAAEN,KAAK,CAAC,EAAEG,IAAI,CAAC;AACzB;AAEO,SAASR,kBAAkBG,GAAW,EAAES,IAAwB,EAAEC,KAAqB;IAC5FC,OAAOC,IAAI,CAACF,OAAOG,OAAO,CAAC,CAACC;QAC1B,MAAMC,MAAMjB,MAAME;QAElB,MAAMgB,UAAUN,KAAK,CAACI,MAAM;QAC5B,MAAMV,UAAU;eAAIY,QAAQC,YAAY;YAAEH;SAAM;QAChD,MAAMT,MAAMV,SAASqB,QAAQd,IAAI,EAAEO,KAAKN,IAAI,EAAEC;QAE9CW,IAAIG,GAAG,CAACb,KAAKW,QAAQG,QAAQ;IAC/B;AACF;AAEO,SAASvB,iBAAiBI,GAAW,EAAEG,IAAgC,EAAED,IAAY;IAC1F,MAAMa,MAAMjB,MAAME;IAClB,MAAMK,MAAMV,SAASO,MAAMC,MAAM,EAAE;QAE5BY;IAAP,OAAOA,CAAAA,WAAAA,IAAIK,GAAG,CAACf,kBAARU,sBAAAA,WAAgB;AACzB"}
|
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/* eslint-disable no-continue */ "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
|
+
getIndirectType: function() {
|
|
13
|
+
return getIndirectType;
|
|
14
|
+
},
|
|
15
|
+
normalizeInclude: function() {
|
|
16
|
+
return normalizeInclude;
|
|
17
|
+
},
|
|
18
|
+
queryFromInfo: function() {
|
|
19
|
+
return queryFromInfo;
|
|
20
|
+
},
|
|
21
|
+
selectionStateFromInfo: function() {
|
|
22
|
+
return selectionStateFromInfo;
|
|
23
|
+
},
|
|
24
|
+
stateFromInfo: function() {
|
|
25
|
+
return stateFromInfo;
|
|
26
|
+
}
|
|
27
|
+
});
|
|
28
|
+
const _graphql = require("graphql");
|
|
29
|
+
const _core = require("@pothos/core");
|
|
30
|
+
const _loadermap = require("./loader-map");
|
|
31
|
+
const _selections = require("./selections");
|
|
32
|
+
const _usage = require("./usage");
|
|
33
|
+
function addTypeSelectionsForField(config, type, context, info, state, selection, indirectPath) {
|
|
34
|
+
if (selection.name.value.startsWith('__')) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
var _type_extensions;
|
|
38
|
+
const { pothosDrizzleSelect, pothosIndirectInclude } = (_type_extensions = type.extensions) !== null && _type_extensions !== void 0 ? _type_extensions : {};
|
|
39
|
+
if (!!(pothosIndirectInclude === null || pothosIndirectInclude === void 0 ? void 0 : pothosIndirectInclude.path) && pothosIndirectInclude.path.length > 0 || !!(pothosIndirectInclude === null || pothosIndirectInclude === void 0 ? void 0 : pothosIndirectInclude.paths) && pothosIndirectInclude.paths.length === 0) {
|
|
40
|
+
var _pothosIndirectInclude_paths;
|
|
41
|
+
resolveIndirectIncludePaths(type, info, selection, [], (_pothosIndirectInclude_paths = pothosIndirectInclude.paths) !== null && _pothosIndirectInclude_paths !== void 0 ? _pothosIndirectInclude_paths : [
|
|
42
|
+
pothosIndirectInclude.path
|
|
43
|
+
], indirectPath, (resolvedType, field, path)=>{
|
|
44
|
+
addTypeSelectionsForField(config, resolvedType, context, info, state, field, path);
|
|
45
|
+
});
|
|
46
|
+
} else if (pothosIndirectInclude) {
|
|
47
|
+
addTypeSelectionsForField(config, info.schema.getType(pothosIndirectInclude.getType()), context, info, state, selection, indirectPath);
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
if (!((0, _graphql.isObjectType)(type) || (0, _graphql.isInterfaceType)(type))) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (pothosDrizzleSelect) {
|
|
54
|
+
(0, _selections.mergeSelection)(config, state, {
|
|
55
|
+
...pothosDrizzleSelect
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
if (selection.selectionSet) {
|
|
59
|
+
addNestedSelections(config, type, context, info, state, selection.selectionSet, indirectPath);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
function resolveIndirectIncludePaths(type, info, selection, pathPrefix, includePaths, path, resolve) {
|
|
63
|
+
for (const includePath of includePaths){
|
|
64
|
+
if (pathPrefix.length > 0) {
|
|
65
|
+
resolveIndirectInclude(type, info, selection, [
|
|
66
|
+
...pathPrefix,
|
|
67
|
+
...includePath
|
|
68
|
+
], path, resolve);
|
|
69
|
+
} else {
|
|
70
|
+
resolveIndirectInclude(type, info, selection, includePath, path, resolve);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
function resolveIndirectInclude(type, info, selection, includePath, path, resolve) {
|
|
75
|
+
if (includePath.length === 0) {
|
|
76
|
+
resolve(type, selection, path);
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const [include, ...rest] = includePath;
|
|
80
|
+
if (!selection.selectionSet || !include) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
for (const sel of selection.selectionSet.selections){
|
|
84
|
+
switch(sel.kind){
|
|
85
|
+
case _graphql.Kind.FIELD:
|
|
86
|
+
if (!fieldSkipped(info, sel) && sel.name.value === include.name && ((0, _graphql.isObjectType)(type) || (0, _graphql.isInterfaceType)(type))) {
|
|
87
|
+
var _sel_alias;
|
|
88
|
+
const returnType = (0, _graphql.getNamedType)(type.getFields()[sel.name.value].type);
|
|
89
|
+
var _sel_alias_value;
|
|
90
|
+
resolveIndirectInclude(returnType, info, sel, rest, [
|
|
91
|
+
...path,
|
|
92
|
+
(_sel_alias_value = (_sel_alias = sel.alias) === null || _sel_alias === void 0 ? void 0 : _sel_alias.value) !== null && _sel_alias_value !== void 0 ? _sel_alias_value : sel.name.value
|
|
93
|
+
], resolve);
|
|
94
|
+
}
|
|
95
|
+
continue;
|
|
96
|
+
case _graphql.Kind.FRAGMENT_SPREAD:
|
|
97
|
+
if (!include.type || info.fragments[sel.name.value].typeCondition.name.value === include.type) {
|
|
98
|
+
resolveIndirectInclude(include.type ? info.schema.getType(include.type) : type, info, info.fragments[sel.name.value], includePath, path, resolve);
|
|
99
|
+
}
|
|
100
|
+
continue;
|
|
101
|
+
case _graphql.Kind.INLINE_FRAGMENT:
|
|
102
|
+
if (!sel.typeCondition || !include.type || sel.typeCondition.name.value === include.type) {
|
|
103
|
+
resolveIndirectInclude(sel.typeCondition ? info.schema.getType(sel.typeCondition.name.value) : type, info, sel, includePath, path, resolve);
|
|
104
|
+
}
|
|
105
|
+
continue;
|
|
106
|
+
default:
|
|
107
|
+
throw new _core.PothosValidationError(`Unsupported selection kind ${selection.kind}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
function addNestedSelections(config, type, context, info, state, selections, indirectPath) {
|
|
112
|
+
let parentType = type;
|
|
113
|
+
for (const selection of selections.selections){
|
|
114
|
+
switch(selection.kind){
|
|
115
|
+
case _graphql.Kind.FIELD:
|
|
116
|
+
addFieldSelection(config, type, context, info, state, selection, indirectPath);
|
|
117
|
+
continue;
|
|
118
|
+
case _graphql.Kind.FRAGMENT_SPREAD:
|
|
119
|
+
var _parentType_extensions;
|
|
120
|
+
parentType = info.schema.getType(info.fragments[selection.name.value].typeCondition.name.value);
|
|
121
|
+
if ((0, _graphql.isObjectType)(type) ? parentType.name !== type.name : ((_parentType_extensions = parentType.extensions) === null || _parentType_extensions === void 0 ? void 0 : _parentType_extensions.pothosDrizzleModel) !== type.extensions.pothosDrizzleModel) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
addNestedSelections(config, parentType, context, info, state, info.fragments[selection.name.value].selectionSet, indirectPath);
|
|
125
|
+
continue;
|
|
126
|
+
case _graphql.Kind.INLINE_FRAGMENT:
|
|
127
|
+
var _parentType_extensions1;
|
|
128
|
+
parentType = selection.typeCondition ? info.schema.getType(selection.typeCondition.name.value) : type;
|
|
129
|
+
if ((0, _graphql.isObjectType)(type) ? parentType.name !== type.name : ((_parentType_extensions1 = parentType.extensions) === null || _parentType_extensions1 === void 0 ? void 0 : _parentType_extensions1.pothosDrizzleModel) !== type.extensions.pothosDrizzleModel) {
|
|
130
|
+
continue;
|
|
131
|
+
}
|
|
132
|
+
addNestedSelections(config, parentType, context, info, state, selection.selectionSet, indirectPath);
|
|
133
|
+
continue;
|
|
134
|
+
default:
|
|
135
|
+
throw new _core.PothosValidationError(`Unsupported selection kind ${selection.kind}`);
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
function addFieldSelection(config, type, context, info, state, selection, indirectPath) {
|
|
140
|
+
var _field_extensions;
|
|
141
|
+
if (selection.name.value.startsWith('__') || fieldSkipped(info, selection)) {
|
|
142
|
+
return;
|
|
143
|
+
}
|
|
144
|
+
const field = type.getFields()[selection.name.value];
|
|
145
|
+
if (!field) {
|
|
146
|
+
throw new _core.PothosValidationError(`Unknown field ${selection.name.value} on ${type.name}`);
|
|
147
|
+
}
|
|
148
|
+
const fieldSelect = (_field_extensions = field.extensions) === null || _field_extensions === void 0 ? void 0 : _field_extensions.pothosDrizzleSelect;
|
|
149
|
+
let fieldSelectionMap;
|
|
150
|
+
let mappings = {};
|
|
151
|
+
if (typeof fieldSelect === 'function') {
|
|
152
|
+
const args = (0, _graphql.getArgumentValues)(field, selection, info.variableValues);
|
|
153
|
+
fieldSelectionMap = fieldSelect(args, context, (rawQuery, indirectInclude, expectedType)=>{
|
|
154
|
+
const returnType = (0, _graphql.getNamedType)(field.type);
|
|
155
|
+
const query = typeof rawQuery === 'function' ? rawQuery(args, context) : rawQuery;
|
|
156
|
+
const normalizedIndirectInclude = Array.isArray(indirectInclude) ? normalizeInclude(indirectInclude, getIndirectType(returnType, info), expectedType ? (0, _graphql.getNamedType)(info.schema.getType(expectedType)) : undefined) : indirectInclude;
|
|
157
|
+
const fieldState = createStateForSelection(config, getIndirectType(normalizedIndirectInclude ? info.schema.getType(normalizedIndirectInclude.getType()) : returnType, info), state);
|
|
158
|
+
if (typeof query === 'object' && Object.keys(query).length > 0) {
|
|
159
|
+
(0, _selections.mergeSelection)(config, fieldState, {
|
|
160
|
+
columns: {},
|
|
161
|
+
...query
|
|
162
|
+
});
|
|
163
|
+
}
|
|
164
|
+
if (!!(normalizedIndirectInclude === null || normalizedIndirectInclude === void 0 ? void 0 : normalizedIndirectInclude.path) && normalizedIndirectInclude.path.length > 0 || !!(normalizedIndirectInclude === null || normalizedIndirectInclude === void 0 ? void 0 : normalizedIndirectInclude.paths) && normalizedIndirectInclude.paths.length > 0) {
|
|
165
|
+
var _returnType_extensions_pothosIndirectInclude, _returnType_extensions;
|
|
166
|
+
var _returnType_extensions_pothosIndirectInclude_path, _normalizedIndirectInclude_paths;
|
|
167
|
+
resolveIndirectIncludePaths(returnType, info, selection, (_returnType_extensions_pothosIndirectInclude_path = (_returnType_extensions = returnType.extensions) === null || _returnType_extensions === void 0 ? void 0 : (_returnType_extensions_pothosIndirectInclude = _returnType_extensions.pothosIndirectInclude) === null || _returnType_extensions_pothosIndirectInclude === void 0 ? void 0 : _returnType_extensions_pothosIndirectInclude.path) !== null && _returnType_extensions_pothosIndirectInclude_path !== void 0 ? _returnType_extensions_pothosIndirectInclude_path : [], (_normalizedIndirectInclude_paths = normalizedIndirectInclude.paths) !== null && _normalizedIndirectInclude_paths !== void 0 ? _normalizedIndirectInclude_paths : [
|
|
168
|
+
normalizedIndirectInclude.path
|
|
169
|
+
], [], (resolvedType, resolvedField, path)=>{
|
|
170
|
+
addTypeSelectionsForField(config, resolvedType, context, info, fieldState, resolvedField, path);
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
addTypeSelectionsForField(config, returnType, context, info, fieldState, selection, []);
|
|
174
|
+
// eslint-disable-next-line prefer-destructuring
|
|
175
|
+
mappings = fieldState.mappings;
|
|
176
|
+
return (0, _selections.selectionToQuery)(fieldState);
|
|
177
|
+
}, (path)=>{
|
|
178
|
+
const returnType = (0, _graphql.getNamedType)(field.type);
|
|
179
|
+
let node = null;
|
|
180
|
+
resolveIndirectInclude(returnType, info, selection, path.map((name)=>({
|
|
181
|
+
name
|
|
182
|
+
})), [], (_, resolvedField)=>{
|
|
183
|
+
node = resolvedField;
|
|
184
|
+
});
|
|
185
|
+
return node;
|
|
186
|
+
});
|
|
187
|
+
} else {
|
|
188
|
+
fieldSelectionMap = fieldSelect;
|
|
189
|
+
}
|
|
190
|
+
if (fieldSelect && (0, _selections.selectionCompatible)(state, fieldSelectionMap, true)) {
|
|
191
|
+
var _selection_alias;
|
|
192
|
+
(0, _selections.mergeSelection)(config, state, fieldSelectionMap);
|
|
193
|
+
var _selection_alias_value;
|
|
194
|
+
// eslint-disable-next-line no-param-reassign
|
|
195
|
+
state.mappings[(_selection_alias_value = (_selection_alias = selection.alias) === null || _selection_alias === void 0 ? void 0 : _selection_alias.value) !== null && _selection_alias_value !== void 0 ? _selection_alias_value : selection.name.value] = {
|
|
196
|
+
field: selection.name.value,
|
|
197
|
+
type: type.name,
|
|
198
|
+
mappings,
|
|
199
|
+
indirectPath
|
|
200
|
+
};
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
function queryFromInfo({ withUsageCheck, ...options }) {
|
|
204
|
+
const state = stateFromInfo(options);
|
|
205
|
+
(0, _loadermap.setLoaderMappings)(options.context, options.info, state.mappings);
|
|
206
|
+
const query = (0, _selections.selectionToQuery)(state);
|
|
207
|
+
return withUsageCheck ? (0, _usage.wrapWithUsageCheck)(query) : query;
|
|
208
|
+
}
|
|
209
|
+
function stateFromInfo({ config, context, info, typeName, select, path = [], paths = [] }) {
|
|
210
|
+
const returnType = (0, _graphql.getNamedType)(info.returnType);
|
|
211
|
+
const type = typeName ? info.schema.getTypeMap()[typeName] : returnType;
|
|
212
|
+
let state;
|
|
213
|
+
if (path.length > 0 || paths.length > 0) {
|
|
214
|
+
var _returnType_extensions;
|
|
215
|
+
const { pothosIndirectInclude } = (_returnType_extensions = returnType.extensions) !== null && _returnType_extensions !== void 0 ? _returnType_extensions : {};
|
|
216
|
+
var _pothosIndirectInclude_path;
|
|
217
|
+
resolveIndirectInclude(returnType, info, info.fieldNodes[0], (_pothosIndirectInclude_path = pothosIndirectInclude === null || pothosIndirectInclude === void 0 ? void 0 : pothosIndirectInclude.path) !== null && _pothosIndirectInclude_path !== void 0 ? _pothosIndirectInclude_path : [], [], (indirectType, indirectField, subPath)=>{
|
|
218
|
+
resolveIndirectIncludePaths(indirectType, info, indirectField, [], paths.length > 0 ? paths.map((p)=>p.map((n)=>typeof n === 'string' ? {
|
|
219
|
+
name: n
|
|
220
|
+
} : n)) : [
|
|
221
|
+
path.map((n)=>typeof n === 'string' ? {
|
|
222
|
+
name: n
|
|
223
|
+
} : n)
|
|
224
|
+
], subPath, (resolvedType, resolvedField, nested)=>{
|
|
225
|
+
state = createStateForSelection(config, resolvedType, undefined, select);
|
|
226
|
+
addTypeSelectionsForField(config, typeName ? type : resolvedType, context, info, state, resolvedField, nested);
|
|
227
|
+
});
|
|
228
|
+
});
|
|
229
|
+
} else {
|
|
230
|
+
state = createStateForSelection(config, type, undefined, select);
|
|
231
|
+
addTypeSelectionsForField(config, type, context, info, state, info.fieldNodes[0], []);
|
|
232
|
+
}
|
|
233
|
+
if (!state) {
|
|
234
|
+
state = createStateForSelection(config, type, undefined, select);
|
|
235
|
+
}
|
|
236
|
+
return state;
|
|
237
|
+
}
|
|
238
|
+
function selectionStateFromInfo(config, context, info, typeName) {
|
|
239
|
+
const type = typeName ? info.schema.getTypeMap()[typeName] : info.parentType;
|
|
240
|
+
const state = createStateForSelection(config, type);
|
|
241
|
+
if (!((0, _graphql.isObjectType)(type) || (0, _graphql.isInterfaceType)(type))) {
|
|
242
|
+
throw new _core.PothosValidationError('Drizzle plugin can only resolve selections for object and interface types');
|
|
243
|
+
}
|
|
244
|
+
addFieldSelection(config, type, context, info, state, info.fieldNodes[0], []);
|
|
245
|
+
return state;
|
|
246
|
+
}
|
|
247
|
+
function createStateForSelection(config, type, parent, initialSelections) {
|
|
248
|
+
var _type_extensions;
|
|
249
|
+
const { pothosDrizzleTable } = (_type_extensions = type.extensions) !== null && _type_extensions !== void 0 ? _type_extensions : {};
|
|
250
|
+
if (!pothosDrizzleTable) {
|
|
251
|
+
throw new _core.PothosValidationError(`Expected ${type.name} to have a table config`);
|
|
252
|
+
}
|
|
253
|
+
const state = (0, _selections.createState)(pothosDrizzleTable, parent);
|
|
254
|
+
if (initialSelections) {
|
|
255
|
+
(0, _selections.mergeSelection)(config, state, initialSelections);
|
|
256
|
+
}
|
|
257
|
+
return state;
|
|
258
|
+
}
|
|
259
|
+
function getIndirectType(type, info) {
|
|
260
|
+
var _targetType_extensions;
|
|
261
|
+
let targetType = type;
|
|
262
|
+
while((_targetType_extensions = targetType.extensions) === null || _targetType_extensions === void 0 ? void 0 : _targetType_extensions.pothosIndirectInclude){
|
|
263
|
+
var _targetType_extensions1;
|
|
264
|
+
targetType = info.schema.getType(((_targetType_extensions1 = targetType.extensions) === null || _targetType_extensions1 === void 0 ? void 0 : _targetType_extensions1.pothosIndirectInclude).getType());
|
|
265
|
+
}
|
|
266
|
+
return targetType;
|
|
267
|
+
}
|
|
268
|
+
function normalizeInclude(path, type, expectedType) {
|
|
269
|
+
let currentType = path.length > 0 ? type : expectedType !== null && expectedType !== void 0 ? expectedType : type;
|
|
270
|
+
const normalized = [];
|
|
271
|
+
if (!((0, _graphql.isObjectType)(currentType) || (0, _graphql.isInterfaceType)(currentType))) {
|
|
272
|
+
throw new _core.PothosValidationError(`Expected ${currentType} to be an Object type`);
|
|
273
|
+
}
|
|
274
|
+
for (const fieldName of path){
|
|
275
|
+
const field = currentType.getFields()[fieldName];
|
|
276
|
+
if (!field) {
|
|
277
|
+
throw new _core.PothosValidationError(`Expected ${currentType} to have a field ${fieldName}`);
|
|
278
|
+
}
|
|
279
|
+
currentType = (0, _graphql.getNamedType)(field.type);
|
|
280
|
+
if (!((0, _graphql.isObjectType)(currentType) || (0, _graphql.isInterfaceType)(currentType))) {
|
|
281
|
+
throw new _core.PothosValidationError(`Expected ${currentType} to be an Object or Interface type`);
|
|
282
|
+
}
|
|
283
|
+
normalized.push({
|
|
284
|
+
name: fieldName,
|
|
285
|
+
type: currentType.name
|
|
286
|
+
});
|
|
287
|
+
}
|
|
288
|
+
return {
|
|
289
|
+
getType: ()=>{
|
|
290
|
+
var _expectedType_name;
|
|
291
|
+
return (_expectedType_name = expectedType === null || expectedType === void 0 ? void 0 : expectedType.name) !== null && _expectedType_name !== void 0 ? _expectedType_name : normalized.length > 0 ? normalized[normalized.length - 1].type : type.name;
|
|
292
|
+
},
|
|
293
|
+
path: normalized
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
function fieldSkipped(info, selection) {
|
|
297
|
+
const skip = (0, _graphql.getDirectiveValues)(_graphql.GraphQLSkipDirective, selection, info.variableValues);
|
|
298
|
+
if ((skip === null || skip === void 0 ? void 0 : skip.if) === true) {
|
|
299
|
+
return true;
|
|
300
|
+
}
|
|
301
|
+
const include = (0, _graphql.getDirectiveValues)(_graphql.GraphQLIncludeDirective, selection, info.variableValues);
|
|
302
|
+
if ((include === null || include === void 0 ? void 0 : include.if) === false) {
|
|
303
|
+
return true;
|
|
304
|
+
}
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
//# sourceMappingURL=map-query.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/map-query.ts"],"names":["getIndirectType","normalizeInclude","queryFromInfo","selectionStateFromInfo","stateFromInfo","addTypeSelectionsForField","config","type","context","info","state","selection","indirectPath","name","value","startsWith","pothosDrizzleSelect","pothosIndirectInclude","extensions","path","length","paths","resolveIndirectIncludePaths","resolvedType","field","schema","getType","isObjectType","isInterfaceType","mergeSelection","selectionSet","addNestedSelections","pathPrefix","includePaths","resolve","includePath","resolveIndirectInclude","include","rest","sel","selections","kind","Kind","FIELD","fieldSkipped","returnType","getNamedType","getFields","alias","FRAGMENT_SPREAD","fragments","typeCondition","INLINE_FRAGMENT","PothosValidationError","parentType","addFieldSelection","pothosDrizzleModel","fieldSelect","fieldSelectionMap","mappings","args","getArgumentValues","variableValues","rawQuery","indirectInclude","expectedType","query","normalizedIndirectInclude","Array","isArray","undefined","fieldState","createStateForSelection","Object","keys","columns","resolvedField","selectionToQuery","node","map","_","selectionCompatible","withUsageCheck","options","setLoaderMappings","wrapWithUsageCheck","typeName","select","getTypeMap","fieldNodes","indirectType","indirectField","subPath","p","n","nested","parent","initialSelections","pothosDrizzleTable","createState","targetType","currentType","normalized","fieldName","push","skip","getDirectiveValues","GraphQLSkipDirective","if","GraphQLIncludeDirective"],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
getRefFromModel: function() {
|
|
13
|
+
return getRefFromModel;
|
|
14
|
+
},
|
|
15
|
+
refMap: function() {
|
|
16
|
+
return refMap;
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
const _interfaceref = require("../interface-ref");
|
|
20
|
+
const _objectref = require("../object-ref");
|
|
21
|
+
const refMap = new WeakMap();
|
|
22
|
+
function getRefFromModel(name, builder, type = 'object') {
|
|
23
|
+
if (!refMap.has(builder)) {
|
|
24
|
+
refMap.set(builder, new Map());
|
|
25
|
+
}
|
|
26
|
+
const cache = refMap.get(builder);
|
|
27
|
+
if (!cache.has(name)) {
|
|
28
|
+
cache.set(name, type === 'object' ? new _objectref.DrizzleObjectRef(name, name) : new _interfaceref.DrizzleInterfaceRef(name, name));
|
|
29
|
+
}
|
|
30
|
+
return cache.get(name);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
//# sourceMappingURL=refs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/refs.ts"],"names":["getRefFromModel","refMap","WeakMap","name","builder","type","has","set","Map","cache","get","DrizzleObjectRef","DrizzleInterfaceRef"],"mappings":";;;;;;;;;;;IAMgBA,eAAe;eAAfA;;IAFHC,MAAM;eAANA;;;8BAHmC;2BACf;AAE1B,MAAMA,SAAS,IAAIC;AAEnB,SAASF,gBACdG,IAAY,EACZC,OAA+C,EAC/CC,OAA+B,QAAQ;IAEvC,IAAI,CAACJ,OAAOK,GAAG,CAACF,UAAU;QACxBH,OAAOM,GAAG,CAACH,SAAS,IAAII;IAC1B;IACA,MAAMC,QAAQR,OAAOS,GAAG,CAACN;IAEzB,IAAI,CAACK,MAAMH,GAAG,CAACH,OAAO;QACpBM,MAAMF,GAAG,CACPJ,MACAE,SAAS,WAAW,IAAIM,2BAAgB,CAACR,MAAMA,QAAQ,IAAIS,iCAAmB,CAACT,MAAMA;IAEzF;IAEA,OAAOM,MAAMC,GAAG,CAACP;AACnB"}
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/* eslint-disable no-param-reassign */ "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
|
+
createState: function() {
|
|
13
|
+
return createState;
|
|
14
|
+
},
|
|
15
|
+
mergeSelection: function() {
|
|
16
|
+
return mergeSelection;
|
|
17
|
+
},
|
|
18
|
+
mergeState: function() {
|
|
19
|
+
return mergeState;
|
|
20
|
+
},
|
|
21
|
+
selectionCompatible: function() {
|
|
22
|
+
return selectionCompatible;
|
|
23
|
+
},
|
|
24
|
+
selectionToQuery: function() {
|
|
25
|
+
return selectionToQuery;
|
|
26
|
+
},
|
|
27
|
+
stateCompatible: function() {
|
|
28
|
+
return stateCompatible;
|
|
29
|
+
}
|
|
30
|
+
});
|
|
31
|
+
const _drizzleorm = require("drizzle-orm");
|
|
32
|
+
const _core = require("@pothos/core");
|
|
33
|
+
const _deepequal = require("./deep-equal");
|
|
34
|
+
function selectionCompatible(state, selectionMap, ignoreQuery = false) {
|
|
35
|
+
if (typeof selectionMap === 'boolean') {
|
|
36
|
+
return ignoreQuery || !selectionMap || Object.keys(state.query).length === 0;
|
|
37
|
+
}
|
|
38
|
+
const { with: withSelection, extras, columns, ...query } = selectionMap;
|
|
39
|
+
if (withSelection && Object.entries(withSelection).some(([key, value])=>value && state.with.has(key) && // TODO: make sure nested extras are normalized
|
|
40
|
+
!selectionCompatible(state.with.get(key), value))) {
|
|
41
|
+
return false;
|
|
42
|
+
}
|
|
43
|
+
const resolvedExtras = typeof extras === 'function' ? extras(state.table.columns, (0, _drizzleorm.getOperators)()) : extras;
|
|
44
|
+
if (resolvedExtras && Object.entries(resolvedExtras).some(([key, value])=>{
|
|
45
|
+
const sql = state.extras.get(key);
|
|
46
|
+
return sql && (sql.sql !== value.sql || sql.fieldAlias !== value.fieldAlias);
|
|
47
|
+
})) {
|
|
48
|
+
return false;
|
|
49
|
+
}
|
|
50
|
+
return ignoreQuery || (0, _deepequal.deepEqual)(state.query, query);
|
|
51
|
+
}
|
|
52
|
+
function stateCompatible(state, newState, ignoreQuery = false) {
|
|
53
|
+
for (const [name, relationState] of newState.with){
|
|
54
|
+
if (state.with.has(name) && !stateCompatible(state.with.get(name), relationState)) {
|
|
55
|
+
return false;
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
return ignoreQuery || (0, _deepequal.deepEqual)(state.query, newState.query);
|
|
59
|
+
}
|
|
60
|
+
function mergeState(state, newState) {
|
|
61
|
+
for (const [name, relationState] of newState.with){
|
|
62
|
+
if (state.with.has(name)) {
|
|
63
|
+
mergeState(state.with.get(name), relationState);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
if (!state.allColumns) {
|
|
67
|
+
if (newState.allColumns) {
|
|
68
|
+
state.allColumns = true;
|
|
69
|
+
} else {
|
|
70
|
+
for (const name of newState.columns){
|
|
71
|
+
state.columns.add(name);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
for (const [name, value] of newState.extras){
|
|
76
|
+
state.extras.set(name, value);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
function createState(table, parent) {
|
|
80
|
+
return {
|
|
81
|
+
table,
|
|
82
|
+
parent,
|
|
83
|
+
query: {},
|
|
84
|
+
columns: new Set(),
|
|
85
|
+
with: new Map(),
|
|
86
|
+
extras: new Map(),
|
|
87
|
+
mappings: {},
|
|
88
|
+
allColumns: false,
|
|
89
|
+
depth: parent ? parent.depth + 1 : 0
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
function mergeSelection(config, state, { with: withSelection, extras, columns, ...query }) {
|
|
93
|
+
if (withSelection) {
|
|
94
|
+
Object.entries(withSelection).forEach(([key, value])=>{
|
|
95
|
+
const relation = state.table.relations[key];
|
|
96
|
+
if (!relation) {
|
|
97
|
+
throw new _core.PothosValidationError(`Relation ${key} does not exist on ${state.table.dbName}`);
|
|
98
|
+
}
|
|
99
|
+
merge(config.dbToSchema[relation.referencedTableName], key, value);
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
if (Object.keys(query).length > 0) {
|
|
103
|
+
state.query = query;
|
|
104
|
+
}
|
|
105
|
+
const resolvedExtras = typeof extras === 'function' ? extras(state.table.columns, (0, _drizzleorm.getOperators)()) : extras;
|
|
106
|
+
if (resolvedExtras) {
|
|
107
|
+
for (const [key, value] of Object.entries(resolvedExtras)){
|
|
108
|
+
state.extras.set(key, value);
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
if (state.allColumns) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
if (columns) {
|
|
115
|
+
for (const key of Object.keys(columns)){
|
|
116
|
+
state.columns.add(key);
|
|
117
|
+
}
|
|
118
|
+
} else {
|
|
119
|
+
state.allColumns = true;
|
|
120
|
+
}
|
|
121
|
+
function merge(table, key, value) {
|
|
122
|
+
if (!value) {
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const selection = value === true ? {} : value;
|
|
126
|
+
if (state.with.has(key)) {
|
|
127
|
+
mergeSelection(config, state.with.get(key), selection);
|
|
128
|
+
} else {
|
|
129
|
+
const relatedState = createState(table, state);
|
|
130
|
+
mergeSelection(config, relatedState, selection);
|
|
131
|
+
state.with.set(key, relatedState);
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
function selectionToQuery(state) {
|
|
136
|
+
const query = {
|
|
137
|
+
...state.query,
|
|
138
|
+
with: {},
|
|
139
|
+
columns: {},
|
|
140
|
+
extras: {}
|
|
141
|
+
};
|
|
142
|
+
if (state.allColumns) {
|
|
143
|
+
for (const key of Object.keys(state.table.columns)){
|
|
144
|
+
query.columns[key] = true;
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
for (const key of state.columns){
|
|
148
|
+
query.columns[key] = true;
|
|
149
|
+
}
|
|
150
|
+
for (const { name } of state.table.primaryKey){
|
|
151
|
+
query.columns[name] = true;
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
for (const [key, value] of state.extras){
|
|
155
|
+
query.extras[key] = value;
|
|
156
|
+
}
|
|
157
|
+
state.with.forEach((sel, relation)=>{
|
|
158
|
+
query.with[relation] = selectionToQuery(sel);
|
|
159
|
+
});
|
|
160
|
+
return query;
|
|
161
|
+
}
|
|
162
|
+
|
|
163
|
+
//# sourceMappingURL=selections.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/selections.ts"],"names":["createState","mergeSelection","mergeState","selectionCompatible","selectionToQuery","stateCompatible","state","selectionMap","ignoreQuery","Object","keys","query","length","with","withSelection","extras","columns","entries","some","key","value","has","get","resolvedExtras","table","getOperators","sql","fieldAlias","deepEqual","newState","name","relationState","allColumns","add","set","parent","Set","Map","mappings","depth","config","forEach","relation","relations","PothosValidationError","dbName","merge","dbToSchema","referencedTableName","selection","relatedState","primaryKey","sel"],"mappings":"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"}
|