@commitspark/graphql-api 0.9.3 → 0.10.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/CHANGELOG.md +17 -0
- package/dist/container.js +21 -13
- package/dist/container.js.map +1 -1
- package/dist/graphql/field-resolver/entry-reference-resolver.d.ts +9 -0
- package/dist/graphql/field-resolver/entry-reference-resolver.js +15 -0
- package/dist/graphql/field-resolver/entry-reference-resolver.js.map +1 -0
- package/dist/graphql/field-resolver/field-default-value-resolver.d.ts +14 -0
- package/dist/graphql/field-resolver/field-default-value-resolver.js +73 -0
- package/dist/graphql/field-resolver/field-default-value-resolver.js.map +1 -0
- package/dist/graphql/field-resolver/fieldResolver.d.ts +11 -0
- package/dist/graphql/field-resolver/fieldResolver.js +3 -0
- package/dist/graphql/field-resolver/fieldResolver.js.map +1 -0
- package/dist/graphql/field-resolver/union-value-resolver.d.ts +10 -0
- package/dist/graphql/field-resolver/union-value-resolver.js +17 -0
- package/dist/graphql/field-resolver/union-value-resolver.js.map +1 -0
- package/dist/graphql/input-type-generator.service.d.ts +4 -5
- package/dist/graphql/input-type-generator.service.js +23 -13
- package/dist/graphql/input-type-generator.service.js.map +1 -1
- package/dist/graphql/queries-mutations-generator.service.d.ts +1 -1
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +3 -1
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js +46 -4
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js.map +1 -1
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +3 -1
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js +32 -9
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +1 -1
- package/dist/graphql/resolver-generators/{mutation-update.resolver-generator.d.ts → mutation-update-resolver-generator.d.ts} +4 -1
- package/dist/graphql/resolver-generators/mutation-update-resolver-generator.js +53 -0
- package/dist/graphql/resolver-generators/mutation-update-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +13 -0
- package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +58 -0
- package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/query-all-resolver-generator.js +4 -1
- package/dist/graphql/resolver-generators/query-all-resolver-generator.js.map +1 -1
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js +2 -1
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js.map +1 -1
- package/dist/graphql/resolver-generators/union-type-resolver-generator.d.ts +4 -4
- package/dist/graphql/resolver-generators/union-type-resolver-generator.js +3 -3
- package/dist/graphql/resolver-generators/union-type-resolver-generator.js.map +1 -1
- package/dist/graphql/schema-analyzer.service.d.ts +1 -9
- package/dist/graphql/schema-analyzer.service.js +6 -17
- package/dist/graphql/schema-analyzer.service.js.map +1 -1
- package/dist/graphql/schema-generator.service.d.ts +3 -5
- package/dist/graphql/schema-generator.service.js +7 -12
- package/dist/graphql/schema-generator.service.js.map +1 -1
- package/dist/graphql/schema-utils/entry-reference-util.d.ts +12 -5
- package/dist/graphql/schema-utils/entry-reference-util.js +108 -25
- package/dist/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/graphql/schema-utils/entry-type-util.d.ts +6 -0
- package/dist/graphql/schema-utils/entry-type-util.js +34 -0
- package/dist/graphql/schema-utils/entry-type-util.js.map +1 -0
- package/dist/graphql/schema-utils/union-type-util.d.ts +5 -0
- package/dist/graphql/schema-utils/union-type-util.js +21 -0
- package/dist/graphql/schema-utils/union-type-util.js.map +1 -0
- package/dist/persistence/persistence.service.d.ts +4 -7
- package/dist/persistence/persistence.service.js +18 -83
- package/dist/persistence/persistence.service.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/container.ts +29 -15
- package/src/graphql/field-resolver/entry-reference-resolver.ts +49 -0
- package/src/graphql/field-resolver/field-default-value-resolver.ts +154 -0
- package/src/graphql/field-resolver/fieldResolver.ts +19 -0
- package/src/graphql/field-resolver/union-value-resolver.ts +46 -0
- package/src/graphql/input-type-generator.service.ts +33 -18
- package/src/graphql/queries-mutations-generator.service.ts +1 -1
- package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +78 -13
- package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +69 -21
- package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +131 -0
- package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +119 -0
- package/src/graphql/resolver-generators/query-all-resolver-generator.ts +5 -1
- package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +3 -1
- package/src/graphql/resolver-generators/union-type-resolver-generator.ts +5 -7
- package/src/graphql/schema-analyzer.service.ts +10 -24
- package/src/graphql/schema-generator.service.ts +11 -20
- package/src/graphql/schema-utils/entry-reference-util.ts +177 -35
- package/src/graphql/schema-utils/entry-type-util.ts +42 -0
- package/src/graphql/schema-utils/union-type-util.ts +23 -0
- package/src/persistence/persistence.service.ts +33 -132
- package/dist/graphql/resolver-generators/entry-reference-resolver.generator.d.ts +0 -12
- package/dist/graphql/resolver-generators/entry-reference-resolver.generator.js +0 -29
- package/dist/graphql/resolver-generators/entry-reference-resolver.generator.js.map +0 -1
- package/dist/graphql/resolver-generators/mutation-update.resolver-generator.js +0 -29
- package/dist/graphql/resolver-generators/mutation-update.resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/union-value-resolver-generator.d.ts +0 -13
- package/dist/graphql/resolver-generators/union-value-resolver-generator.js +0 -83
- package/dist/graphql/resolver-generators/union-value-resolver-generator.js.map +0 -1
- package/src/graphql/resolver-generators/entry-reference-resolver.generator.ts +0 -71
- package/src/graphql/resolver-generators/mutation-update.resolver-generator.ts +0 -59
- package/src/graphql/resolver-generators/union-value-resolver-generator.ts +0 -126
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.MutationUpdateResolverGenerator = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
class MutationUpdateResolverGenerator {
|
|
6
|
+
constructor(persistence, entryReferenceUtil) {
|
|
7
|
+
this.persistence = persistence;
|
|
8
|
+
this.entryReferenceUtil = entryReferenceUtil;
|
|
9
|
+
}
|
|
10
|
+
createResolver(typeName) {
|
|
11
|
+
return async (source, args, context, info) => {
|
|
12
|
+
var _a, _b, _c;
|
|
13
|
+
if (!(0, graphql_1.isObjectType)(info.returnType)) {
|
|
14
|
+
throw new Error('Expected to update an ObjectType');
|
|
15
|
+
}
|
|
16
|
+
const existingEntry = await this.persistence.findByTypeId(context.gitAdapter, context.getCurrentRef(), typeName, args.id);
|
|
17
|
+
const existingReferencedEntryIds = await this.entryReferenceUtil.getReferencedEntryIds(info.returnType, context, null, info.returnType, existingEntry.data);
|
|
18
|
+
const mergedData = this.mergeData((_a = existingEntry.data) !== null && _a !== void 0 ? _a : null, args.data);
|
|
19
|
+
const updatedReferencedEntryIds = await this.entryReferenceUtil.getReferencedEntryIds(info.returnType, context, null, info.returnType, mergedData);
|
|
20
|
+
const noLongerReferencedIds = existingReferencedEntryIds.filter((entryId) => !updatedReferencedEntryIds.includes(entryId));
|
|
21
|
+
const newlyReferencedIds = updatedReferencedEntryIds.filter((entryId) => !existingReferencedEntryIds.includes(entryId));
|
|
22
|
+
const referencedEntryUpdates = [];
|
|
23
|
+
for (const noLongerReferencedEntryId of noLongerReferencedIds) {
|
|
24
|
+
const noLongerReferencedEntry = await this.persistence.findById(context.gitAdapter, context.getCurrentRef(), noLongerReferencedEntryId);
|
|
25
|
+
referencedEntryUpdates.push(Object.assign(Object.assign({}, noLongerReferencedEntry), { metadata: Object.assign(Object.assign({}, noLongerReferencedEntry.metadata), { referencedBy: (_b = noLongerReferencedEntry.metadata.referencedBy) === null || _b === void 0 ? void 0 : _b.filter((entryId) => entryId !== args.id) }), deletion: false }));
|
|
26
|
+
}
|
|
27
|
+
for (const newlyReferencedEntryId of newlyReferencedIds) {
|
|
28
|
+
const newlyReferencedEntry = await this.persistence.findById(context.gitAdapter, context.getCurrentRef(), newlyReferencedEntryId);
|
|
29
|
+
const updatedReferenceList = (_c = newlyReferencedEntry.metadata.referencedBy) !== null && _c !== void 0 ? _c : [];
|
|
30
|
+
updatedReferenceList.push(args.id);
|
|
31
|
+
updatedReferenceList.sort();
|
|
32
|
+
referencedEntryUpdates.push(Object.assign(Object.assign({}, newlyReferencedEntry), { metadata: Object.assign(Object.assign({}, newlyReferencedEntry.metadata), { referencedBy: updatedReferenceList }), deletion: false }));
|
|
33
|
+
}
|
|
34
|
+
const commit = await context.gitAdapter.createCommit({
|
|
35
|
+
ref: context.branch,
|
|
36
|
+
parentSha: context.getCurrentRef(),
|
|
37
|
+
contentEntries: [
|
|
38
|
+
Object.assign(Object.assign({}, existingEntry), { data: mergedData, deletion: false }),
|
|
39
|
+
...referencedEntryUpdates,
|
|
40
|
+
],
|
|
41
|
+
message: args.message,
|
|
42
|
+
});
|
|
43
|
+
context.setCurrentRef(commit.ref);
|
|
44
|
+
const updatedEntry = await this.persistence.findByTypeId(context.gitAdapter, context.getCurrentRef(), typeName, args.id);
|
|
45
|
+
return Object.assign(Object.assign({}, updatedEntry.data), { id: updatedEntry.id });
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
mergeData(existingEntryData, updateData) {
|
|
49
|
+
return Object.assign(Object.assign({}, existingEntryData), updateData);
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.MutationUpdateResolverGenerator = MutationUpdateResolverGenerator;
|
|
53
|
+
//# sourceMappingURL=mutation-update-resolver-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-update-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/mutation-update-resolver-generator.ts"],"names":[],"mappings":"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"}
|
package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts
ADDED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { GraphQLFieldResolver } from 'graphql/type/definition';
|
|
2
|
+
import { ApolloContext } from '../../app/api.service';
|
|
3
|
+
import { Entry } from '../../persistence/persistence.service';
|
|
4
|
+
import { GraphQLSchema } from 'graphql';
|
|
5
|
+
import { ResolvedEntryData } from '../field-resolver/fieldResolver';
|
|
6
|
+
import { FieldDefaultValueResolver } from '../field-resolver/field-default-value-resolver';
|
|
7
|
+
export declare class ObjectTypeFieldDefaultValueResolverGenerator {
|
|
8
|
+
private readonly fieldDefaultValueResolver;
|
|
9
|
+
constructor(fieldDefaultValueResolver: FieldDefaultValueResolver);
|
|
10
|
+
createResolver(schema: GraphQLSchema): Record<string, Record<string, GraphQLFieldResolver<any, ApolloContext, any, Promise<ResolvedEntryData<Entry | Entry[] | null>>>>>;
|
|
11
|
+
private getFieldsForCustomDefaultValueResolver;
|
|
12
|
+
private requiresCustomDefaultValueResolver;
|
|
13
|
+
}
|
package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ObjectTypeFieldDefaultValueResolverGenerator = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
class ObjectTypeFieldDefaultValueResolverGenerator {
|
|
6
|
+
constructor(fieldDefaultValueResolver) {
|
|
7
|
+
this.fieldDefaultValueResolver = fieldDefaultValueResolver;
|
|
8
|
+
}
|
|
9
|
+
createResolver(schema) {
|
|
10
|
+
const resolvers = {};
|
|
11
|
+
for (const typeName of Object.keys(schema.getTypeMap())) {
|
|
12
|
+
const type = schema.getType(typeName);
|
|
13
|
+
if (!(0, graphql_1.isObjectType)(type) || type.name.startsWith('__')) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
const objectType = type;
|
|
17
|
+
const fieldsForCustomDefaultValueResolver = this.getFieldsForCustomDefaultValueResolver(objectType);
|
|
18
|
+
const fieldResolvers = {};
|
|
19
|
+
for (const field of fieldsForCustomDefaultValueResolver) {
|
|
20
|
+
fieldResolvers[field.name] = (obj, args, context, info) => this.fieldDefaultValueResolver.resolve(field.name in obj ? obj[field.name] : undefined, args, {
|
|
21
|
+
gitAdapter: context.gitAdapter,
|
|
22
|
+
getCurrentRef: context.getCurrentRef,
|
|
23
|
+
}, info);
|
|
24
|
+
}
|
|
25
|
+
if (Object.keys(fieldResolvers).length > 0) {
|
|
26
|
+
resolvers[typeName] = fieldResolvers;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return resolvers;
|
|
30
|
+
}
|
|
31
|
+
getFieldsForCustomDefaultValueResolver(objectType) {
|
|
32
|
+
const fields = [];
|
|
33
|
+
for (const fieldsKey in objectType.getFields()) {
|
|
34
|
+
const field = objectType.getFields()[fieldsKey];
|
|
35
|
+
if (this.requiresCustomDefaultValueResolver(field.type)) {
|
|
36
|
+
fields.push(field);
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return fields;
|
|
40
|
+
}
|
|
41
|
+
requiresCustomDefaultValueResolver(type) {
|
|
42
|
+
if ((0, graphql_1.isNonNullType)(type)) {
|
|
43
|
+
return this.requiresCustomDefaultValueResolver(type.ofType);
|
|
44
|
+
}
|
|
45
|
+
else if ((0, graphql_1.isListType)(type)) {
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
else if ((0, graphql_1.isUnionType)(type)) {
|
|
49
|
+
return true;
|
|
50
|
+
}
|
|
51
|
+
else if ((0, graphql_1.isObjectType)(type)) {
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.ObjectTypeFieldDefaultValueResolverGenerator = ObjectTypeFieldDefaultValueResolverGenerator;
|
|
58
|
+
//# sourceMappingURL=object-type-field-default-value-resolver-generator.js.map
|
package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-type-field-default-value-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts"],"names":[],"mappings":";;;AAMA,qCAQgB;AAIhB,MAAa,4CAA4C;IACvD,YACmB,yBAAoD;QAApD,8BAAyB,GAAzB,yBAAyB,CAA2B;IACpE,CAAC;IAEG,cAAc,CACnB,MAAqB;QAarB,MAAM,SAAS,GAWX,EAAE,CAAA;QACN,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE;YACvD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,CAAC,IAAA,sBAAY,EAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACrD,SAAQ;aACT;YACD,MAAM,UAAU,GAAG,IAAyB,CAAA;YAC5C,MAAM,mCAAmC,GACvC,IAAI,CAAC,sCAAsC,CAAC,UAAU,CAAC,CAAA;YAEzD,MAAM,cAAc,GAQhB,EAAE,CAAA;YACN,KAAK,MAAM,KAAK,IAAI,mCAAmC,EAAE;gBACvD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAC3B,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACgD,EAAE,CACtD,IAAI,CAAC,yBAAyB,CAAC,OAAO,CACpC,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC/C,IAAI,EACJ;oBACE,UAAU,EAAE,OAAO,CAAC,UAAU;oBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;iBACrC,EACD,IAAI,CACL,CAAA;aACJ;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBAC1C,SAAS,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAA;aACrC;SACF;QAED,OAAO,SAAS,CAAA;IAClB,CAAC;IAEO,sCAAsC,CAC5C,UAA6B;QAE7B,MAAM,MAAM,GAAG,EAAE,CAAA;QACjB,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE;YAC9C,MAAM,KAAK,GAA2B,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAA;YACvE,IAAI,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACvD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;SACF;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,kCAAkC,CAAC,IAAuB;QAChE,IAAI,IAAA,uBAAa,EAAC,IAAI,CAAC,EAAE;YACvB,OAAO,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SAC5D;aAAM,IAAI,IAAA,oBAAU,EAAC,IAAI,CAAC,EAAE;YAC3B,OAAO,IAAI,CAAA;SACZ;aAAM,IAAI,IAAA,qBAAW,EAAC,IAAI,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAA;SACZ;aAAM,IAAI,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAA;SACZ;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF;AApGD,oGAoGC"}
|
|
@@ -7,7 +7,10 @@ class QueryAllResolverGenerator {
|
|
|
7
7
|
}
|
|
8
8
|
createResolver(typeName) {
|
|
9
9
|
return async (obj, args, context, info) => {
|
|
10
|
-
|
|
10
|
+
const entries = await this.persistence.findByType(context.gitAdapter, context.getCurrentRef(), typeName);
|
|
11
|
+
return entries.map((entry) => {
|
|
12
|
+
return Object.assign(Object.assign({}, entry.data), { id: entry.id });
|
|
13
|
+
});
|
|
11
14
|
};
|
|
12
15
|
}
|
|
13
16
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-all-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/query-all-resolver-generator.ts"],"names":[],"mappings":";;;AAOA,MAAa,yBAAyB;IACpC,YAA6B,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;IAAG,CAAC;IAEzD,cAAc,CACnB,QAAgB;QAEhB,OAAO,KAAK,EACV,GAAG,EACH,IAAI,EACJ,OAAsB,EACtB,IAAI,EACc,EAAE;YACpB,OAAO,IAAI,CAAC,WAAW,CAAC,UAAU,
|
|
1
|
+
{"version":3,"file":"query-all-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/query-all-resolver-generator.ts"],"names":[],"mappings":";;;AAOA,MAAa,yBAAyB;IACpC,YAA6B,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;IAAG,CAAC;IAEzD,cAAc,CACnB,QAAgB;QAEhB,OAAO,KAAK,EACV,GAAG,EACH,IAAI,EACJ,OAAsB,EACtB,IAAI,EACc,EAAE;YACpB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAC/C,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,QAAQ,CACT,CAAA;YAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC3B,uCAAY,KAAK,CAAC,IAAI,KAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAE;YACxC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC;CACF;AAvBD,8DAuBC"}
|
|
@@ -7,7 +7,8 @@ class QueryByIdResolverGenerator {
|
|
|
7
7
|
}
|
|
8
8
|
createResolver(typeName) {
|
|
9
9
|
return async (obj, args, context, info) => {
|
|
10
|
-
|
|
10
|
+
const entry = await this.persistence.findByTypeId(context.gitAdapter, context.getCurrentRef(), typeName, args.id);
|
|
11
|
+
return Object.assign(Object.assign({}, entry.data), { id: entry.id });
|
|
11
12
|
};
|
|
12
13
|
}
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"query-by-id-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/query-by-id-resolver-generator.ts"],"names":[],"mappings":";;;AAOA,MAAa,0BAA0B;IACrC,YAA6B,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;IAAG,CAAC;IAEzD,cAAc,CACnB,QAAgB;QAEhB,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAkB,EAAE;YACxD,
|
|
1
|
+
{"version":3,"file":"query-by-id-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/query-by-id-resolver-generator.ts"],"names":[],"mappings":";;;AAOA,MAAa,0BAA0B;IACrC,YAA6B,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;IAAG,CAAC;IAEzD,cAAc,CACnB,QAAgB;QAEhB,OAAO,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAkB,EAAE;YACxD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,YAAY,CAC/C,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,QAAQ,EACR,IAAI,CAAC,EAAE,CACR,CAAA;YAED,uCAAY,KAAK,CAAC,IAAI,KAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAE;QACxC,CAAC,CAAA;IACH,CAAC;CACF;AAjBD,gEAiBC"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ApolloContext } from '../../app/api.service';
|
|
2
2
|
import { PersistenceService } from '../../persistence/persistence.service';
|
|
3
|
-
import { GraphQLTypeResolver } from 'graphql
|
|
4
|
-
import {
|
|
3
|
+
import { GraphQLTypeResolver } from 'graphql';
|
|
4
|
+
import { EntryTypeUtil } from '../schema-utils/entry-type-util';
|
|
5
5
|
export declare class UnionTypeResolverGenerator {
|
|
6
6
|
private readonly persistence;
|
|
7
|
-
private readonly
|
|
8
|
-
constructor(persistence: PersistenceService,
|
|
7
|
+
private readonly entryTypeUtil;
|
|
8
|
+
constructor(persistence: PersistenceService, entryTypeUtil: EntryTypeUtil);
|
|
9
9
|
createResolver(): GraphQLTypeResolver<any, ApolloContext>;
|
|
10
10
|
}
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.UnionTypeResolverGenerator = void 0;
|
|
4
4
|
class UnionTypeResolverGenerator {
|
|
5
|
-
constructor(persistence,
|
|
5
|
+
constructor(persistence, entryTypeUtil) {
|
|
6
6
|
this.persistence = persistence;
|
|
7
|
-
this.
|
|
7
|
+
this.entryTypeUtil = entryTypeUtil;
|
|
8
8
|
}
|
|
9
9
|
createResolver() {
|
|
10
10
|
return async (obj, context, info, abstractType) => {
|
|
11
|
-
if (this.
|
|
11
|
+
if (this.entryTypeUtil.buildsOnTypeWithEntryDirective(abstractType)) {
|
|
12
12
|
return this.persistence.getTypeById(context.gitAdapter, context.getCurrentRef(), obj.id);
|
|
13
13
|
}
|
|
14
14
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-type-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/union-type-resolver-generator.ts"],"names":[],"mappings":";;;AASA,MAAa,0BAA0B;IACrC,YACmB,WAA+B,EAC/B,
|
|
1
|
+
{"version":3,"file":"union-type-resolver-generator.js","sourceRoot":"","sources":["../../../src/graphql/resolver-generators/union-type-resolver-generator.ts"],"names":[],"mappings":";;;AASA,MAAa,0BAA0B;IACrC,YACmB,WAA+B,EAC/B,aAA4B;QAD5B,gBAAW,GAAX,WAAW,CAAoB;QAC/B,kBAAa,GAAb,aAAa,CAAe;IAC5C,CAAC;IAEG,cAAc;QACnB,OAAO,KAAK,EACV,GAAQ,EACR,OAAsB,EACtB,IAAwB,EACxB,YAAiC,EAChB,EAAE;YACnB,IAAI,IAAI,CAAC,aAAa,CAAC,8BAA8B,CAAC,YAAY,CAAC,EAAE;gBACnE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CACjC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,GAAG,CAAC,EAAE,CACP,CAAA;aACF;iBAAM;gBAGL,OAAO,GAAG,CAAC,UAAU,CAAA;aACtB;QAGH,CAAC,CAAA;IACH,CAAC;CACF;AA5BD,gEA4BC"}
|
|
@@ -1,10 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GraphQLObjectType, GraphQLSchema } from 'graphql';
|
|
2
2
|
import { GraphQLInterfaceType, GraphQLUnionType } from 'graphql/type/definition';
|
|
3
|
-
import { ApolloContext } from '../app/api.service';
|
|
4
|
-
import { EntryReferenceUtil } from './schema-utils/entry-reference-util';
|
|
5
3
|
export declare class SchemaAnalyzerService {
|
|
6
|
-
private readonly entryReferenceUtil;
|
|
7
|
-
constructor(entryReferenceUtil: EntryReferenceUtil);
|
|
8
4
|
analyzeSchema(schema: GraphQLSchema): ISchemaAnalyzerResult;
|
|
9
5
|
}
|
|
10
6
|
export interface ISchemaAnalyzerResult {
|
|
@@ -12,8 +8,4 @@ export interface ISchemaAnalyzerResult {
|
|
|
12
8
|
objectTypes: GraphQLObjectType[];
|
|
13
9
|
interfaceTypes: GraphQLInterfaceType[];
|
|
14
10
|
unionTypes: GraphQLUnionType[];
|
|
15
|
-
typesWithEntryReferences: {
|
|
16
|
-
type: GraphQLObjectType<any, ApolloContext>;
|
|
17
|
-
fields: GraphQLField<any, ApolloContext>[];
|
|
18
|
-
}[];
|
|
19
11
|
}
|
|
@@ -1,46 +1,35 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SchemaAnalyzerService = void 0;
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
4
5
|
const utils_1 = require("@graphql-tools/utils");
|
|
5
|
-
const kinds_1 = require("graphql/language/kinds");
|
|
6
6
|
class SchemaAnalyzerService {
|
|
7
|
-
constructor(entryReferenceUtil) {
|
|
8
|
-
this.entryReferenceUtil = entryReferenceUtil;
|
|
9
|
-
}
|
|
10
7
|
analyzeSchema(schema) {
|
|
11
|
-
var _a
|
|
8
|
+
var _a;
|
|
12
9
|
const result = {
|
|
13
10
|
entryDirectiveTypes: [],
|
|
14
11
|
objectTypes: [],
|
|
15
12
|
interfaceTypes: [],
|
|
16
13
|
unionTypes: [],
|
|
17
|
-
typesWithEntryReferences: [],
|
|
18
14
|
};
|
|
19
15
|
const typeMap = schema.getTypeMap();
|
|
20
16
|
for (const [key, type] of Object.entries(typeMap)) {
|
|
21
17
|
if (key.startsWith('__')) {
|
|
22
18
|
continue;
|
|
23
19
|
}
|
|
24
|
-
if ((
|
|
20
|
+
if ((0, graphql_1.isObjectType)(type)) {
|
|
25
21
|
const objectType = type;
|
|
26
22
|
result.objectTypes.push(objectType);
|
|
27
|
-
const entityDirective = (
|
|
23
|
+
const entityDirective = (_a = (0, utils_1.getDirective)(schema, objectType, 'Entry')) === null || _a === void 0 ? void 0 : _a[0];
|
|
28
24
|
if (entityDirective) {
|
|
29
25
|
result.entryDirectiveTypes.push(objectType);
|
|
30
26
|
}
|
|
31
|
-
const fieldsWithEntryReference = this.entryReferenceUtil.getFieldsWithReferenceToTypeWithEntryDirective(objectType);
|
|
32
|
-
if (fieldsWithEntryReference.length > 0) {
|
|
33
|
-
result.typesWithEntryReferences.push({
|
|
34
|
-
type: objectType,
|
|
35
|
-
fields: fieldsWithEntryReference,
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
27
|
}
|
|
39
|
-
if ((
|
|
28
|
+
if ((0, graphql_1.isInterfaceType)(type)) {
|
|
40
29
|
const interfaceType = type;
|
|
41
30
|
result.interfaceTypes.push(interfaceType);
|
|
42
31
|
}
|
|
43
|
-
if ((
|
|
32
|
+
if ((0, graphql_1.isUnionType)(type)) {
|
|
44
33
|
const unionType = type;
|
|
45
34
|
result.unionTypes.push(unionType);
|
|
46
35
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-analyzer.service.js","sourceRoot":"","sources":["../../src/graphql/schema-analyzer.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema-analyzer.service.js","sourceRoot":"","sources":["../../src/graphql/schema-analyzer.service.ts"],"names":[],"mappings":";;;AAAA,qCAMgB;AAChB,gDAAmD;AAGnD,MAAa,qBAAqB;IACzB,aAAa,CAAC,MAAqB;;QACxC,MAAM,MAAM,GAA0B;YACpC,mBAAmB,EAAE,EAAE;YACvB,WAAW,EAAE,EAAE;YACf,cAAc,EAAE,EAAE;YAClB,UAAU,EAAE,EAAE;SACf,CAAA;QAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;QAEnC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YACjD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;gBACxB,SAAQ;aACT;YAED,IAAI,IAAA,sBAAY,EAAC,IAAI,CAAC,EAAE;gBACtB,MAAM,UAAU,GAAG,IAAyB,CAAA;gBAC5C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACnC,MAAM,eAAe,GAAG,MAAA,IAAA,oBAAY,EAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,0CAAG,CAAC,CAAC,CAAA;gBACtE,IAAI,eAAe,EAAE;oBACnB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;iBAC5C;aACF;YAED,IAAI,IAAA,yBAAe,EAAC,IAAI,CAAC,EAAE;gBACzB,MAAM,aAAa,GAAG,IAA4B,CAAA;gBAClD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;aAC1C;YAED,IAAI,IAAA,qBAAW,EAAC,IAAI,CAAC,EAAE;gBACrB,MAAM,SAAS,GAAG,IAAwB,CAAA;gBAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;aAClC;SACF;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAtCD,sDAsCC"}
|
|
@@ -3,20 +3,18 @@ import { IExecutableSchemaDefinition } from '@graphql-tools/schema';
|
|
|
3
3
|
import { SchemaAnalyzerService } from './schema-analyzer.service';
|
|
4
4
|
import { InputTypeGeneratorService } from './input-type-generator.service';
|
|
5
5
|
import { SchemaRootTypeGeneratorService } from './schema-root-type-generator.service';
|
|
6
|
-
import { EntryReferenceResolverGenerator } from './resolver-generators/entry-reference-resolver.generator';
|
|
7
6
|
import { UnionTypeResolverGenerator } from './resolver-generators/union-type-resolver-generator';
|
|
8
7
|
import { ApolloContext } from '../app/api.service';
|
|
9
8
|
import { SchemaValidator } from './schema-validator';
|
|
10
|
-
import {
|
|
9
|
+
import { ObjectTypeFieldDefaultValueResolverGenerator } from './resolver-generators/object-type-field-default-value-resolver-generator';
|
|
11
10
|
export declare class SchemaGeneratorService {
|
|
12
11
|
private readonly queriesMutationsGenerator;
|
|
13
12
|
private readonly schemaAnalyzer;
|
|
14
13
|
private readonly inputTypeGenerator;
|
|
15
14
|
private readonly schemaRootTypeGenerator;
|
|
16
|
-
private readonly entryReferenceResolverGenerator;
|
|
17
15
|
private readonly unionTypeResolverGenerator;
|
|
18
|
-
private readonly
|
|
16
|
+
private readonly objectTypeFieldDefaultValueResolverGenerator;
|
|
19
17
|
private readonly schemaValidator;
|
|
20
|
-
constructor(queriesMutationsGenerator: QueriesMutationsGeneratorService, schemaAnalyzer: SchemaAnalyzerService, inputTypeGenerator: InputTypeGeneratorService, schemaRootTypeGenerator: SchemaRootTypeGeneratorService,
|
|
18
|
+
constructor(queriesMutationsGenerator: QueriesMutationsGeneratorService, schemaAnalyzer: SchemaAnalyzerService, inputTypeGenerator: InputTypeGeneratorService, schemaRootTypeGenerator: SchemaRootTypeGeneratorService, unionTypeResolverGenerator: UnionTypeResolverGenerator, objectTypeFieldDefaultValueResolverGenerator: ObjectTypeFieldDefaultValueResolverGenerator, schemaValidator: SchemaValidator);
|
|
21
19
|
generateSchema(context: ApolloContext): Promise<IExecutableSchemaDefinition>;
|
|
22
20
|
}
|
|
@@ -4,14 +4,13 @@ exports.SchemaGeneratorService = void 0;
|
|
|
4
4
|
const schema_1 = require("@graphql-tools/schema");
|
|
5
5
|
const utils_1 = require("@graphql-tools/utils");
|
|
6
6
|
class SchemaGeneratorService {
|
|
7
|
-
constructor(queriesMutationsGenerator, schemaAnalyzer, inputTypeGenerator, schemaRootTypeGenerator,
|
|
7
|
+
constructor(queriesMutationsGenerator, schemaAnalyzer, inputTypeGenerator, schemaRootTypeGenerator, unionTypeResolverGenerator, objectTypeFieldDefaultValueResolverGenerator, schemaValidator) {
|
|
8
8
|
this.queriesMutationsGenerator = queriesMutationsGenerator;
|
|
9
9
|
this.schemaAnalyzer = schemaAnalyzer;
|
|
10
10
|
this.inputTypeGenerator = inputTypeGenerator;
|
|
11
11
|
this.schemaRootTypeGenerator = schemaRootTypeGenerator;
|
|
12
|
-
this.entryReferenceResolverGenerator = entryReferenceResolverGenerator;
|
|
13
12
|
this.unionTypeResolverGenerator = unionTypeResolverGenerator;
|
|
14
|
-
this.
|
|
13
|
+
this.objectTypeFieldDefaultValueResolverGenerator = objectTypeFieldDefaultValueResolverGenerator;
|
|
15
14
|
this.schemaValidator = schemaValidator;
|
|
16
15
|
}
|
|
17
16
|
async generateSchema(context) {
|
|
@@ -30,10 +29,6 @@ class SchemaGeneratorService {
|
|
|
30
29
|
const generatedQueriesMutations = this.queriesMutationsGenerator.generateFromAnalyzedSchema(schemaAnalyzerResult.entryDirectiveTypes);
|
|
31
30
|
const generatedTypeNameQuery = this.queriesMutationsGenerator.generateTypeNameQuery();
|
|
32
31
|
const generatedEntryReferenceResolvers = {};
|
|
33
|
-
for (const type of schemaAnalyzerResult.typesWithEntryReferences) {
|
|
34
|
-
generatedEntryReferenceResolvers[type.type.name] =
|
|
35
|
-
this.entryReferenceResolverGenerator.createResolver(context, type);
|
|
36
|
-
}
|
|
37
32
|
const generatedObjectInputTypeStrings = this.inputTypeGenerator.generateObjectInputTypeStrings(schemaAnalyzerResult.objectTypes);
|
|
38
33
|
const generatedUnionInputTypeStrings = this.inputTypeGenerator.generateUnionInputTypeStrings(schemaAnalyzerResult.unionTypes);
|
|
39
34
|
const generatedSchemaRootTypeStrings = this.schemaRootTypeGenerator.generateSchemaRootTypeStrings(generatedQueriesMutations, generatedTypeNameQuery);
|
|
@@ -52,10 +47,10 @@ class SchemaGeneratorService {
|
|
|
52
47
|
__resolveType: this.unionTypeResolverGenerator.createResolver(),
|
|
53
48
|
};
|
|
54
49
|
}
|
|
55
|
-
const
|
|
50
|
+
const generatedObjectTypeFieldDefaultValueResolvers = this.objectTypeFieldDefaultValueResolverGenerator.createResolver(schema);
|
|
56
51
|
const generatedQueryResolvers = {};
|
|
57
52
|
const generatedMutationResolvers = {};
|
|
58
|
-
|
|
53
|
+
for (const element of generatedQueriesMutations) {
|
|
59
54
|
generatedQueryResolvers[element.queryAll.name] = element.queryAll.resolver;
|
|
60
55
|
generatedQueryResolvers[element.queryAllMeta.name] =
|
|
61
56
|
element.queryAllMeta.resolver;
|
|
@@ -67,7 +62,7 @@ class SchemaGeneratorService {
|
|
|
67
62
|
element.updateMutation.resolver;
|
|
68
63
|
generatedMutationResolvers[element.deleteMutation.name] =
|
|
69
64
|
element.deleteMutation.resolver;
|
|
70
|
-
}
|
|
65
|
+
}
|
|
71
66
|
generatedQueryResolvers[generatedTypeNameQuery.name] =
|
|
72
67
|
generatedTypeNameQuery.resolver;
|
|
73
68
|
const allGeneratedResolvers = {
|
|
@@ -77,8 +72,8 @@ class SchemaGeneratorService {
|
|
|
77
72
|
for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
|
|
78
73
|
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_a = allGeneratedResolvers[typeName]) !== null && _a !== void 0 ? _a : {})), generatedUnionTypeResolvers[typeName]);
|
|
79
74
|
}
|
|
80
|
-
for (const typeName of Object.keys(
|
|
81
|
-
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_b = allGeneratedResolvers[typeName]) !== null && _b !== void 0 ? _b : {})),
|
|
75
|
+
for (const typeName of Object.keys(generatedObjectTypeFieldDefaultValueResolvers)) {
|
|
76
|
+
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_b = allGeneratedResolvers[typeName]) !== null && _b !== void 0 ? _b : {})), generatedObjectTypeFieldDefaultValueResolvers[typeName]);
|
|
82
77
|
}
|
|
83
78
|
for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
|
|
84
79
|
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_c = allGeneratedResolvers[typeName]) !== null && _c !== void 0 ? _c : {})), generatedEntryReferenceResolvers[typeName]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.service.js","sourceRoot":"","sources":["../../src/graphql/schema-generator.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"schema-generator.service.js","sourceRoot":"","sources":["../../src/graphql/schema-generator.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { GraphQLNullableType, GraphQLObjectType } from 'graphql';
|
|
2
|
+
import { ApolloContext } from '../../app/api.service';
|
|
3
|
+
import { PersistenceService } from '../../persistence/persistence.service';
|
|
4
|
+
import { UnionTypeUtil } from './union-type-util';
|
|
5
|
+
import { EntryTypeUtil } from './entry-type-util';
|
|
3
6
|
export declare class EntryReferenceUtil {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
+
private readonly persistence;
|
|
8
|
+
private readonly entryTypeUtil;
|
|
9
|
+
private readonly unionTypeUtil;
|
|
10
|
+
constructor(persistence: PersistenceService, entryTypeUtil: EntryTypeUtil, unionTypeUtil: UnionTypeUtil);
|
|
11
|
+
getReferencedEntryIds(rootType: GraphQLObjectType, context: ApolloContext, fieldName: string | null, type: GraphQLNullableType, data: any): Promise<string[]>;
|
|
12
|
+
private validateReference;
|
|
13
|
+
private isPermittedReferenceType;
|
|
7
14
|
}
|
|
@@ -1,42 +1,125 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.EntryReferenceUtil = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
4
|
+
const graphql_1 = require("graphql");
|
|
5
|
+
const GraphQLError_1 = require("graphql/error/GraphQLError");
|
|
6
6
|
class EntryReferenceUtil {
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
7
|
+
constructor(persistence, entryTypeUtil, unionTypeUtil) {
|
|
8
|
+
this.persistence = persistence;
|
|
9
|
+
this.entryTypeUtil = entryTypeUtil;
|
|
10
|
+
this.unionTypeUtil = unionTypeUtil;
|
|
11
|
+
}
|
|
12
|
+
async getReferencedEntryIds(rootType, context, fieldName, type, data) {
|
|
13
|
+
var _a;
|
|
14
|
+
if ((0, graphql_1.isNonNullType)(type)) {
|
|
15
|
+
return this.getReferencedEntryIds(rootType, context, fieldName, type.ofType, data);
|
|
16
|
+
}
|
|
17
|
+
else if ((0, graphql_1.isListType)(type)) {
|
|
18
|
+
let referencedEntryIds = [];
|
|
19
|
+
for (const element of data) {
|
|
20
|
+
referencedEntryIds = [
|
|
21
|
+
...referencedEntryIds,
|
|
22
|
+
...(await this.getReferencedEntryIds(rootType, context, fieldName, type.ofType, element)),
|
|
23
|
+
];
|
|
24
|
+
}
|
|
25
|
+
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
26
|
+
return referencedEntryIds;
|
|
27
|
+
}
|
|
28
|
+
else if ((0, graphql_1.isUnionType)(type)) {
|
|
29
|
+
if (this.entryTypeUtil.isUnionOfEntryTypes(type)) {
|
|
30
|
+
await this.validateReference(context, '', type, data);
|
|
31
|
+
return [data.id];
|
|
32
|
+
}
|
|
33
|
+
const unionTypeName = this.unionTypeUtil.getUnionTypeNameFromFieldValue(data);
|
|
34
|
+
const unionType = type
|
|
35
|
+
.getTypes()
|
|
36
|
+
.find((type) => type.name === unionTypeName);
|
|
37
|
+
if (!unionType) {
|
|
38
|
+
throw new Error(`Type "${unionTypeName}" found in field data is not a valid type for union type "${type.name}".`);
|
|
39
|
+
}
|
|
40
|
+
const unionValue = this.unionTypeUtil.getUnionValue(data);
|
|
41
|
+
return this.getReferencedEntryIds(rootType, context, fieldName, unionType, unionValue);
|
|
42
|
+
}
|
|
43
|
+
else if ((0, graphql_1.isObjectType)(type)) {
|
|
44
|
+
if (type.name !== rootType.name &&
|
|
45
|
+
this.entryTypeUtil.hasEntryDirective(type)) {
|
|
46
|
+
await this.validateReference(context, fieldName !== null && fieldName !== void 0 ? fieldName : '', type, data);
|
|
47
|
+
return [data.id];
|
|
48
|
+
}
|
|
49
|
+
else {
|
|
50
|
+
let referencedEntryIds = [];
|
|
51
|
+
for (const [fieldsKey, field] of Object.entries(type.getFields())) {
|
|
52
|
+
const fieldValue = (_a = data[fieldsKey]) !== null && _a !== void 0 ? _a : undefined;
|
|
53
|
+
if (fieldValue !== undefined) {
|
|
54
|
+
const nestedResult = await this.getReferencedEntryIds(rootType, context, fieldsKey, field.type, fieldValue);
|
|
55
|
+
referencedEntryIds = [...referencedEntryIds, ...nestedResult];
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
59
|
+
return referencedEntryIds;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
return [];
|
|
63
|
+
}
|
|
64
|
+
async validateReference(context, fieldName, fieldType, fieldValue) {
|
|
65
|
+
if ((0, graphql_1.isNonNullType)(fieldType)) {
|
|
66
|
+
await this.validateReference(context, fieldName, fieldType.ofType, fieldValue);
|
|
67
|
+
return;
|
|
68
|
+
}
|
|
69
|
+
else if ((0, graphql_1.isListType)(fieldType)) {
|
|
70
|
+
if (!Array.isArray(fieldValue)) {
|
|
71
|
+
throw new Error(`Expected array value in field "${fieldName}"`);
|
|
72
|
+
}
|
|
73
|
+
for (const fieldListElement of fieldValue) {
|
|
74
|
+
await this.validateReference(context, fieldName, fieldType.ofType, fieldListElement);
|
|
75
|
+
}
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
else if ((0, graphql_1.isUnionType)(fieldType) || (0, graphql_1.isObjectType)(fieldType)) {
|
|
79
|
+
if (!('id' in fieldValue)) {
|
|
80
|
+
throw new Error('Expected key "id"');
|
|
81
|
+
}
|
|
82
|
+
const referencedId = fieldValue.id;
|
|
83
|
+
let referencedTypeName;
|
|
84
|
+
try {
|
|
85
|
+
referencedTypeName = await this.persistence.getTypeById(context.gitAdapter, context.getCurrentRef(), referencedId);
|
|
86
|
+
}
|
|
87
|
+
catch (error) {
|
|
88
|
+
throw new GraphQLError_1.GraphQLError(`Reference with id "${referencedId}" points to non-existing entry`, {
|
|
89
|
+
extensions: {
|
|
90
|
+
code: 'BAD_USER_INPUT',
|
|
91
|
+
fieldName: fieldName,
|
|
92
|
+
},
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
if (!this.isPermittedReferenceType(referencedTypeName, fieldType)) {
|
|
96
|
+
throw new GraphQLError_1.GraphQLError(`Reference with id "${referencedId}" points to entry of incompatible type`, {
|
|
97
|
+
extensions: {
|
|
98
|
+
code: 'BAD_USER_INPUT',
|
|
99
|
+
fieldName: fieldName,
|
|
100
|
+
},
|
|
101
|
+
});
|
|
13
102
|
}
|
|
14
103
|
}
|
|
15
|
-
return fields;
|
|
16
104
|
}
|
|
17
|
-
|
|
18
|
-
if (
|
|
19
|
-
return this.
|
|
105
|
+
isPermittedReferenceType(referencedTypeName, fieldType) {
|
|
106
|
+
if ((0, graphql_1.isNonNullType)(fieldType)) {
|
|
107
|
+
return this.isPermittedReferenceType(referencedTypeName, fieldType.ofType);
|
|
20
108
|
}
|
|
21
|
-
else if (
|
|
22
|
-
return this.
|
|
109
|
+
else if ((0, graphql_1.isListType)(fieldType)) {
|
|
110
|
+
return this.isPermittedReferenceType(referencedTypeName, fieldType.ofType);
|
|
23
111
|
}
|
|
24
|
-
else if (
|
|
25
|
-
return
|
|
112
|
+
else if ((0, graphql_1.isUnionType)(fieldType)) {
|
|
113
|
+
return fieldType
|
|
26
114
|
.getTypes()
|
|
27
|
-
.
|
|
28
|
-
.
|
|
115
|
+
.map((concreteType) => concreteType.name)
|
|
116
|
+
.includes(referencedTypeName);
|
|
29
117
|
}
|
|
30
|
-
else if (
|
|
31
|
-
return
|
|
118
|
+
else if ((0, graphql_1.isObjectType)(fieldType)) {
|
|
119
|
+
return fieldType.name === referencedTypeName;
|
|
32
120
|
}
|
|
33
121
|
return false;
|
|
34
122
|
}
|
|
35
|
-
hasEntryDirective(type) {
|
|
36
|
-
var _a;
|
|
37
|
-
return (!!type.astNode &&
|
|
38
|
-
((_a = type.astNode.directives) === null || _a === void 0 ? void 0 : _a.find((directive) => directive.name.value === 'Entry')) !== undefined);
|
|
39
|
-
}
|
|
40
123
|
}
|
|
41
124
|
exports.EntryReferenceUtil = EntryReferenceUtil;
|
|
42
125
|
//# sourceMappingURL=entry-reference-util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":";;;AAAA,
|
|
1
|
+
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { GraphQLNullableType, GraphQLObjectType, GraphQLUnionType } from 'graphql';
|
|
2
|
+
export declare class EntryTypeUtil {
|
|
3
|
+
buildsOnTypeWithEntryDirective(type: GraphQLNullableType): boolean;
|
|
4
|
+
hasEntryDirective(type: GraphQLObjectType): boolean;
|
|
5
|
+
isUnionOfEntryTypes(type: GraphQLUnionType): boolean;
|
|
6
|
+
}
|