@commitspark/graphql-api 0.7.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.js +24 -0
- package/.prettierrc +6 -0
- package/CHANGELOG.md +83 -0
- package/LICENSE +15 -0
- package/README.md +223 -0
- package/dist/app/api.service.d.ts +31 -0
- package/dist/app/api.service.js +60 -0
- package/dist/app/api.service.js.map +1 -0
- package/dist/container.d.ts +2 -0
- package/dist/container.js +44 -0
- package/dist/container.js.map +1 -0
- package/dist/graphql/apollo-config-factory.service.d.ts +8 -0
- package/dist/graphql/apollo-config-factory.service.js +20 -0
- package/dist/graphql/apollo-config-factory.service.js.map +1 -0
- package/dist/graphql/input-type-generator.service.d.ts +12 -0
- package/dist/graphql/input-type-generator.service.js +86 -0
- package/dist/graphql/input-type-generator.service.js.map +1 -0
- package/dist/graphql/queries-mutations-generator.service.d.ts +39 -0
- package/dist/graphql/queries-mutations-generator.service.js +82 -0
- package/dist/graphql/queries-mutations-generator.service.js.map +1 -0
- package/dist/graphql/resolver-generators/entry-reference-resolver.generator.d.ts +12 -0
- package/dist/graphql/resolver-generators/entry-reference-resolver.generator.js +29 -0
- package/dist/graphql/resolver-generators/entry-reference-resolver.generator.js.map +1 -0
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +8 -0
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js +17 -0
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +8 -0
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js +19 -0
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/mutation-update.resolver-generator.d.ts +8 -0
- package/dist/graphql/resolver-generators/mutation-update.resolver-generator.js +17 -0
- package/dist/graphql/resolver-generators/mutation-update.resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/query-all-resolver-generator.d.ts +8 -0
- package/dist/graphql/resolver-generators/query-all-resolver-generator.js +15 -0
- package/dist/graphql/resolver-generators/query-all-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.d.ts +8 -0
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js +15 -0
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/query-count-all-resolver-generator.d.ts +9 -0
- package/dist/graphql/resolver-generators/query-count-all-resolver-generator.js +17 -0
- package/dist/graphql/resolver-generators/query-count-all-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts +8 -0
- package/dist/graphql/resolver-generators/query-type-by-id-resolver-generator.js +15 -0
- package/dist/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/union-type-resolver-generator.d.ts +10 -0
- package/dist/graphql/resolver-generators/union-type-resolver-generator.js +21 -0
- package/dist/graphql/resolver-generators/union-type-resolver-generator.js.map +1 -0
- package/dist/graphql/resolver-generators/union-value-resolver-generator.d.ts +13 -0
- package/dist/graphql/resolver-generators/union-value-resolver-generator.js +80 -0
- package/dist/graphql/resolver-generators/union-value-resolver-generator.js.map +1 -0
- package/dist/graphql/schema-analyzer.service.d.ts +19 -0
- package/dist/graphql/schema-analyzer.service.js +52 -0
- package/dist/graphql/schema-analyzer.service.js.map +1 -0
- package/dist/graphql/schema-generator.service.d.ts +22 -0
- package/dist/graphql/schema-generator.service.js +99 -0
- package/dist/graphql/schema-generator.service.js.map +1 -0
- package/dist/graphql/schema-root-type-generator.service.d.ts +4 -0
- package/dist/graphql/schema-root-type-generator.service.js +37 -0
- package/dist/graphql/schema-root-type-generator.service.js.map +1 -0
- package/dist/graphql/schema-utils/entry-reference-util.d.ts +7 -0
- package/dist/graphql/schema-utils/entry-reference-util.js +42 -0
- package/dist/graphql/schema-utils/entry-reference-util.js.map +1 -0
- package/dist/graphql/schema-validator.d.ts +5 -0
- package/dist/graphql/schema-validator.js +33 -0
- package/dist/graphql/schema-validator.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.js +11 -0
- package/dist/index.js.map +1 -0
- package/dist/persistence/persistence.service.d.ts +17 -0
- package/dist/persistence/persistence.service.js +110 -0
- package/dist/persistence/persistence.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -0
- package/package.json +34 -0
- package/src/app/api.service.ts +113 -0
- package/src/container.ts +92 -0
- package/src/graphql/apollo-config-factory.service.ts +21 -0
- package/src/graphql/input-type-generator.service.ts +114 -0
- package/src/graphql/queries-mutations-generator.service.ts +155 -0
- package/src/graphql/resolver-generators/entry-reference-resolver.generator.ts +71 -0
- package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +38 -0
- package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +35 -0
- package/src/graphql/resolver-generators/mutation-update.resolver-generator.ts +39 -0
- package/src/graphql/resolver-generators/query-all-resolver-generator.ts +27 -0
- package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +23 -0
- package/src/graphql/resolver-generators/query-count-all-resolver-generator.ts +29 -0
- package/src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts +27 -0
- package/src/graphql/resolver-generators/union-type-resolver-generator.ts +40 -0
- package/src/graphql/resolver-generators/union-value-resolver-generator.ts +116 -0
- package/src/graphql/schema-analyzer.service.ts +70 -0
- package/src/graphql/schema-generator.service.ts +190 -0
- package/src/graphql/schema-root-type-generator.service.ts +42 -0
- package/src/graphql/schema-utils/entry-reference-util.ts +49 -0
- package/src/graphql/schema-validator.ts +41 -0
- package/src/index.ts +8 -0
- package/src/persistence/persistence.service.ts +183 -0
- package/tsconfig.build.json +10 -0
- package/tsconfig.json +18 -0
- package/webpack.config.js +25 -0
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { QueriesMutationsGeneratorService } from './queries-mutations-generator.service';
|
|
2
|
+
import { IExecutableSchemaDefinition } from '@graphql-tools/schema';
|
|
3
|
+
import { SchemaAnalyzerService } from './schema-analyzer.service';
|
|
4
|
+
import { InputTypeGeneratorService } from './input-type-generator.service';
|
|
5
|
+
import { SchemaRootTypeGeneratorService } from './schema-root-type-generator.service';
|
|
6
|
+
import { EntryReferenceResolverGenerator } from './resolver-generators/entry-reference-resolver.generator';
|
|
7
|
+
import { UnionTypeResolverGenerator } from './resolver-generators/union-type-resolver-generator';
|
|
8
|
+
import { ApolloContext } from '../app/api.service';
|
|
9
|
+
import { SchemaValidator } from './schema-validator';
|
|
10
|
+
import { UnionValueResolverGenerator } from './resolver-generators/union-value-resolver-generator';
|
|
11
|
+
export declare class SchemaGeneratorService {
|
|
12
|
+
private readonly queriesMutationsGenerator;
|
|
13
|
+
private readonly schemaAnalyzer;
|
|
14
|
+
private readonly inputTypeGenerator;
|
|
15
|
+
private readonly schemaRootTypeGenerator;
|
|
16
|
+
private readonly entryReferenceResolverGenerator;
|
|
17
|
+
private readonly unionTypeResolverGenerator;
|
|
18
|
+
private readonly unionValueResolverGenerator;
|
|
19
|
+
private readonly schemaValidator;
|
|
20
|
+
constructor(queriesMutationsGenerator: QueriesMutationsGeneratorService, schemaAnalyzer: SchemaAnalyzerService, inputTypeGenerator: InputTypeGeneratorService, schemaRootTypeGenerator: SchemaRootTypeGeneratorService, entryReferenceResolverGenerator: EntryReferenceResolverGenerator, unionTypeResolverGenerator: UnionTypeResolverGenerator, unionValueResolverGenerator: UnionValueResolverGenerator, schemaValidator: SchemaValidator);
|
|
21
|
+
generateSchema(context: ApolloContext): Promise<IExecutableSchemaDefinition>;
|
|
22
|
+
}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaGeneratorService = void 0;
|
|
4
|
+
const schema_1 = require("@graphql-tools/schema");
|
|
5
|
+
const utils_1 = require("@graphql-tools/utils");
|
|
6
|
+
class SchemaGeneratorService {
|
|
7
|
+
constructor(queriesMutationsGenerator, schemaAnalyzer, inputTypeGenerator, schemaRootTypeGenerator, entryReferenceResolverGenerator, unionTypeResolverGenerator, unionValueResolverGenerator, schemaValidator) {
|
|
8
|
+
this.queriesMutationsGenerator = queriesMutationsGenerator;
|
|
9
|
+
this.schemaAnalyzer = schemaAnalyzer;
|
|
10
|
+
this.inputTypeGenerator = inputTypeGenerator;
|
|
11
|
+
this.schemaRootTypeGenerator = schemaRootTypeGenerator;
|
|
12
|
+
this.entryReferenceResolverGenerator = entryReferenceResolverGenerator;
|
|
13
|
+
this.unionTypeResolverGenerator = unionTypeResolverGenerator;
|
|
14
|
+
this.unionValueResolverGenerator = unionValueResolverGenerator;
|
|
15
|
+
this.schemaValidator = schemaValidator;
|
|
16
|
+
}
|
|
17
|
+
async generateSchema(context) {
|
|
18
|
+
var _a, _b, _c;
|
|
19
|
+
const originalSchemaString = await context.gitAdapter.getSchema(context.getCurrentRef());
|
|
20
|
+
const schema = (0, schema_1.makeExecutableSchema)({
|
|
21
|
+
typeDefs: originalSchemaString,
|
|
22
|
+
});
|
|
23
|
+
const validationResult = this.schemaValidator.getValidationResult(schema);
|
|
24
|
+
if (validationResult.length > 0) {
|
|
25
|
+
throw new Error(validationResult.join('\n'));
|
|
26
|
+
}
|
|
27
|
+
const schemaAnalyzerResult = this.schemaAnalyzer.analyzeSchema(schema);
|
|
28
|
+
const filteredOriginalSchemaString = (0, utils_1.printSchemaWithDirectives)(schema);
|
|
29
|
+
const generatedIdInputTypeStrings = this.inputTypeGenerator.generateIdInputTypeStrings(schemaAnalyzerResult);
|
|
30
|
+
const generatedQueriesMutations = this.queriesMutationsGenerator.generateFromAnalyzedSchema(schemaAnalyzerResult.entryDirectiveTypes);
|
|
31
|
+
const generatedTypeNameQuery = this.queriesMutationsGenerator.generateTypeNameQuery();
|
|
32
|
+
let generatedEntryReferenceResolvers = {};
|
|
33
|
+
for (const type of schemaAnalyzerResult.typesWithEntryReferences) {
|
|
34
|
+
generatedEntryReferenceResolvers[type.type.name] =
|
|
35
|
+
this.entryReferenceResolverGenerator.createResolver(context, type);
|
|
36
|
+
}
|
|
37
|
+
const generatedObjectInputTypeStrings = this.inputTypeGenerator.generateObjectInputTypeStrings(schemaAnalyzerResult.objectTypes);
|
|
38
|
+
const generatedUnionInputTypeStrings = this.inputTypeGenerator.generateUnionInputTypeStrings(schemaAnalyzerResult.unionTypes);
|
|
39
|
+
const generatedSchemaRootTypeStrings = this.schemaRootTypeGenerator.generateSchemaRootTypeStrings(generatedQueriesMutations, generatedTypeNameQuery);
|
|
40
|
+
const generatedSchemaString = 'schema {\n query: Query\n mutation: Mutation\n}\n\n' +
|
|
41
|
+
generatedSchemaRootTypeStrings +
|
|
42
|
+
'\n' +
|
|
43
|
+
'type ListMetadata {\n' +
|
|
44
|
+
' count: Int!\n' +
|
|
45
|
+
'}\n\n' +
|
|
46
|
+
'type DeletionResult {\n' +
|
|
47
|
+
' id: ID\n' +
|
|
48
|
+
'}\n';
|
|
49
|
+
const generatedUnionTypeResolvers = {};
|
|
50
|
+
for (const unionType of schemaAnalyzerResult.unionTypes) {
|
|
51
|
+
generatedUnionTypeResolvers[unionType.name] = {
|
|
52
|
+
__resolveType: this.unionTypeResolverGenerator.createResolver(),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const generatedUnionValueResolvers = this.unionValueResolverGenerator.createResolver(schema);
|
|
56
|
+
const generatedQueryResolvers = {};
|
|
57
|
+
const generatedMutationResolvers = {};
|
|
58
|
+
generatedQueriesMutations.forEach(function (element) {
|
|
59
|
+
generatedQueryResolvers[element.queryAll.name] = element.queryAll.resolver;
|
|
60
|
+
generatedQueryResolvers[element.queryAllMeta.name] =
|
|
61
|
+
element.queryAllMeta.resolver;
|
|
62
|
+
generatedQueryResolvers[element.queryById.name] =
|
|
63
|
+
element.queryById.resolver;
|
|
64
|
+
generatedMutationResolvers[element.createMutation.name] =
|
|
65
|
+
element.createMutation.resolver;
|
|
66
|
+
generatedMutationResolvers[element.updateMutation.name] =
|
|
67
|
+
element.updateMutation.resolver;
|
|
68
|
+
generatedMutationResolvers[element.deleteMutation.name] =
|
|
69
|
+
element.deleteMutation.resolver;
|
|
70
|
+
});
|
|
71
|
+
generatedQueryResolvers[generatedTypeNameQuery.name] =
|
|
72
|
+
generatedTypeNameQuery.resolver;
|
|
73
|
+
const allGeneratedResolvers = {
|
|
74
|
+
Query: generatedQueryResolvers,
|
|
75
|
+
Mutation: generatedMutationResolvers,
|
|
76
|
+
};
|
|
77
|
+
for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
|
|
78
|
+
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_a = allGeneratedResolvers[typeName]) !== null && _a !== void 0 ? _a : {})), generatedUnionTypeResolvers[typeName]);
|
|
79
|
+
}
|
|
80
|
+
for (const typeName of Object.keys(generatedUnionValueResolvers)) {
|
|
81
|
+
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_b = allGeneratedResolvers[typeName]) !== null && _b !== void 0 ? _b : {})), generatedUnionValueResolvers[typeName]);
|
|
82
|
+
}
|
|
83
|
+
for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
|
|
84
|
+
allGeneratedResolvers[typeName] = Object.assign(Object.assign({}, ((_c = allGeneratedResolvers[typeName]) !== null && _c !== void 0 ? _c : {})), generatedEntryReferenceResolvers[typeName]);
|
|
85
|
+
}
|
|
86
|
+
return {
|
|
87
|
+
typeDefs: [
|
|
88
|
+
filteredOriginalSchemaString,
|
|
89
|
+
generatedSchemaString,
|
|
90
|
+
generatedIdInputTypeStrings.join('\n'),
|
|
91
|
+
generatedObjectInputTypeStrings.join('\n'),
|
|
92
|
+
generatedUnionInputTypeStrings.join('\n'),
|
|
93
|
+
],
|
|
94
|
+
resolvers: allGeneratedResolvers,
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.SchemaGeneratorService = SchemaGeneratorService;
|
|
99
|
+
//# sourceMappingURL=schema-generator.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-generator.service.js","sourceRoot":"","sources":["../../src/graphql/schema-generator.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { IGeneratedQuery, IGeneratedSchema } from './queries-mutations-generator.service';
|
|
2
|
+
export declare class SchemaRootTypeGeneratorService {
|
|
3
|
+
generateSchemaRootTypeStrings(generatedSchemas: IGeneratedSchema[], typeQuery: IGeneratedQuery<Promise<string>>): string;
|
|
4
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaRootTypeGeneratorService = void 0;
|
|
4
|
+
class SchemaRootTypeGeneratorService {
|
|
5
|
+
generateSchemaRootTypeStrings(generatedSchemas, typeQuery) {
|
|
6
|
+
return (`type Query {\n` +
|
|
7
|
+
generatedSchemas
|
|
8
|
+
.map((generated) => ' ' + generated.queryAll.schemaString)
|
|
9
|
+
.join('\n') +
|
|
10
|
+
generatedSchemas
|
|
11
|
+
.map((generated) => ' ' + generated.queryAllMeta.schemaString)
|
|
12
|
+
.join('\n') +
|
|
13
|
+
generatedSchemas
|
|
14
|
+
.map((generated) => ' ' + generated.queryById.schemaString)
|
|
15
|
+
.join('\n') +
|
|
16
|
+
'\n' +
|
|
17
|
+
` ${typeQuery.schemaString}` +
|
|
18
|
+
'\n' +
|
|
19
|
+
'}\n' +
|
|
20
|
+
'type Mutation {\n' +
|
|
21
|
+
generatedSchemas
|
|
22
|
+
.map((generated) => ' ' + generated.createMutation.schemaString)
|
|
23
|
+
.join('\n') +
|
|
24
|
+
'\n' +
|
|
25
|
+
generatedSchemas
|
|
26
|
+
.map((generated) => ' ' + generated.updateMutation.schemaString)
|
|
27
|
+
.join('\n') +
|
|
28
|
+
'\n' +
|
|
29
|
+
generatedSchemas
|
|
30
|
+
.map((generated) => ' ' + generated.deleteMutation.schemaString)
|
|
31
|
+
.join('\n') +
|
|
32
|
+
'\n' +
|
|
33
|
+
'}\n');
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
exports.SchemaRootTypeGeneratorService = SchemaRootTypeGeneratorService;
|
|
37
|
+
//# sourceMappingURL=schema-root-type-generator.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-root-type-generator.service.js","sourceRoot":"","sources":["../../src/graphql/schema-root-type-generator.service.ts"],"names":[],"mappings":";;;AAKA,MAAa,8BAA8B;IAClC,6BAA6B,CAClC,gBAAoC,EACpC,SAA2C;QAE3C,OAAO,CACL,gBAAgB;YAChB,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC;iBAC1D,IAAI,CAAC,IAAI,CAAC;YACb,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;iBAC9D,IAAI,CAAC,IAAI,CAAC;YACb,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;iBAC3D,IAAI,CAAC,IAAI,CAAC;YACb,IAAI;YACJ,KAAK,SAAS,CAAC,YAAY,EAAE;YAC7B,IAAI;YACJ,KAAK;YACL,mBAAmB;YACnB,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;iBAChE,IAAI,CAAC,IAAI,CAAC;YACb,IAAI;YACJ,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;iBAChE,IAAI,CAAC,IAAI,CAAC;YACb,IAAI;YACJ,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;iBAChE,IAAI,CAAC,IAAI,CAAC;YACb,IAAI;YACJ,KAAK,CACN,CAAA;IACH,CAAC;CACF;AApCD,wEAoCC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { GraphQLField, GraphQLObjectType } from 'graphql/type';
|
|
2
|
+
import { GraphQLNullableType } from 'graphql/type/definition';
|
|
3
|
+
export declare class EntryReferenceUtil {
|
|
4
|
+
getFieldsWithReferenceToTypeWithEntryDirective(objectType: GraphQLObjectType): GraphQLField<any, any>[];
|
|
5
|
+
buildsOnTypeWithEntryDirective(type: GraphQLNullableType): boolean;
|
|
6
|
+
hasEntryDirective(type: GraphQLObjectType): boolean;
|
|
7
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EntryReferenceUtil = void 0;
|
|
4
|
+
const type_1 = require("graphql/type");
|
|
5
|
+
const definition_1 = require("graphql/type/definition");
|
|
6
|
+
class EntryReferenceUtil {
|
|
7
|
+
getFieldsWithReferenceToTypeWithEntryDirective(objectType) {
|
|
8
|
+
const fields = [];
|
|
9
|
+
for (const fieldsKey in objectType.getFields()) {
|
|
10
|
+
const field = objectType.getFields()[fieldsKey];
|
|
11
|
+
if (this.buildsOnTypeWithEntryDirective(field.type)) {
|
|
12
|
+
fields.push(field);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return fields;
|
|
16
|
+
}
|
|
17
|
+
buildsOnTypeWithEntryDirective(type) {
|
|
18
|
+
if (type instanceof type_1.GraphQLNonNull) {
|
|
19
|
+
return this.buildsOnTypeWithEntryDirective(type.ofType);
|
|
20
|
+
}
|
|
21
|
+
else if (type instanceof type_1.GraphQLList) {
|
|
22
|
+
return this.buildsOnTypeWithEntryDirective(type.ofType);
|
|
23
|
+
}
|
|
24
|
+
else if (type instanceof definition_1.GraphQLUnionType) {
|
|
25
|
+
return (type
|
|
26
|
+
.getTypes()
|
|
27
|
+
.filter((unionType) => this.buildsOnTypeWithEntryDirective(unionType))
|
|
28
|
+
.length > 0);
|
|
29
|
+
}
|
|
30
|
+
else if (type instanceof type_1.GraphQLObjectType) {
|
|
31
|
+
return this.hasEntryDirective(type);
|
|
32
|
+
}
|
|
33
|
+
return false;
|
|
34
|
+
}
|
|
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
|
+
}
|
|
41
|
+
exports.EntryReferenceUtil = EntryReferenceUtil;
|
|
42
|
+
//# sourceMappingURL=entry-reference-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":";;;AAAA,uCAKqB;AACrB,wDAA+E;AAE/E,MAAa,kBAAkB;IACtB,8CAA8C,CACnD,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,8BAA8B,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;gBACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;aACnB;SACF;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEM,8BAA8B,CAAC,IAAyB;QAC7D,IAAI,IAAI,YAAY,qBAAc,EAAE;YAClC,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACxD;aAAM,IAAI,IAAI,YAAY,kBAAW,EAAE;YACtC,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;SACxD;aAAM,IAAI,IAAI,YAAY,6BAAgB,EAAE;YAC3C,OAAO,CACL,IAAI;iBACD,QAAQ,EAAE;iBACV,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;iBACrE,MAAM,GAAG,CAAC,CACd,CAAA;SACF;aAAM,IAAI,IAAI,YAAY,wBAAiB,EAAE;YAC5C,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;SACpC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,iBAAiB,CAAC,IAAuB;;QAC9C,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,CAAA,MAAA,IAAI,CAAC,OAAO,CAAC,UAAU,0CAAE,IAAI,CAC3B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAChD,MAAK,SAAS,CAChB,CAAA;IACH,CAAC;CACF;AAxCD,gDAwCC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.SchemaValidator = void 0;
|
|
4
|
+
const kinds_1 = require("graphql/language/kinds");
|
|
5
|
+
class SchemaValidator {
|
|
6
|
+
getValidationResult(schema) {
|
|
7
|
+
const results = [];
|
|
8
|
+
results.push(this.checkUnionMembersConsistentUseOfEntryDirective(schema));
|
|
9
|
+
return results.filter((result) => result !== '');
|
|
10
|
+
}
|
|
11
|
+
checkUnionMembersConsistentUseOfEntryDirective(schema) {
|
|
12
|
+
var _a;
|
|
13
|
+
const typeMap = schema.getTypeMap();
|
|
14
|
+
for (const [key, type] of Object.entries(typeMap)) {
|
|
15
|
+
if (((_a = type.astNode) === null || _a === void 0 ? void 0 : _a.kind) !== kinds_1.Kind.UNION_TYPE_DEFINITION) {
|
|
16
|
+
continue;
|
|
17
|
+
}
|
|
18
|
+
const innerTypes = type.getTypes();
|
|
19
|
+
const numberUnionMembersWithEntryDirective = innerTypes.filter((innerType) => {
|
|
20
|
+
var _a;
|
|
21
|
+
return !!innerType.astNode &&
|
|
22
|
+
((_a = innerType.astNode.directives) === null || _a === void 0 ? void 0 : _a.find((directive) => directive.name.value === 'Entry')) !== undefined;
|
|
23
|
+
}).length;
|
|
24
|
+
if (numberUnionMembersWithEntryDirective !== 0 &&
|
|
25
|
+
numberUnionMembersWithEntryDirective !== innerTypes.length) {
|
|
26
|
+
return `Either all union members of "${type.name}" must have "@Entry" directive or none.`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
return '';
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.SchemaValidator = SchemaValidator;
|
|
33
|
+
//# sourceMappingURL=schema-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../src/graphql/schema-validator.ts"],"names":[],"mappings":";;;AACA,kDAA6C;AAG7C,MAAa,eAAe;IACnB,mBAAmB,CAAC,MAAqB;QAC9C,MAAM,OAAO,GAAG,EAAE,CAAA;QAClB,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,8CAA8C,CAAC,MAAM,CAAC,CAAC,CAAA;QACzE,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,EAAE,CAAC,CAAA;IAClD,CAAC;IAEO,8CAA8C,CACpD,MAAqB;;QAErB,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,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,MAAK,YAAI,CAAC,qBAAqB,EAAE;gBACrD,SAAQ;aACT;YACD,MAAM,UAAU,GAAI,IAAyB,CAAC,QAAQ,EAAE,CAAA;YAExD,MAAM,oCAAoC,GAAG,UAAU,CAAC,MAAM,CAC5D,CAAC,SAAS,EAAE,EAAE;;gBACZ,OAAA,CAAC,CAAC,SAAS,CAAC,OAAO;oBACnB,CAAA,MAAA,SAAS,CAAC,OAAO,CAAC,UAAU,0CAAE,IAAI,CAChC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAChD,MAAK,SAAS,CAAA;aAAA,CAClB,CAAC,MAAM,CAAA;YAER,IACE,oCAAoC,KAAK,CAAC;gBAC1C,oCAAoC,KAAK,UAAU,CAAC,MAAM,EAC1D;gBACA,OAAO,gCAAgC,IAAI,CAAC,IAAI,yCAAyC,CAAA;aAC1F;SACF;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CACF;AApCD,0CAoCC"}
|
package/dist/index.d.ts
ADDED
package/dist/index.js
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getApiService = exports.ApiService = void 0;
|
|
4
|
+
const api_service_1 = require("./app/api.service");
|
|
5
|
+
Object.defineProperty(exports, "ApiService", { enumerable: true, get: function () { return api_service_1.ApiService; } });
|
|
6
|
+
const container_1 = require("./container");
|
|
7
|
+
async function getApiService() {
|
|
8
|
+
return container_1.apiService;
|
|
9
|
+
}
|
|
10
|
+
exports.getApiService = getApiService;
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,mDAA8C;AAGrC,2FAHA,wBAAU,OAGA;AAFnB,2CAAwC;AAIjC,KAAK,UAAU,aAAa;IACjC,OAAO,sBAAU,CAAA;AACnB,CAAC;AAFD,sCAEC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { GitAdapter } from '@commitspark/git-adapter';
|
|
2
|
+
export declare class PersistenceService {
|
|
3
|
+
constructor();
|
|
4
|
+
getTypeById(gitAdapter: GitAdapter, commitHash: string, id: ID): Promise<string>;
|
|
5
|
+
findById(gitAdapter: GitAdapter, commitHash: string, id: ID): Promise<Entry>;
|
|
6
|
+
findByType(gitAdapter: GitAdapter, commitHash: string, type: string): Promise<Entry[]>;
|
|
7
|
+
findByTypeId(gitAdapter: GitAdapter, commitHash: string, type: string, id: ID): Promise<Entry>;
|
|
8
|
+
createType(gitAdapter: GitAdapter, branch: string, commitHash: string, type: string, data: Entry, message: string): Promise<CommitResult>;
|
|
9
|
+
updateByTypeId(gitAdapter: GitAdapter, branch: string, commitHash: string, type: string, id: ID, data: Entry, message: string): Promise<CommitResult>;
|
|
10
|
+
deleteByTypeId(gitAdapter: GitAdapter, branch: string, commitHash: string, type: string, id: ID, message: string): Promise<CommitResult>;
|
|
11
|
+
}
|
|
12
|
+
export interface CommitResult {
|
|
13
|
+
id: ID;
|
|
14
|
+
ref: string;
|
|
15
|
+
}
|
|
16
|
+
export type ID = string;
|
|
17
|
+
export type Entry = Record<string, unknown>;
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PersistenceService = void 0;
|
|
4
|
+
const uuid_1 = require("uuid");
|
|
5
|
+
class PersistenceService {
|
|
6
|
+
constructor() { }
|
|
7
|
+
async getTypeById(gitAdapter, commitHash, id) {
|
|
8
|
+
const allEntries = await gitAdapter.getContentEntries(commitHash);
|
|
9
|
+
const requestedEntry = allEntries.filter((contentEntry) => contentEntry.id === id)[0];
|
|
10
|
+
if (requestedEntry === undefined) {
|
|
11
|
+
throw new Error(`Not found: ${id}`);
|
|
12
|
+
}
|
|
13
|
+
return requestedEntry.metadata.type;
|
|
14
|
+
}
|
|
15
|
+
async findById(gitAdapter, commitHash, id) {
|
|
16
|
+
const allEntries = await gitAdapter.getContentEntries(commitHash);
|
|
17
|
+
const requestedEntry = allEntries.filter((contentEntry) => contentEntry.id === id)[0];
|
|
18
|
+
if (requestedEntry === undefined) {
|
|
19
|
+
throw new Error(`Not found: ${id}`);
|
|
20
|
+
}
|
|
21
|
+
return Object.assign(Object.assign({}, requestedEntry.data), { id: id });
|
|
22
|
+
}
|
|
23
|
+
async findByType(gitAdapter, commitHash, type) {
|
|
24
|
+
const allEntries = await gitAdapter.getContentEntries(commitHash);
|
|
25
|
+
return allEntries
|
|
26
|
+
.filter((contentEntry) => contentEntry.metadata.type === type)
|
|
27
|
+
.map((value) => (Object.assign(Object.assign({}, value.data), { id: value.id })));
|
|
28
|
+
}
|
|
29
|
+
async findByTypeId(gitAdapter, commitHash, type, id) {
|
|
30
|
+
const allEntries = await gitAdapter.getContentEntries(commitHash);
|
|
31
|
+
const requestedEntry = allEntries.filter((contentEntry) => contentEntry.id === id)[0];
|
|
32
|
+
if (requestedEntry === undefined || requestedEntry.metadata.type !== type) {
|
|
33
|
+
throw new Error(`Not found: ${type}, ${id}`);
|
|
34
|
+
}
|
|
35
|
+
return Object.assign(Object.assign({}, requestedEntry.data), { id: id });
|
|
36
|
+
}
|
|
37
|
+
async createType(gitAdapter, branch, commitHash, type, data, message) {
|
|
38
|
+
const id = (0, uuid_1.v4)();
|
|
39
|
+
const commit = await gitAdapter.createCommit({
|
|
40
|
+
ref: branch,
|
|
41
|
+
parentSha: commitHash,
|
|
42
|
+
contentEntries: [
|
|
43
|
+
{
|
|
44
|
+
id: id,
|
|
45
|
+
data: data,
|
|
46
|
+
metadata: {
|
|
47
|
+
type: type,
|
|
48
|
+
},
|
|
49
|
+
deletion: false,
|
|
50
|
+
},
|
|
51
|
+
],
|
|
52
|
+
message: message,
|
|
53
|
+
});
|
|
54
|
+
return {
|
|
55
|
+
id,
|
|
56
|
+
ref: commit.ref,
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
async updateByTypeId(gitAdapter, branch, commitHash, type, id, data, message) {
|
|
60
|
+
const allEntries = await gitAdapter.getContentEntries(commitHash);
|
|
61
|
+
const requestedEntry = allEntries.filter((contentEntry) => contentEntry.id === id)[0];
|
|
62
|
+
if (requestedEntry === undefined || requestedEntry.metadata.type !== type) {
|
|
63
|
+
throw new Error(`Not found: ${type}, ${id}`);
|
|
64
|
+
}
|
|
65
|
+
const newData = Object.assign(Object.assign({}, requestedEntry.data), data);
|
|
66
|
+
const commit = await gitAdapter.createCommit({
|
|
67
|
+
ref: branch,
|
|
68
|
+
parentSha: commitHash,
|
|
69
|
+
contentEntries: [
|
|
70
|
+
{
|
|
71
|
+
id: id,
|
|
72
|
+
data: newData,
|
|
73
|
+
metadata: requestedEntry.metadata,
|
|
74
|
+
deletion: false,
|
|
75
|
+
},
|
|
76
|
+
],
|
|
77
|
+
message: message,
|
|
78
|
+
});
|
|
79
|
+
return {
|
|
80
|
+
id,
|
|
81
|
+
ref: commit.ref,
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
async deleteByTypeId(gitAdapter, branch, commitHash, type, id, message) {
|
|
85
|
+
const allEntries = await gitAdapter.getContentEntries(commitHash);
|
|
86
|
+
const requestedEntry = allEntries.filter((contentEntry) => contentEntry.id === id)[0];
|
|
87
|
+
if (requestedEntry === undefined || requestedEntry.metadata.type !== type) {
|
|
88
|
+
throw new Error(`Not found: ${type}, ${id}`);
|
|
89
|
+
}
|
|
90
|
+
const commit = await gitAdapter.createCommit({
|
|
91
|
+
ref: branch,
|
|
92
|
+
parentSha: commitHash,
|
|
93
|
+
contentEntries: [
|
|
94
|
+
{
|
|
95
|
+
id: id,
|
|
96
|
+
data: {},
|
|
97
|
+
metadata: requestedEntry.metadata,
|
|
98
|
+
deletion: true,
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
message: message,
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
id,
|
|
105
|
+
ref: commit.ref,
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
exports.PersistenceService = PersistenceService;
|
|
110
|
+
//# sourceMappingURL=persistence.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.service.js","sourceRoot":"","sources":["../../src/persistence/persistence.service.ts"],"names":[],"mappings":"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"}
|