@smartive/graphql-magic 9.1.2 → 10.0.0
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/.eslintrc +2 -10
- package/.github/workflows/release.yml +1 -1
- package/.gqmrc.json +6 -0
- package/CHANGELOG.md +2 -2
- package/README.md +1 -1
- package/dist/bin/gqm.cjs +684 -330
- package/dist/cjs/index.cjs +998 -554
- package/dist/esm/api/execute.js +1 -1
- package/dist/esm/api/execute.js.map +1 -1
- package/dist/esm/client/mutations.d.ts +2 -2
- package/dist/esm/client/mutations.js +5 -4
- package/dist/esm/client/mutations.js.map +1 -1
- package/dist/esm/client/queries.d.ts +12 -17
- package/dist/esm/client/queries.js +30 -50
- package/dist/esm/client/queries.js.map +1 -1
- package/dist/esm/context.d.ts +1 -2
- package/dist/esm/db/generate.d.ts +3 -3
- package/dist/esm/db/generate.js +31 -29
- package/dist/esm/db/generate.js.map +1 -1
- package/dist/esm/migrations/generate.d.ts +3 -4
- package/dist/esm/migrations/generate.js +114 -107
- package/dist/esm/migrations/generate.js.map +1 -1
- package/dist/esm/models/index.d.ts +1 -0
- package/dist/esm/models/index.js +1 -0
- package/dist/esm/models/index.js.map +1 -1
- package/dist/esm/models/model-definitions.d.ts +189 -0
- package/dist/esm/models/model-definitions.js +2 -0
- package/dist/esm/models/model-definitions.js.map +1 -0
- package/dist/esm/models/models.d.ts +128 -174
- package/dist/esm/models/models.js +411 -1
- package/dist/esm/models/models.js.map +1 -1
- package/dist/esm/models/mutation-hook.d.ts +2 -2
- package/dist/esm/models/utils.d.ts +35 -497
- package/dist/esm/models/utils.js +21 -144
- package/dist/esm/models/utils.js.map +1 -1
- package/dist/esm/permissions/check.d.ts +3 -3
- package/dist/esm/permissions/check.js +14 -7
- package/dist/esm/permissions/check.js.map +1 -1
- package/dist/esm/permissions/generate.js +6 -6
- package/dist/esm/permissions/generate.js.map +1 -1
- package/dist/esm/resolvers/filters.d.ts +8 -0
- package/dist/esm/resolvers/filters.js +28 -25
- package/dist/esm/resolvers/filters.js.map +1 -1
- package/dist/esm/resolvers/index.d.ts +1 -0
- package/dist/esm/resolvers/index.js +1 -0
- package/dist/esm/resolvers/index.js.map +1 -1
- package/dist/esm/resolvers/mutations.js +85 -21
- package/dist/esm/resolvers/mutations.js.map +1 -1
- package/dist/esm/resolvers/node.d.ts +13 -15
- package/dist/esm/resolvers/node.js +41 -36
- package/dist/esm/resolvers/node.js.map +1 -1
- package/dist/esm/resolvers/resolver.js +19 -49
- package/dist/esm/resolvers/resolver.js.map +1 -1
- package/dist/esm/resolvers/resolvers.d.ts +1 -8
- package/dist/esm/resolvers/resolvers.js +15 -7
- package/dist/esm/resolvers/resolvers.js.map +1 -1
- package/dist/esm/resolvers/selects.d.ts +3 -0
- package/dist/esm/resolvers/selects.js +50 -0
- package/dist/esm/resolvers/selects.js.map +1 -0
- package/dist/esm/resolvers/utils.d.ts +12 -4
- package/dist/esm/resolvers/utils.js +30 -22
- package/dist/esm/resolvers/utils.js.map +1 -1
- package/dist/esm/schema/generate.d.ts +4 -4
- package/dist/esm/schema/generate.js +122 -131
- package/dist/esm/schema/generate.js.map +1 -1
- package/dist/esm/schema/utils.d.ts +1 -1
- package/dist/esm/schema/utils.js +2 -1
- package/dist/esm/schema/utils.js.map +1 -1
- package/knexfile.ts +31 -0
- package/migrations/20230912185644_setup.ts +127 -0
- package/package.json +16 -14
- package/src/api/execute.ts +1 -1
- package/src/bin/gqm/gqm.ts +25 -23
- package/src/bin/gqm/parse-models.ts +5 -5
- package/src/bin/gqm/settings.ts +13 -4
- package/src/bin/gqm/static-eval.ts +5 -0
- package/src/bin/gqm/templates.ts +23 -3
- package/src/client/mutations.ts +11 -5
- package/src/client/queries.ts +43 -80
- package/src/context.ts +1 -2
- package/src/db/generate.ts +41 -41
- package/src/migrations/generate.ts +165 -146
- package/src/models/index.ts +1 -0
- package/src/models/model-definitions.ts +168 -0
- package/src/models/models.ts +510 -166
- package/src/models/mutation-hook.ts +2 -2
- package/src/models/utils.ts +53 -187
- package/src/permissions/check.ts +19 -11
- package/src/permissions/generate.ts +6 -6
- package/src/resolvers/filters.ts +44 -28
- package/src/resolvers/index.ts +1 -0
- package/src/resolvers/mutations.ts +98 -36
- package/src/resolvers/node.ts +79 -51
- package/src/resolvers/resolver.ts +20 -74
- package/src/resolvers/resolvers.ts +18 -7
- package/src/resolvers/selects.ts +77 -0
- package/src/resolvers/utils.ts +41 -25
- package/src/schema/generate.ts +106 -127
- package/src/schema/utils.ts +2 -1
- package/tests/api/__snapshots__/inheritance.spec.ts.snap +83 -0
- package/tests/api/inheritance.spec.ts +130 -0
- package/tests/generated/api/index.ts +1174 -0
- package/tests/generated/client/index.ts +1163 -0
- package/tests/generated/client/mutations.ts +109 -0
- package/tests/generated/db/index.ts +291 -0
- package/tests/generated/db/knex.ts +14 -0
- package/tests/generated/models.json +675 -0
- package/tests/generated/schema.graphql +325 -0
- package/tests/unit/__snapshots__/resolve.spec.ts.snap +23 -0
- package/tests/unit/queries.spec.ts +5 -5
- package/tests/unit/resolve.spec.ts +8 -8
- package/tests/utils/database/knex.ts +5 -13
- package/tests/utils/database/seed.ts +57 -18
- package/tests/utils/models.ts +62 -7
- package/tests/utils/server.ts +5 -5
- package/tsconfig.eslint.json +1 -0
- package/tests/unit/__snapshots__/generate.spec.ts.snap +0 -128
- package/tests/unit/generate.spec.ts +0 -8
- package/tests/utils/database/schema.ts +0 -64
- package/tests/utils/generate-migration.ts +0 -24
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { v4 as uuid } from 'uuid';
|
|
2
2
|
import { ForbiddenError, GraphQLError } from '../errors';
|
|
3
|
-
import { get,
|
|
3
|
+
import { get, isPrimitive, it, typeToField } from '../models/utils';
|
|
4
4
|
import { applyPermissions, checkCanWrite, getEntityToMutate } from '../permissions/check';
|
|
5
5
|
import { resolve } from './resolver';
|
|
6
6
|
import { AliasGenerator } from './utils';
|
|
@@ -8,7 +8,7 @@ export const mutationResolver = async (_parent, args, partialCtx, info) => {
|
|
|
8
8
|
return await partialCtx.knex.transaction(async (knex) => {
|
|
9
9
|
const [, mutation, modelName] = it(info.fieldName.match(/^(create|update|delete|restore)(.+)$/));
|
|
10
10
|
const ctx = { ...partialCtx, knex, info, aliases: new AliasGenerator() };
|
|
11
|
-
const model =
|
|
11
|
+
const model = ctx.models.getModel(modelName, 'entity');
|
|
12
12
|
switch (mutation) {
|
|
13
13
|
case 'create':
|
|
14
14
|
return await create(model, args, ctx);
|
|
@@ -26,12 +26,34 @@ const create = async (model, { data: input }, ctx) => {
|
|
|
26
26
|
normalizedInput.id = uuid();
|
|
27
27
|
normalizedInput.createdAt = ctx.now;
|
|
28
28
|
normalizedInput.createdById = ctx.user.id;
|
|
29
|
+
if (model.parent) {
|
|
30
|
+
normalizedInput.type = model.name;
|
|
31
|
+
}
|
|
29
32
|
sanitize(ctx, model, normalizedInput);
|
|
30
33
|
await checkCanWrite(ctx, model, normalizedInput, 'CREATE');
|
|
31
34
|
await ctx.handleUploads?.(normalizedInput);
|
|
32
35
|
const data = { prev: {}, input, normalizedInput, next: normalizedInput };
|
|
33
36
|
await ctx.mutationHook?.(model, 'create', 'before', data, ctx);
|
|
34
|
-
|
|
37
|
+
if (model.parent) {
|
|
38
|
+
const rootInput = {};
|
|
39
|
+
const childInput = { id: normalizedInput.id };
|
|
40
|
+
for (const field of model.fields) {
|
|
41
|
+
const columnName = field.kind === 'relation' ? `${field.name}Id` : field.name;
|
|
42
|
+
if (columnName in normalizedInput) {
|
|
43
|
+
if (field.inherited) {
|
|
44
|
+
rootInput[columnName] = normalizedInput[columnName];
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
childInput[columnName] = normalizedInput[columnName];
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
await ctx.knex(model.parent).insert(rootInput);
|
|
52
|
+
await ctx.knex(model.name).insert(childInput);
|
|
53
|
+
}
|
|
54
|
+
else {
|
|
55
|
+
await ctx.knex(model.name).insert(normalizedInput);
|
|
56
|
+
}
|
|
35
57
|
await createRevision(model, normalizedInput, ctx);
|
|
36
58
|
await ctx.mutationHook?.(model, 'create', 'after', data, ctx);
|
|
37
59
|
return await resolve(ctx, normalizedInput.id);
|
|
@@ -55,7 +77,30 @@ const update = async (model, { where, data: input }, ctx) => {
|
|
|
55
77
|
const next = { ...prev, ...normalizedInput };
|
|
56
78
|
const data = { prev, input, normalizedInput, next };
|
|
57
79
|
await ctx.mutationHook?.(model, 'update', 'before', data, ctx);
|
|
58
|
-
|
|
80
|
+
if (model.parent) {
|
|
81
|
+
const rootInput = {};
|
|
82
|
+
const childInput = {};
|
|
83
|
+
for (const field of model.fields) {
|
|
84
|
+
const columnName = field.kind === 'relation' ? `${field.name}Id` : field.name;
|
|
85
|
+
if (columnName in normalizedInput) {
|
|
86
|
+
if (field.inherited) {
|
|
87
|
+
rootInput[columnName] = normalizedInput[columnName];
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
childInput[columnName] = normalizedInput[columnName];
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
if (Object.keys(rootInput).length) {
|
|
95
|
+
await ctx.knex(model.parent).where({ id: prev.id }).update(rootInput);
|
|
96
|
+
}
|
|
97
|
+
if (Object.keys(childInput).length) {
|
|
98
|
+
await ctx.knex(model.name).where({ id: prev.id }).update(childInput);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
await ctx.knex(model.name).where({ id: prev.id }).update(normalizedInput);
|
|
103
|
+
}
|
|
59
104
|
await createRevision(model, next, ctx);
|
|
60
105
|
await ctx.mutationHook?.(model, 'update', 'after', data, ctx);
|
|
61
106
|
}
|
|
@@ -65,7 +110,8 @@ const del = async (model, { where, dryRun }, ctx) => {
|
|
|
65
110
|
if (Object.keys(where).length === 0) {
|
|
66
111
|
throw new Error(`No ${model.name} specified.`);
|
|
67
112
|
}
|
|
68
|
-
const
|
|
113
|
+
const rootModel = model.rootModel;
|
|
114
|
+
const entity = await getEntityToMutate(ctx, rootModel, where, 'DELETE');
|
|
69
115
|
if (entity.deleted) {
|
|
70
116
|
throw new ForbiddenError('Entity is already deleted.');
|
|
71
117
|
}
|
|
@@ -103,7 +149,7 @@ const del = async (model, { where, dryRun }, ctx) => {
|
|
|
103
149
|
});
|
|
104
150
|
}
|
|
105
151
|
}
|
|
106
|
-
for (const {
|
|
152
|
+
for (const { targetModel: descendantModel, field: { name, foreignKey, onDelete }, } of currentModel.reverseRelations.filter((reverseRelation) => !reverseRelation.field.inherited)) {
|
|
107
153
|
const query = ctx.knex(descendantModel.name).where({ [foreignKey]: entity.id });
|
|
108
154
|
switch (onDelete) {
|
|
109
155
|
case 'set-null': {
|
|
@@ -149,7 +195,7 @@ const del = async (model, { where, dryRun }, ctx) => {
|
|
|
149
195
|
}
|
|
150
196
|
}
|
|
151
197
|
};
|
|
152
|
-
await deleteCascade(
|
|
198
|
+
await deleteCascade(rootModel, entity);
|
|
153
199
|
for (const callback of [...beforeHooks, ...mutations, ...afterHooks]) {
|
|
154
200
|
await callback();
|
|
155
201
|
}
|
|
@@ -166,7 +212,8 @@ const restore = async (model, { where }, ctx) => {
|
|
|
166
212
|
if (Object.keys(where).length === 0) {
|
|
167
213
|
throw new Error(`No ${model.name} specified.`);
|
|
168
214
|
}
|
|
169
|
-
const
|
|
215
|
+
const rootModel = model.rootModel;
|
|
216
|
+
const entity = await getEntityToMutate(ctx, rootModel, where, 'RESTORE');
|
|
170
217
|
if (!entity.deleted) {
|
|
171
218
|
throw new ForbiddenError('Entity is not deleted.');
|
|
172
219
|
}
|
|
@@ -193,7 +240,9 @@ const restore = async (model, { where }, ctx) => {
|
|
|
193
240
|
await ctx.mutationHook(model, 'restore', 'after', data, ctx);
|
|
194
241
|
});
|
|
195
242
|
}
|
|
196
|
-
for (const {
|
|
243
|
+
for (const { targetModel: descendantModel, field: { foreignKey }, } of currentModel.reverseRelations
|
|
244
|
+
.filter((reverseRelation) => !reverseRelation.field.inherited)
|
|
245
|
+
.filter(({ targetModel: { deletable } }) => deletable)) {
|
|
197
246
|
const query = ctx.knex(descendantModel.name).where({ [foreignKey]: relatedEntity.id });
|
|
198
247
|
applyPermissions(ctx, descendantModel.name, descendantModel.name, query, 'RESTORE');
|
|
199
248
|
const descendants = await query;
|
|
@@ -202,7 +251,7 @@ const restore = async (model, { where }, ctx) => {
|
|
|
202
251
|
}
|
|
203
252
|
}
|
|
204
253
|
};
|
|
205
|
-
await restoreCascade(
|
|
254
|
+
await restoreCascade(rootModel, entity);
|
|
206
255
|
for (const callback of [...beforeHooks, ...mutations, ...afterHooks]) {
|
|
207
256
|
await callback();
|
|
208
257
|
}
|
|
@@ -210,25 +259,40 @@ const restore = async (model, { where }, ctx) => {
|
|
|
210
259
|
};
|
|
211
260
|
const createRevision = async (model, data, ctx) => {
|
|
212
261
|
if (model.updatable) {
|
|
213
|
-
const
|
|
214
|
-
|
|
215
|
-
|
|
262
|
+
const revisionId = uuid();
|
|
263
|
+
const rootRevisionData = {
|
|
264
|
+
id: revisionId,
|
|
265
|
+
[`${typeToField(model.parent || model.name)}Id`]: data.id,
|
|
216
266
|
createdAt: ctx.now,
|
|
217
267
|
createdById: ctx.user.id,
|
|
218
268
|
};
|
|
219
269
|
if (model.deletable) {
|
|
220
|
-
|
|
270
|
+
rootRevisionData.deleted = data.deleted || false;
|
|
221
271
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
272
|
+
const childRevisionData = { id: revisionId };
|
|
273
|
+
for (const field of model.fields.filter(({ updatable }) => updatable)) {
|
|
274
|
+
const col = field.kind === 'relation' ? `${field.name}Id` : field.name;
|
|
275
|
+
let value;
|
|
276
|
+
if (field.nonNull && (!(col in data) || col === undefined || col === null)) {
|
|
277
|
+
value = get(field, 'defaultValue');
|
|
226
278
|
}
|
|
227
279
|
else {
|
|
228
|
-
|
|
280
|
+
value = data[col];
|
|
229
281
|
}
|
|
282
|
+
if (!model.parent || field.inherited) {
|
|
283
|
+
rootRevisionData[col] = value;
|
|
284
|
+
}
|
|
285
|
+
else {
|
|
286
|
+
childRevisionData[col] = value;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
if (model.parent) {
|
|
290
|
+
await ctx.knex(`${model.parent}Revision`).insert(rootRevisionData);
|
|
291
|
+
await ctx.knex(`${model.name}Revision`).insert(childRevisionData);
|
|
292
|
+
}
|
|
293
|
+
else {
|
|
294
|
+
await ctx.knex(`${model.name}Revision`).insert(rootRevisionData);
|
|
230
295
|
}
|
|
231
|
-
await ctx.knex(`${model.name}Revision`).insert(revisionData);
|
|
232
296
|
}
|
|
233
297
|
};
|
|
234
298
|
const sanitize = (ctx, model, data) => {
|
|
@@ -245,7 +309,7 @@ const sanitize = (ctx, model, data) => {
|
|
|
245
309
|
data[key] = data[key].endOf('day');
|
|
246
310
|
continue;
|
|
247
311
|
}
|
|
248
|
-
if (
|
|
312
|
+
if (field.list && field.kind === 'enum' && Array.isArray(data[key])) {
|
|
249
313
|
data[key] = `{${data[key].join(',')}}`;
|
|
250
314
|
continue;
|
|
251
315
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/resolvers/mutations.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,EAAE,IAAI,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAGzD,OAAO,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAEzC,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EAAE,OAAY,EAAE,IAAS,EAAE,UAAmB,EAAE,IAAwB,EAAE,EAAE;IAC/G,OAAO,MAAM,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;QACtD,MAAM,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,sCAAsC,CAAC,CAAC,CAAC;QACjG,MAAM,GAAG,GAAG,EAAE,GAAG,UAAU,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,cAAc,EAAE,EAAE,CAAC;QACzE,MAAM,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAClD,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ;gBACX,OAAO,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,KAAK,QAAQ;gBACX,OAAO,MAAM,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACxC,KAAK,QAAQ;gBACX,OAAO,MAAM,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YACrC,KAAK,SAAS;gBACZ,OAAO,MAAM,OAAO,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;SAC1C;IACH,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,IAAI,EAAE,KAAK,EAAiB,EAAE,GAAgB,EAAE,EAAE;IACtF,MAAM,eAAe,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IACrC,eAAe,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC;IAC5B,eAAe,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC;IACpC,eAAe,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;IAC1C,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAEtC,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;IAC3D,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;IAE3C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC;IACzE,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAC/D,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;IACnD,MAAM,cAAc,CAAC,KAAK,EAAE,eAAe,EAAE,GAAG,CAAC,CAAC;IAClD,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;IAE9D,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;AAChD,CAAC,CAAC;AAEF,MAAM,MAAM,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAA6B,EAAE,GAAgB,EAAE,EAAE;IACzG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC;KAChD;IAED,MAAM,eAAe,GAAG,EAAE,GAAG,KAAK,EAAE,CAAC;IAErC,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAElE,8EAA8E;IAC9E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,EAAE;QAC9C,IAAI,eAAe,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE;YACtC,OAAO,eAAe,CAAC,GAAG,CAAC,CAAC;SAC7B;KACF;IAED,IAAI,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;QAC3C,MAAM,aAAa,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,EAAE,QAAQ,CAAC,CAAC;QAC3D,MAAM,GAAG,CAAC,aAAa,EAAE,CAAC,eAAe,CAAC,CAAC;QAE3C,MAAM,IAAI,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,eAAe,EAAE,CAAC;QAC7C,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC;QACpD,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QAC/D,MAAM,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;QAChE,MAAM,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACvC,MAAM,GAAG,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;KAC/D;IAED,OAAO,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC;AAC5B,CAAC,CAAC;AAIF,MAAM,GAAG,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,KAAK,EAAE,MAAM,EAAmC,EAAE,GAAgB,EAAE,EAAE;IACvG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC;KAChD;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAEpE,IAAI,MAAM,CAAC,OAAO,EAAE;QAClB,MAAM,IAAI,cAAc,CAAC,4BAA4B,CAAC,CAAC;KACxD;IAED,MAAM,QAAQ,GAAiD,EAAE,CAAC;IAClE,MAAM,QAAQ,GAOV,EAAE,CAAC;IAEP,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,MAAM,SAAS,GAAc,EAAE,CAAC;IAChC,MAAM,UAAU,GAAc,EAAE,CAAC;IAEjC,MAAM,aAAa,GAAG,KAAK,EAAE,YAAmB,EAAE,MAAkB,EAAE,EAAE;QACtE,IAAI,MAAM,CAAC,OAAO,EAAE;YAClB,OAAO;SACR;QAED,IAAI,CAAC,CAAC,YAAY,CAAC,IAAI,IAAI,QAAQ,CAAC,EAAE;YACpC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;SAClC;QACD,IAAK,MAAM,CAAC,EAAa,IAAI,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;YACxD,OAAO;SACR;QACD,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,EAAY,CAAC,GAAG,CAAC,MAAM,CAAC,YAAY,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE,CAAW,CAAC;QAEtH,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,eAAe,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,GAAG,EAAE,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;YACxF,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,GAAG,MAAM,EAAE,GAAG,eAAe,EAAE,EAAE,CAAC;YACnG,IAAI,GAAG,CAAC,YAAY,EAAE;gBACpB,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;oBAC1B,MAAM,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBACtE,CAAC,CAAC,CAAC;aACJ;YACD,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACxB,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;gBACnF,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC;YACxE,CAAC,CAAC,CAAC;YACH,IAAI,GAAG,CAAC,YAAY,EAAE;gBACpB,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;oBACzB,MAAM,GAAG,CAAC,YAAY,CAAC,YAAY,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;gBACrE,CAAC,CAAC,CAAC;aACJ;SACF;QAED,KAAK,MAAM,EACT,KAAK,EAAE,eAAe,EACtB,UAAU,EACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAC1B,IAAI,YAAY,CAAC,gBAAgB,EAAE;YAClC,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAChF,QAAQ,QAAQ,EAAE;gBAChB,KAAK,UAAU,CAAC,CAAC;oBACf,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;oBAChC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;wBACpC,IAAI,MAAM,EAAE;4BACV,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE;gCACnC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;6BACrC;4BACD,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,EAAE;gCAClD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,GAAG;oCAC9C,OAAO,EAAE,UAAU,CAAC,eAAe,CAAC,YAAY,IAAI,IAAI,CAAC,IAAI,MAAM,CAAC,EAAE;oCACtE,MAAM,EAAE,EAAE;iCACX,CAAC;6BACH;4BACD,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;yBACjE;6BAAM;4BACL,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gCACxB,MAAM,GAAG;qCACN,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC;qCAC1B,KAAK,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,CAAC;qCAC5B,MAAM,CAAC;oCACN,CAAC,GAAG,IAAI,IAAI,CAAC,EAAE,IAAI;iCACpB,CAAC,CAAC;4BACP,CAAC,CAAC,CAAC;yBACJ;qBACF;oBACD,MAAM;iBACP;gBACD,KAAK,SAAS,CAAC;gBACf,OAAO,CAAC,CAAC;oBACP,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;oBACnF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;oBAChC,IAAI,WAAW,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE;wBACpD,MAAM,IAAI,cAAc,CAAC,QAAQ,KAAK,CAAC,IAAI,iBAAiB,eAAe,CAAC,IAAI,2BAA2B,CAAC,CAAC;qBAC9G;oBACD,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;wBACpC,MAAM,aAAa,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;qBAClD;oBACD,MAAM;iBACP;aACF;SACF;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEnC,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,EAAE;QACpE,MAAM,QAAQ,EAAE,CAAC;KAClB;IAED,IAAI,MAAM,EAAE;QACV,MAAM,IAAI,YAAY,CAAC,iBAAiB,EAAE;YACxC,IAAI,EAAE,gBAAgB;YACtB,QAAQ;YACR,QAAQ;SACT,CAAC,CAAC;KACJ;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,KAAK,EAAE,KAAY,EAAE,EAAE,KAAK,EAAkB,EAAE,GAAgB,EAAE,EAAE;IAClF,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;QACnC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,aAAa,CAAC,CAAC;KAChD;IAED,MAAM,MAAM,GAAG,MAAM,iBAAiB,CAAC,GAAG,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAErE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;QACnB,MAAM,IAAI,cAAc,CAAC,wBAAwB,CAAC,CAAC;KACpD;IAED,MAAM,WAAW,GAAc,EAAE,CAAC;IAClC,MAAM,SAAS,GAAc,EAAE,CAAC;IAChC,MAAM,UAAU,GAAc,EAAE,CAAC;IAEjC,MAAM,cAAc,GAAG,KAAK,EAAE,YAAmB,EAAE,aAAyB,EAAE,EAAE;QAC9E,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE;YAC3G,OAAO;SACR;QAED,MAAM,eAAe,GAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC;QACvF,MAAM,IAAI,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,GAAG,aAAa,EAAE,GAAG,eAAe,EAAE,EAAE,CAAC;QACjH,IAAI,GAAG,CAAC,YAAY,EAAE;YACpB,WAAW,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBAC1B,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAChE,CAAC,CAAC,CAAC;SACJ;QACD,SAAS,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;YACxB,MAAM,GAAG,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC;YAC1F,MAAM,cAAc,CAAC,YAAY,EAAE,EAAE,GAAG,aAAa,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,GAAG,CAAC,CAAC;QAChF,CAAC,CAAC,CAAC;QACH,IAAI,GAAG,CAAC,YAAY,EAAE;YACpB,UAAU,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE;gBACzB,MAAM,GAAG,CAAC,YAAY,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;YAC/D,CAAC,CAAC,CAAC;SACJ;QAED,KAAK,MAAM,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,IAAI,YAAY,CAAC,gBAAgB,CAAC,MAAM,CACvF,CAAC,EAAE,KAAK,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,EAAE,CAAC,SAAS,CACxC,EAAE;YACD,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,EAAE,EAAE,CAAC,CAAC;YACvF,gBAAgB,CAAC,GAAG,EAAE,eAAe,CAAC,IAAI,EAAE,eAAe,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;YACpF,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC;YAChC,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;gBACpC,MAAM,cAAc,CAAC,eAAe,EAAE,UAAU,CAAC,CAAC;aACnD;SACF;IACH,CAAC,CAAC;IAEF,MAAM,cAAc,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IAEpC,KAAK,MAAM,QAAQ,IAAI,CAAC,GAAG,WAAW,EAAE,GAAG,SAAS,EAAE,GAAG,UAAU,CAAC,EAAE;QACpE,MAAM,QAAQ,EAAE,CAAC;KAClB;IAED,OAAO,MAAM,CAAC,EAAE,CAAC;AACnB,CAAC,CAAC;AAEF,MAAM,cAAc,GAAG,KAAK,EAAE,KAAY,EAAE,IAAY,EAAE,GAAY,EAAE,EAAE;IACxE,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,MAAM,YAAY,GAAW;YAC3B,EAAE,EAAE,IAAI,EAAE;YACV,CAAC,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE;YACzC,SAAS,EAAE,GAAG,CAAC,GAAG;YAClB,WAAW,EAAE,GAAG,CAAC,IAAI,CAAC,EAAE;SACzB,CAAC;QAEF,IAAI,KAAK,CAAC,SAAS,EAAE;YACnB,YAAY,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,KAAK,CAAC;SAC9C;QAED,KAAK,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,SAAS,CAAC,EAAE;YACvG,MAAM,GAAG,GAAG,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YACrD,IAAI,OAAO,IAAI,CAAC,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,IAAI,CAAC,EAAE;gBACpE,YAAY,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;aAChD;iBAAM;gBACL,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;aAC/B;SACF;QACD,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,KAAK,CAAC,IAAI,UAAU,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;KAC9D;AACH,CAAC,CAAC;AAEF,MAAM,QAAQ,GAAG,CAAC,GAAgB,EAAE,KAAY,EAAE,IAAY,EAAE,EAAE;IAChE,IAAI,KAAK,CAAC,SAAS,EAAE;QACnB,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;KAChC;IAED,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;QAE5D,IAAI,CAAC,KAAK,EAAE;YACV,SAAS;SACV;QAED,IAAI,UAAU,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;YAClC,IAAI,CAAC,GAAG,CAAC,GAAI,IAAI,CAAC,GAAG,CAAc,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACjD,SAAS;SACV;QAED,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE;YAChE,IAAI,CAAC,GAAG,CAAC,GAAG,IAAK,IAAI,CAAC,GAAG,CAAc,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;YACrD,SAAS;SACV;KACF;AACH,CAAC,CAAC;AAEF,MAAM,UAAU,GAAG,CAAC,KAAkB,EAAE,EAAE,CACxC,WAAW,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,IAAI,KAAK,EAAE,QAAQ,KAAK,IAAI,IAAI,KAAK,EAAE,YAAY,KAAK,MAAM,CAAC"}
|
|
1
|
+
{"version":3,"file":"mutations.js","sourceRoot":"","sources":["../../../src/resolvers/mutations.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,36 +1,34 @@
|
|
|
1
1
|
import type { FieldDefinitionNode, FieldNode, FragmentDefinitionNode, InlineFragmentNode, ObjectTypeDefinitionNode, SelectionNode } from 'graphql';
|
|
2
2
|
import { FullContext } from '../context';
|
|
3
|
-
import {
|
|
3
|
+
import { EntityModel, Relation } from '../models/models';
|
|
4
4
|
export type ResolverNode = {
|
|
5
5
|
ctx: FullContext;
|
|
6
|
-
|
|
6
|
+
rootModel: EntityModel;
|
|
7
|
+
rootTableAlias: string;
|
|
8
|
+
model: EntityModel;
|
|
7
9
|
tableAlias: string;
|
|
8
|
-
|
|
10
|
+
resultAlias: string;
|
|
9
11
|
baseTypeDefinition: ObjectTypeDefinitionNode;
|
|
10
|
-
baseModel?:
|
|
12
|
+
baseModel?: EntityModel;
|
|
11
13
|
typeDefinition: ObjectTypeDefinitionNode;
|
|
12
|
-
model: Model;
|
|
13
14
|
selectionSet: readonly SelectionNode[];
|
|
14
15
|
};
|
|
15
16
|
export type FieldResolverNode = ResolverNode & {
|
|
16
17
|
field: FieldNode;
|
|
17
18
|
fieldDefinition: FieldDefinitionNode;
|
|
18
|
-
foreignKey?: string;
|
|
19
19
|
isList: boolean;
|
|
20
20
|
};
|
|
21
|
-
export type
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
tableAlias: string;
|
|
25
|
-
shortTableAlias: string;
|
|
26
|
-
model: Model;
|
|
27
|
-
foreignKey?: string;
|
|
21
|
+
export type RelationResolverNode = FieldResolverNode & {
|
|
22
|
+
relation: Relation;
|
|
23
|
+
foreignKey: string;
|
|
28
24
|
};
|
|
29
|
-
export declare const getResolverNode: ({ ctx, node, tableAlias, baseTypeDefinition, typeName, }: {
|
|
25
|
+
export declare const getResolverNode: ({ ctx, node, tableAlias, rootTableAlias, resultAlias, baseTypeDefinition, typeName, }: {
|
|
30
26
|
ctx: FullContext;
|
|
31
27
|
node: FieldNode | InlineFragmentNode | FragmentDefinitionNode;
|
|
32
28
|
baseTypeDefinition: ObjectTypeDefinitionNode;
|
|
33
29
|
tableAlias: string;
|
|
30
|
+
rootTableAlias: string;
|
|
31
|
+
resultAlias: string;
|
|
34
32
|
typeName: string;
|
|
35
33
|
}) => ResolverNode;
|
|
36
34
|
export declare const getRootFieldNode: ({ ctx, node, baseTypeDefinition, }: {
|
|
@@ -41,4 +39,4 @@ export declare const getRootFieldNode: ({ ctx, node, baseTypeDefinition, }: {
|
|
|
41
39
|
export declare const getSimpleFields: (node: ResolverNode) => FieldNode[];
|
|
42
40
|
export declare const getInlineFragments: (node: ResolverNode) => ResolverNode[];
|
|
43
41
|
export declare const getFragmentSpreads: (node: ResolverNode) => ResolverNode[];
|
|
44
|
-
export declare const getJoins: (node: ResolverNode, toMany: boolean) =>
|
|
42
|
+
export declare const getJoins: (node: ResolverNode, toMany: boolean) => RelationResolverNode[];
|
|
@@ -1,28 +1,36 @@
|
|
|
1
|
-
import { get, isObjectModel, summonByKey
|
|
1
|
+
import { get, isObjectModel, summonByKey } from '../models/utils';
|
|
2
2
|
import { getFragmentTypeName, getNameOrAlias, getType, getTypeName, isFieldNode, isFragmentSpreadNode, isInlineFragmentNode, isListType, } from './utils';
|
|
3
|
-
export const getResolverNode = ({ ctx, node, tableAlias, baseTypeDefinition, typeName, }) =>
|
|
4
|
-
ctx,
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
3
|
+
export const getResolverNode = ({ ctx, node, tableAlias, rootTableAlias, resultAlias, baseTypeDefinition, typeName, }) => {
|
|
4
|
+
const model = ctx.models.getModel(typeName, 'entity');
|
|
5
|
+
const rootModel = model.parent ? ctx.models.getModel(model.parent, 'entity') : model;
|
|
6
|
+
return {
|
|
7
|
+
ctx,
|
|
8
|
+
rootModel,
|
|
9
|
+
rootTableAlias,
|
|
10
|
+
model,
|
|
11
|
+
tableAlias,
|
|
12
|
+
resultAlias,
|
|
13
|
+
baseTypeDefinition,
|
|
14
|
+
baseModel: ctx.models.entities.find((model) => model.name === baseTypeDefinition.name.value),
|
|
15
|
+
typeDefinition: getType(ctx.info.schema, typeName),
|
|
16
|
+
selectionSet: get(node.selectionSet, 'selections'),
|
|
17
|
+
};
|
|
18
|
+
};
|
|
14
19
|
export const getRootFieldNode = ({ ctx, node, baseTypeDefinition, }) => {
|
|
15
20
|
const fieldName = node.name.value;
|
|
16
21
|
const fieldDefinition = summonByKey(baseTypeDefinition.fields || [], 'name.value', fieldName);
|
|
17
22
|
const typeName = getTypeName(fieldDefinition.type);
|
|
23
|
+
const model = ctx.models.getModel(typeName, 'entity');
|
|
24
|
+
const rootModel = model.parent ? ctx.models.getModel(model.parent, 'entity') : model;
|
|
18
25
|
return {
|
|
19
26
|
ctx,
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
27
|
+
rootModel,
|
|
28
|
+
rootTableAlias: rootModel.name,
|
|
29
|
+
model,
|
|
30
|
+
tableAlias: model.name,
|
|
31
|
+
resultAlias: rootModel.name,
|
|
23
32
|
baseTypeDefinition,
|
|
24
33
|
typeDefinition: getType(ctx.info.schema, typeName),
|
|
25
|
-
model: summonByName(ctx.models, typeName),
|
|
26
34
|
selectionSet: get(node.selectionSet, 'selections'),
|
|
27
35
|
field: node,
|
|
28
36
|
fieldDefinition,
|
|
@@ -40,14 +48,18 @@ export const getSimpleFields = (node) => {
|
|
|
40
48
|
export const getInlineFragments = (node) => node.selectionSet.filter(isInlineFragmentNode).map((subNode) => getResolverNode({
|
|
41
49
|
ctx: node.ctx,
|
|
42
50
|
node: subNode,
|
|
51
|
+
rootTableAlias: node.rootTableAlias,
|
|
43
52
|
tableAlias: node.tableAlias + '__' + getFragmentTypeName(subNode),
|
|
53
|
+
resultAlias: node.resultAlias,
|
|
44
54
|
baseTypeDefinition: node.baseTypeDefinition,
|
|
45
55
|
typeName: getFragmentTypeName(subNode),
|
|
46
56
|
}));
|
|
47
57
|
export const getFragmentSpreads = (node) => node.selectionSet.filter(isFragmentSpreadNode).map((subNode) => getResolverNode({
|
|
48
58
|
ctx: node.ctx,
|
|
49
59
|
node: node.ctx.info.fragments[subNode.name.value],
|
|
60
|
+
rootTableAlias: node.rootTableAlias,
|
|
50
61
|
tableAlias: node.tableAlias,
|
|
62
|
+
resultAlias: node.resultAlias,
|
|
51
63
|
baseTypeDefinition: node.baseTypeDefinition,
|
|
52
64
|
typeName: node.model.name,
|
|
53
65
|
}));
|
|
@@ -60,39 +72,32 @@ export const getJoins = (node, toMany) => {
|
|
|
60
72
|
const fieldNameOrAlias = getNameOrAlias(subNode);
|
|
61
73
|
const fieldDefinition = summonByKey(baseTypeDefinition.fields || [], 'name.value', fieldName);
|
|
62
74
|
const typeName = getTypeName(fieldDefinition.type);
|
|
63
|
-
if (isObjectModel(
|
|
75
|
+
if (isObjectModel(ctx.models.getModel(typeName))) {
|
|
64
76
|
continue;
|
|
65
77
|
}
|
|
66
|
-
const baseModel =
|
|
67
|
-
|
|
68
|
-
if (
|
|
69
|
-
|
|
70
|
-
if (!reverseRelation) {
|
|
71
|
-
continue;
|
|
72
|
-
}
|
|
73
|
-
foreignKey = reverseRelation.foreignKey;
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
const modelField = baseModel.fieldsByName[fieldName];
|
|
77
|
-
if (modelField?.kind !== 'relation') {
|
|
78
|
-
continue;
|
|
79
|
-
}
|
|
80
|
-
foreignKey = modelField.foreignKey;
|
|
78
|
+
const baseModel = ctx.models.getModel(baseTypeDefinition.name.value, 'entity');
|
|
79
|
+
const relation = (toMany ? baseModel.reverseRelationsByName : baseModel.relationsByName)[fieldName];
|
|
80
|
+
if (!relation) {
|
|
81
|
+
continue;
|
|
81
82
|
}
|
|
82
83
|
const tableAlias = node.tableAlias + '__' + fieldNameOrAlias;
|
|
84
|
+
const model = ctx.models.getModel(typeName, 'entity');
|
|
85
|
+
const rootModel = model;
|
|
83
86
|
nodes.push({
|
|
84
87
|
ctx,
|
|
85
|
-
|
|
88
|
+
rootModel,
|
|
89
|
+
rootTableAlias: tableAlias,
|
|
90
|
+
model,
|
|
86
91
|
tableAlias,
|
|
87
|
-
|
|
92
|
+
resultAlias: tableAlias,
|
|
88
93
|
baseTypeDefinition,
|
|
89
94
|
baseModel,
|
|
90
95
|
typeDefinition: getType(ctx.info.schema, typeName),
|
|
91
|
-
model: summonByName(ctx.models, typeName),
|
|
92
96
|
selectionSet: get(subNode.selectionSet, 'selections'),
|
|
93
97
|
field: subNode,
|
|
94
98
|
fieldDefinition,
|
|
95
|
-
|
|
99
|
+
relation,
|
|
100
|
+
foreignKey: relation.field.foreignKey,
|
|
96
101
|
isList: isListType(fieldDefinition.type),
|
|
97
102
|
});
|
|
98
103
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/resolvers/node.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,GAAG,EAAE,aAAa,EAAE,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"node.js","sourceRoot":"","sources":["../../../src/resolvers/node.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import cloneDeep from 'lodash/cloneDeep';
|
|
2
2
|
import flatMap from 'lodash/flatMap';
|
|
3
|
-
import { NotFoundError
|
|
3
|
+
import { NotFoundError } from '../errors';
|
|
4
4
|
import { get, summonByKey } from '../models/utils';
|
|
5
5
|
import { applyPermissions } from '../permissions/check';
|
|
6
6
|
import { applyFilters } from './filters';
|
|
7
|
-
import { getFragmentSpreads, getInlineFragments, getJoins, getRootFieldNode
|
|
8
|
-
import {
|
|
7
|
+
import { getFragmentSpreads, getInlineFragments, getJoins, getRootFieldNode } from './node';
|
|
8
|
+
import { applySelects } from './selects';
|
|
9
|
+
import { AliasGenerator, ID_ALIAS, applyJoins, getColumn, getNameOrAlias, hydrate, isListType } from './utils';
|
|
9
10
|
export const queryResolver = (_parent, _args, ctx, info) => resolve({ ...ctx, info, aliases: new AliasGenerator() });
|
|
10
11
|
export const resolve = async (ctx, id) => {
|
|
11
12
|
const fieldNode = summonByKey(ctx.info.fieldNodes, 'name.value', ctx.info.fieldName);
|
|
@@ -17,16 +18,13 @@ export const resolve = async (ctx, id) => {
|
|
|
17
18
|
});
|
|
18
19
|
const { query, verifiedPermissionStacks } = await buildQuery(node);
|
|
19
20
|
if (ctx.info.fieldName === 'me') {
|
|
20
|
-
|
|
21
|
-
query.where({ [`${node.shortTableAlias}.id`]: node.ctx.user.id });
|
|
22
|
-
}
|
|
23
|
-
if (!node.isList) {
|
|
24
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
|
|
25
|
-
query.limit(1);
|
|
21
|
+
void query.where({ [getColumn(node, 'id')]: node.ctx.user.id });
|
|
26
22
|
}
|
|
27
23
|
if (id) {
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
void query.where({ [getColumn(node, 'id')]: id });
|
|
25
|
+
}
|
|
26
|
+
if (!node.isList) {
|
|
27
|
+
void query.limit(1);
|
|
30
28
|
}
|
|
31
29
|
const raw = await query;
|
|
32
30
|
const res = hydrate(node, raw);
|
|
@@ -41,54 +39,24 @@ export const resolve = async (ctx, id) => {
|
|
|
41
39
|
return res[0];
|
|
42
40
|
};
|
|
43
41
|
const buildQuery = async (node, parentVerifiedPermissionStacks) => {
|
|
44
|
-
const
|
|
45
|
-
const
|
|
46
|
-
const joins = {};
|
|
42
|
+
const query = node.ctx.knex.fromRaw(`"${node.rootModel.name}" as "${node.ctx.aliases.getShort(node.resultAlias)}"`);
|
|
43
|
+
const joins = [];
|
|
47
44
|
applyFilters(node, query, joins);
|
|
48
45
|
applySelects(node, query, joins);
|
|
49
46
|
applyJoins(node.ctx.aliases, query, joins);
|
|
50
47
|
const tables = [
|
|
51
|
-
[
|
|
52
|
-
...
|
|
48
|
+
[node.rootModel.name, node.rootTableAlias],
|
|
49
|
+
...joins.map(({ table2Name, table2Alias }) => [table2Name, table2Alias]),
|
|
53
50
|
];
|
|
54
51
|
const verifiedPermissionStacks = {};
|
|
55
52
|
for (const [table, alias] of tables) {
|
|
56
|
-
const verifiedPermissionStack = applyPermissions(ctx, table, node.ctx.aliases.getShort(alias), query, 'READ', parentVerifiedPermissionStacks?.[alias.split('__').slice(0, -1).join('__')]);
|
|
53
|
+
const verifiedPermissionStack = applyPermissions(node.ctx, table, node.ctx.aliases.getShort(alias), query, 'READ', parentVerifiedPermissionStacks?.[alias.split('__').slice(0, -1).join('__')]);
|
|
57
54
|
if (typeof verifiedPermissionStack !== 'boolean') {
|
|
58
55
|
verifiedPermissionStacks[alias] = verifiedPermissionStack;
|
|
59
56
|
}
|
|
60
57
|
}
|
|
61
58
|
return { query, verifiedPermissionStacks };
|
|
62
59
|
};
|
|
63
|
-
const applySelects = (node, query, joins) => {
|
|
64
|
-
// Simple field selects
|
|
65
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises -- we do not need to await knex here
|
|
66
|
-
query.select(...[
|
|
67
|
-
{ field: 'id', alias: ID_ALIAS },
|
|
68
|
-
...getSimpleFields(node)
|
|
69
|
-
.filter((n) => {
|
|
70
|
-
const field = node.model.fields.find(({ name }) => name === n.name.value);
|
|
71
|
-
if (!field || field.kind === 'relation' || field.kind === 'custom') {
|
|
72
|
-
return false;
|
|
73
|
-
}
|
|
74
|
-
if (typeof field.queriable === 'object' && !field.queriable.roles?.includes(node.ctx.user.role)) {
|
|
75
|
-
throw new PermissionError('READ', `${node.model.name}'s field "${field.name}"`, 'field permission not available');
|
|
76
|
-
}
|
|
77
|
-
return true;
|
|
78
|
-
})
|
|
79
|
-
.map((n) => ({ field: n.name.value, alias: getNameOrAlias(n) })),
|
|
80
|
-
].map(({ field, alias }) => `${node.shortTableAlias}.${field} as ${node.shortTableAlias}__${alias}`));
|
|
81
|
-
for (const subNode of getInlineFragments(node)) {
|
|
82
|
-
applySelects(subNode, query, joins);
|
|
83
|
-
}
|
|
84
|
-
for (const subNode of getFragmentSpreads(node)) {
|
|
85
|
-
applySelects(subNode, query, joins);
|
|
86
|
-
}
|
|
87
|
-
for (const subNode of getJoins(node, false)) {
|
|
88
|
-
addJoin(joins, node.tableAlias, subNode.tableName, subNode.tableAlias, get(subNode, 'foreignKey'), 'id');
|
|
89
|
-
applySelects(subNode, query, joins);
|
|
90
|
-
}
|
|
91
|
-
};
|
|
92
60
|
const applySubQueries = async (node, entries, parentVerifiedPermissionStacks) => {
|
|
93
61
|
if (!entries.length) {
|
|
94
62
|
return;
|
|
@@ -106,12 +74,14 @@ const applySubQueries = async (node, entries, parentVerifiedPermissionStacks) =>
|
|
|
106
74
|
const fieldName = getNameOrAlias(subNode.field);
|
|
107
75
|
const isList = isListType(subNode.fieldDefinition.type);
|
|
108
76
|
entries.forEach((entry) => (entry[fieldName] = isList ? [] : null));
|
|
109
|
-
const foreignKey =
|
|
77
|
+
const foreignKey = subNode.foreignKey;
|
|
110
78
|
const { query, verifiedPermissionStacks } = await buildQuery(subNode, parentVerifiedPermissionStacks);
|
|
79
|
+
const shortTableAlias = subNode.ctx.aliases.getShort(subNode.tableAlias);
|
|
80
|
+
const shortResultAlias = subNode.ctx.aliases.getShort(subNode.resultAlias);
|
|
111
81
|
const queries = ids.map((id) => query
|
|
112
82
|
.clone()
|
|
113
|
-
.select(`${
|
|
114
|
-
.where({ [`${
|
|
83
|
+
.select(`${shortTableAlias}.${foreignKey} as ${shortResultAlias}__${foreignKey}`)
|
|
84
|
+
.where({ [`${shortTableAlias}.${foreignKey}`]: id }));
|
|
115
85
|
// TODO: make unionAll faster then promise.all...
|
|
116
86
|
// const rawChildren = await node.ctx.knex.queryBuilder().unionAll(queries, true);
|
|
117
87
|
const rawChildren = (await Promise.all(queries)).flat();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/resolvers/resolver.ts"],"names":[],"mappings":"AAEA,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,OAAO,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"resolver.js","sourceRoot":"","sources":["../../../src/resolvers/resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,2 @@
|
|
|
1
1
|
import { Models } from '../models/models';
|
|
2
|
-
export declare const getResolvers: (models: Models) =>
|
|
3
|
-
Query: {
|
|
4
|
-
[name: string]: (_parent: any, _args: any, ctx: import("..").Context, info: import("graphql").GraphQLResolveInfo) => Promise<import("./utils").Entry | import("./utils").Entry[]>;
|
|
5
|
-
};
|
|
6
|
-
Mutation: {
|
|
7
|
-
[name: string]: unknown;
|
|
8
|
-
};
|
|
9
|
-
};
|
|
2
|
+
export declare const getResolvers: (models: Models) => any;
|