@commitspark/graphql-api 0.80.0 → 0.81.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +17 -0
- package/dist/cjs/app/api.service.js +74 -0
- package/dist/cjs/app/api.service.js.map +1 -0
- package/dist/{container.js → cjs/container.js} +13 -12
- package/dist/cjs/container.js.map +1 -0
- package/dist/cjs/graphql/apollo-config-factory.service.js +31 -0
- package/dist/cjs/graphql/apollo-config-factory.service.js.map +1 -0
- package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js +26 -0
- package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js.map +1 -0
- package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js.map +1 -0
- package/dist/cjs/graphql/field-resolver/fieldResolver.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/field-resolver/union-value-resolver.js +4 -0
- package/dist/cjs/graphql/field-resolver/union-value-resolver.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/input-type-generator.service.js +5 -3
- package/dist/cjs/graphql/input-type-generator.service.js.map +1 -0
- package/dist/cjs/graphql/queries-mutations-generator.service.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/resolver-generators/mutation-create-resolver-generator.js +21 -11
- package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/resolver-generators/mutation-delete-resolver-generator.js +16 -8
- package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/resolver-generators/mutation-update-resolver-generator.js +18 -9
- package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js +27 -0
- package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolver-generators/query-by-id-resolver-generator.js +25 -0
- package/dist/cjs/graphql/resolver-generators/query-by-id-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolver-generators/query-count-all-resolver-generator.js +26 -0
- package/dist/cjs/graphql/resolver-generators/query-count-all-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolver-generators/query-type-by-id-resolver-generator.js +24 -0
- package/dist/cjs/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js +33 -0
- package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/schema-analyzer.service.js.map +1 -0
- package/dist/cjs/graphql/schema-generator.service.js +103 -0
- package/dist/cjs/graphql/schema-generator.service.js.map +1 -0
- package/dist/cjs/graphql/schema-root-type-generator.service.js.map +1 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +139 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -0
- package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/schema-utils/union-type-util.js +2 -0
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -0
- package/dist/{graphql → cjs/graphql}/schema-validator.js +2 -2
- package/dist/cjs/graphql/schema-validator.js.map +1 -0
- package/dist/cjs/index.js +22 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/cjs/package.json +1 -0
- package/dist/cjs/persistence/persistence.service.js +66 -0
- package/dist/cjs/persistence/persistence.service.js.map +1 -0
- package/dist/{app → esm/app}/api.service.js +7 -7
- package/dist/esm/app/api.service.js.map +1 -0
- package/dist/esm/container.js +50 -0
- package/dist/esm/container.js.map +1 -0
- package/dist/esm/graphql/apollo-config-factory.service.js +17 -0
- package/dist/esm/graphql/apollo-config-factory.service.js.map +1 -0
- package/dist/{graphql → esm/graphql}/field-resolver/entry-reference-resolver.js +4 -6
- package/dist/esm/graphql/field-resolver/entry-reference-resolver.js.map +1 -0
- package/dist/esm/graphql/field-resolver/field-default-value-resolver.js +73 -0
- package/dist/esm/graphql/field-resolver/field-default-value-resolver.js.map +1 -0
- package/dist/esm/graphql/field-resolver/fieldResolver.js +2 -0
- package/dist/esm/graphql/field-resolver/fieldResolver.js.map +1 -0
- package/dist/esm/graphql/field-resolver/union-value-resolver.js +22 -0
- package/dist/esm/graphql/field-resolver/union-value-resolver.js.map +1 -0
- package/dist/esm/graphql/input-type-generator.service.js +94 -0
- package/dist/esm/graphql/input-type-generator.service.js.map +1 -0
- package/dist/esm/graphql/queries-mutations-generator.service.js +85 -0
- package/dist/esm/graphql/queries-mutations-generator.service.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js +78 -0
- package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js +58 -0
- package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js +67 -0
- package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +55 -0
- package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js +15 -0
- package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js +13 -0
- package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js.map +1 -0
- package/dist/{graphql → esm/graphql}/resolver-generators/query-count-all-resolver-generator.js +2 -5
- package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js +12 -0
- package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +1 -0
- package/dist/{graphql → esm/graphql}/resolver-generators/union-type-resolver-generator.js +6 -5
- package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/schema-analyzer.service.js +36 -0
- package/dist/esm/graphql/schema-analyzer.service.js.map +1 -0
- package/dist/{graphql → esm/graphql}/schema-generator.service.js +24 -13
- package/dist/esm/graphql/schema-generator.service.js.map +1 -0
- package/dist/esm/graphql/schema-root-type-generator.service.js +35 -0
- package/dist/esm/graphql/schema-root-type-generator.service.js.map +1 -0
- package/dist/{graphql → esm/graphql}/schema-utils/entry-reference-util.js +22 -23
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -0
- package/dist/esm/graphql/schema-utils/entry-type-util.js +29 -0
- package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -0
- package/dist/esm/graphql/schema-utils/union-type-util.js +18 -0
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -0
- package/dist/esm/graphql/schema-validator.js +25 -0
- package/dist/esm/graphql/schema-validator.js.map +1 -0
- package/dist/esm/index.js +7 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/{persistence → esm/persistence}/persistence.service.js +5 -9
- package/dist/esm/persistence/persistence.service.js.map +1 -0
- package/dist/tsconfig.build.cjs.tsbuildinfo +1 -0
- package/dist/tsconfig.build.esm.tsbuildinfo +1 -0
- package/dist/tsconfig.build.types.tsbuildinfo +1 -0
- package/dist/{app → types/app}/api.service.d.ts +8 -5
- package/dist/types/app/api.service.d.ts.map +1 -0
- package/dist/{container.d.ts → types/container.d.ts} +1 -0
- package/dist/types/container.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/apollo-config-factory.service.d.ts +1 -0
- package/dist/types/graphql/apollo-config-factory.service.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/field-resolver/entry-reference-resolver.d.ts +3 -2
- package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/field-resolver/field-default-value-resolver.d.ts +3 -2
- package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/field-resolver/fieldResolver.d.ts +2 -2
- package/dist/types/graphql/field-resolver/fieldResolver.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/field-resolver/union-value-resolver.d.ts +2 -1
- package/dist/types/graphql/field-resolver/union-value-resolver.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/input-type-generator.service.d.ts +1 -0
- package/dist/types/graphql/input-type-generator.service.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/queries-mutations-generator.service.d.ts +2 -2
- package/dist/types/graphql/queries-mutations-generator.service.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/mutation-create-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/mutation-delete-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/mutation-update-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +2 -2
- package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/query-all-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/query-by-id-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/query-count-all-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/query-type-by-id-resolver-generator.d.ts +2 -1
- package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/resolver-generators/union-type-resolver-generator.d.ts +1 -0
- package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-analyzer.service.d.ts +2 -2
- package/dist/types/graphql/schema-analyzer.service.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-generator.service.d.ts +1 -0
- package/dist/types/graphql/schema-generator.service.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-root-type-generator.service.d.ts +1 -0
- package/dist/types/graphql/schema-root-type-generator.service.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-utils/entry-reference-util.d.ts +1 -0
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-utils/entry-type-util.d.ts +1 -0
- package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-utils/union-type-util.d.ts +1 -0
- package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -0
- package/dist/{graphql → types/graphql}/schema-validator.d.ts +1 -0
- package/dist/types/graphql/schema-validator.d.ts.map +1 -0
- package/dist/{index.d.ts → types/index.d.ts} +1 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/{persistence → types/persistence}/persistence.service.d.ts +1 -0
- package/dist/types/persistence/persistence.service.d.ts.map +1 -0
- package/package.json +31 -17
- package/src/app/api.service.ts +13 -7
- package/src/container.ts +12 -12
- package/src/graphql/field-resolver/entry-reference-resolver.ts +2 -2
- package/src/graphql/field-resolver/field-default-value-resolver.ts +2 -4
- package/src/graphql/field-resolver/fieldResolver.ts +1 -2
- package/src/graphql/field-resolver/union-value-resolver.ts +1 -1
- package/src/graphql/input-type-generator.service.ts +1 -1
- package/src/graphql/queries-mutations-generator.service.ts +1 -2
- package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +4 -4
- package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +1 -3
- package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +1 -2
- package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +4 -6
- package/src/graphql/resolver-generators/query-all-resolver-generator.ts +1 -1
- package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +1 -1
- package/src/graphql/resolver-generators/query-count-all-resolver-generator.ts +1 -1
- package/src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts +1 -1
- package/src/graphql/schema-analyzer.service.ts +2 -1
- package/src/graphql/schema-generator.service.ts +1 -4
- package/src/graphql/schema-utils/entry-reference-util.ts +1 -1
- package/src/graphql/schema-validator.ts +1 -3
- package/src/persistence/persistence.service.ts +1 -1
- package/dist/app/api.service.js.map +0 -1
- package/dist/container.js.map +0 -1
- package/dist/graphql/apollo-config-factory.service.js +0 -20
- package/dist/graphql/apollo-config-factory.service.js.map +0 -1
- package/dist/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
- package/dist/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
- package/dist/graphql/field-resolver/fieldResolver.js.map +0 -1
- package/dist/graphql/field-resolver/union-value-resolver.js.map +0 -1
- package/dist/graphql/input-type-generator.service.js.map +0 -1
- package/dist/graphql/queries-mutations-generator.service.js.map +0 -1
- package/dist/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/query-all-resolver-generator.js +0 -18
- package/dist/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js +0 -16
- package/dist/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/query-type-by-id-resolver-generator.js +0 -15
- package/dist/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
- package/dist/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
- package/dist/graphql/schema-analyzer.service.js.map +0 -1
- package/dist/graphql/schema-generator.service.js.map +0 -1
- package/dist/graphql/schema-root-type-generator.service.js.map +0 -1
- package/dist/graphql/schema-utils/entry-reference-util.js.map +0 -1
- package/dist/graphql/schema-utils/entry-type-util.js.map +0 -1
- package/dist/graphql/schema-utils/union-type-util.js.map +0 -1
- package/dist/graphql/schema-validator.js.map +0 -1
- package/dist/index.js +0 -11
- package/dist/index.js.map +0 -1
- package/dist/persistence/persistence.service.js.map +0 -1
- package/dist/tsconfig.build.tsbuildinfo +0 -1
- /package/dist/{graphql → cjs/graphql}/field-resolver/field-default-value-resolver.js +0 -0
- /package/dist/{graphql → cjs/graphql}/field-resolver/fieldResolver.js +0 -0
- /package/dist/{graphql → cjs/graphql}/queries-mutations-generator.service.js +0 -0
- /package/dist/{graphql → cjs/graphql}/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -0
- /package/dist/{graphql → cjs/graphql}/schema-analyzer.service.js +0 -0
- /package/dist/{graphql → cjs/graphql}/schema-root-type-generator.service.js +0 -0
- /package/dist/{graphql → cjs/graphql}/schema-utils/entry-type-util.js +0 -0
|
@@ -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":"AAAA,OAAO,EAML,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAMhB,MAAM,OAAO,4CAA4C;IAEpC;IADnB,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,CAAC;YACxD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;YACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtD,SAAQ;YACV,CAAC;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,CAAC;gBACxD,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAC3B,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACwD,EAAE,CAC9D,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;YACL,CAAC;YAED,IAAI,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC3C,SAAS,CAAC,QAAQ,CAAC,GAAG,cAAc,CAAA;YACtC,CAAC;QACH,CAAC;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,CAAC;YAC/C,MAAM,KAAK,GAA2B,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAA;YACvE,IAAI,IAAI,CAAC,kCAAkC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;gBACxD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;YACpB,CAAC;QACH,CAAC;QACD,OAAO,MAAM,CAAA;IACf,CAAC;IAEO,kCAAkC,CAAC,IAAuB;QAChE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7D,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAA;QACb,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAA;QACb,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export class QueryAllResolverGenerator {
|
|
2
|
+
persistence;
|
|
3
|
+
constructor(persistence) {
|
|
4
|
+
this.persistence = persistence;
|
|
5
|
+
}
|
|
6
|
+
createResolver(typeName) {
|
|
7
|
+
return async (obj, args, context, info) => {
|
|
8
|
+
const entries = await this.persistence.findByType(context.gitAdapter, context.getCurrentRef(), typeName);
|
|
9
|
+
return entries.map((entry) => {
|
|
10
|
+
return { ...entry.data, id: entry.id };
|
|
11
|
+
});
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=query-all-resolver-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-all-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolver-generators/query-all-resolver-generator.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,yBAAyB;IACP;IAA7B,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,EACkB,EAAE;YACxB,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,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;YACxC,CAAC,CAAC,CAAA;QACJ,CAAC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export class QueryByIdResolverGenerator {
|
|
2
|
+
persistence;
|
|
3
|
+
constructor(persistence) {
|
|
4
|
+
this.persistence = persistence;
|
|
5
|
+
}
|
|
6
|
+
createResolver(typeName) {
|
|
7
|
+
return async (obj, args, context, info) => {
|
|
8
|
+
const entry = await this.persistence.findByTypeId(context.gitAdapter, context.getCurrentRef(), typeName, args.id);
|
|
9
|
+
return { ...entry.data, id: entry.id };
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=query-by-id-resolver-generator.js.map
|
|
@@ -0,0 +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":"AAKA,MAAM,OAAO,0BAA0B;IACR;IAA7B,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,EAAsB,EAAE;YAC5D,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,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;QACxC,CAAC,CAAA;IACH,CAAC;CACF"}
|
package/dist/{graphql → esm/graphql}/resolver-generators/query-count-all-resolver-generator.js
RENAMED
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.QueryCountAllResolverGenerator = void 0;
|
|
4
|
-
class QueryCountAllResolverGenerator {
|
|
1
|
+
export class QueryCountAllResolverGenerator {
|
|
2
|
+
persistence;
|
|
5
3
|
constructor(persistence) {
|
|
6
4
|
this.persistence = persistence;
|
|
7
5
|
}
|
|
@@ -13,5 +11,4 @@ class QueryCountAllResolverGenerator {
|
|
|
13
11
|
};
|
|
14
12
|
}
|
|
15
13
|
}
|
|
16
|
-
exports.QueryCountAllResolverGenerator = QueryCountAllResolverGenerator;
|
|
17
14
|
//# sourceMappingURL=query-count-all-resolver-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-count-all-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolver-generators/query-count-all-resolver-generator.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,8BAA8B;IACZ;IAA7B,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,EACgB,EAAE;YACtB,OAAO;gBACL,KAAK,EAAE,CACL,MAAM,IAAI,CAAC,WAAW,CAAC,UAAU,CAC/B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,QAAQ,CACT,CACF,CAAC,MAAM;aACT,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export class QueryTypeByIdResolverGenerator {
|
|
2
|
+
persistence;
|
|
3
|
+
constructor(persistence) {
|
|
4
|
+
this.persistence = persistence;
|
|
5
|
+
}
|
|
6
|
+
createResolver() {
|
|
7
|
+
return async (source, args, context, info) => {
|
|
8
|
+
return this.persistence.getTypeById(context.gitAdapter, context.getCurrentRef(), args.id);
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=query-type-by-id-resolver-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-type-by-id-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts"],"names":[],"mappings":"AAIA,MAAM,OAAO,8BAA8B;IACZ;IAA7B,YAA6B,WAA+B;QAA/B,gBAAW,GAAX,WAAW,CAAoB;IAAG,CAAC;IAEzD,cAAc;QAMnB,OAAO,KAAK,EACV,MAAM,EACN,IAAI,EACJ,OAAsB,EACtB,IAAI,EACa,EAAE;YACnB,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CACjC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,IAAI,CAAC,EAAE,CACR,CAAA;QACH,CAAC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
class UnionTypeResolverGenerator {
|
|
1
|
+
export class UnionTypeResolverGenerator {
|
|
2
|
+
persistence;
|
|
3
|
+
entryTypeUtil;
|
|
5
4
|
constructor(persistence, entryTypeUtil) {
|
|
6
5
|
this.persistence = persistence;
|
|
7
6
|
this.entryTypeUtil = entryTypeUtil;
|
|
@@ -12,10 +11,12 @@ class UnionTypeResolverGenerator {
|
|
|
12
11
|
return this.persistence.getTypeById(context.gitAdapter, context.getCurrentRef(), obj.id);
|
|
13
12
|
}
|
|
14
13
|
else {
|
|
14
|
+
// We have injected an internal `__typename` field into the data of fields pointing to a non-entry union
|
|
15
|
+
// in UnionValueResolver. This artificial field holds the type information we need here.
|
|
15
16
|
return obj.__typename;
|
|
16
17
|
}
|
|
18
|
+
// TODO same for interface type: https://www.apollographql.com/docs/apollo-server/data/resolvers/#resolving-unions-and-interfaces
|
|
17
19
|
};
|
|
18
20
|
}
|
|
19
21
|
}
|
|
20
|
-
exports.UnionTypeResolverGenerator = UnionTypeResolverGenerator;
|
|
21
22
|
//# sourceMappingURL=union-type-resolver-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-type-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolver-generators/union-type-resolver-generator.ts"],"names":[],"mappings":"AASA,MAAM,OAAO,0BAA0B;IAElB;IACA;IAFnB,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,CAAC;gBACpE,OAAO,IAAI,CAAC,WAAW,CAAC,WAAW,CACjC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,GAAG,CAAC,EAAE,CACP,CAAA;YACH,CAAC;iBAAM,CAAC;gBACN,wGAAwG;gBACxG,wFAAwF;gBACxF,OAAO,GAAG,CAAC,UAAU,CAAA;YACvB,CAAC;YAED,iIAAiI;QACnI,CAAC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { isInterfaceType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
import { getDirective } from '@graphql-tools/utils';
|
|
3
|
+
export class SchemaAnalyzerService {
|
|
4
|
+
analyzeSchema(schema) {
|
|
5
|
+
const result = {
|
|
6
|
+
entryDirectiveTypes: [],
|
|
7
|
+
objectTypes: [],
|
|
8
|
+
interfaceTypes: [],
|
|
9
|
+
unionTypes: [],
|
|
10
|
+
};
|
|
11
|
+
const typeMap = schema.getTypeMap();
|
|
12
|
+
for (const [key, type] of Object.entries(typeMap)) {
|
|
13
|
+
if (key.startsWith('__')) {
|
|
14
|
+
continue;
|
|
15
|
+
}
|
|
16
|
+
if (isObjectType(type)) {
|
|
17
|
+
const objectType = type;
|
|
18
|
+
result.objectTypes.push(objectType);
|
|
19
|
+
const entityDirective = getDirective(schema, objectType, 'Entry')?.[0];
|
|
20
|
+
if (entityDirective) {
|
|
21
|
+
result.entryDirectiveTypes.push(objectType);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (isInterfaceType(type)) {
|
|
25
|
+
const interfaceType = type;
|
|
26
|
+
result.interfaceTypes.push(interfaceType);
|
|
27
|
+
}
|
|
28
|
+
if (isUnionType(type)) {
|
|
29
|
+
const unionType = type;
|
|
30
|
+
result.unionTypes.push(unionType);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=schema-analyzer.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-analyzer.service.js","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,EACf,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,OAAO,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,CAAC;YAClD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;gBACzB,SAAQ;YACV,CAAC;YAED,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,MAAM,UAAU,GAAG,IAAyB,CAAA;gBAC5C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBACnC,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;gBACtE,IAAI,eAAe,EAAE,CAAC;oBACpB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;gBAC7C,CAAC;YACH,CAAC;YAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC1B,MAAM,aAAa,GAAG,IAA4B,CAAA;gBAClD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;YAC3C,CAAC;YAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;gBACtB,MAAM,SAAS,GAAG,IAAwB,CAAA;gBAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAA;IACf,CAAC;CACF"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
1
|
+
import { makeExecutableSchema, } from '@graphql-tools/schema';
|
|
2
|
+
import { printSchemaWithDirectives } from '@graphql-tools/utils';
|
|
3
|
+
export class SchemaGeneratorService {
|
|
4
|
+
queriesMutationsGenerator;
|
|
5
|
+
schemaAnalyzer;
|
|
6
|
+
inputTypeGenerator;
|
|
7
|
+
schemaRootTypeGenerator;
|
|
8
|
+
unionTypeResolverGenerator;
|
|
9
|
+
objectTypeFieldDefaultValueResolverGenerator;
|
|
10
|
+
schemaValidator;
|
|
7
11
|
constructor(queriesMutationsGenerator, schemaAnalyzer, inputTypeGenerator, schemaRootTypeGenerator, unionTypeResolverGenerator, objectTypeFieldDefaultValueResolverGenerator, schemaValidator) {
|
|
8
12
|
this.queriesMutationsGenerator = queriesMutationsGenerator;
|
|
9
13
|
this.schemaAnalyzer = schemaAnalyzer;
|
|
@@ -14,9 +18,8 @@ class SchemaGeneratorService {
|
|
|
14
18
|
this.schemaValidator = schemaValidator;
|
|
15
19
|
}
|
|
16
20
|
async generateSchema(context) {
|
|
17
|
-
var _a, _b, _c;
|
|
18
21
|
const originalSchemaString = await context.gitAdapter.getSchema(context.getCurrentRef());
|
|
19
|
-
const schema =
|
|
22
|
+
const schema = makeExecutableSchema({
|
|
20
23
|
typeDefs: originalSchemaString,
|
|
21
24
|
});
|
|
22
25
|
const validationResult = this.schemaValidator.getValidationResult(schema);
|
|
@@ -24,7 +27,7 @@ class SchemaGeneratorService {
|
|
|
24
27
|
throw new Error(validationResult.join('\n'));
|
|
25
28
|
}
|
|
26
29
|
const schemaAnalyzerResult = this.schemaAnalyzer.analyzeSchema(schema);
|
|
27
|
-
const filteredOriginalSchemaString =
|
|
30
|
+
const filteredOriginalSchemaString = printSchemaWithDirectives(schema) + '\n';
|
|
28
31
|
const generatedIdInputTypeStrings = this.inputTypeGenerator.generateIdInputTypeStrings(schemaAnalyzerResult);
|
|
29
32
|
const generatedQueriesMutations = this.queriesMutationsGenerator.generateFromAnalyzedSchema(schemaAnalyzerResult.entryDirectiveTypes);
|
|
30
33
|
const generatedTypeNameQuery = this.queriesMutationsGenerator.generateTypeNameQuery();
|
|
@@ -67,13 +70,22 @@ class SchemaGeneratorService {
|
|
|
67
70
|
Mutation: generatedMutationResolvers,
|
|
68
71
|
};
|
|
69
72
|
for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
|
|
70
|
-
allGeneratedResolvers[typeName] =
|
|
73
|
+
allGeneratedResolvers[typeName] = {
|
|
74
|
+
...(allGeneratedResolvers[typeName] ?? {}),
|
|
75
|
+
...generatedUnionTypeResolvers[typeName],
|
|
76
|
+
};
|
|
71
77
|
}
|
|
72
78
|
for (const typeName of Object.keys(generatedObjectTypeFieldDefaultValueResolvers)) {
|
|
73
|
-
allGeneratedResolvers[typeName] =
|
|
79
|
+
allGeneratedResolvers[typeName] = {
|
|
80
|
+
...(allGeneratedResolvers[typeName] ?? {}),
|
|
81
|
+
...generatedObjectTypeFieldDefaultValueResolvers[typeName],
|
|
82
|
+
};
|
|
74
83
|
}
|
|
75
84
|
for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
|
|
76
|
-
allGeneratedResolvers[typeName] =
|
|
85
|
+
allGeneratedResolvers[typeName] = {
|
|
86
|
+
...(allGeneratedResolvers[typeName] ?? {}),
|
|
87
|
+
...generatedEntryReferenceResolvers[typeName],
|
|
88
|
+
};
|
|
77
89
|
}
|
|
78
90
|
const typeDefs = [
|
|
79
91
|
filteredOriginalSchemaString,
|
|
@@ -88,5 +100,4 @@ class SchemaGeneratorService {
|
|
|
88
100
|
};
|
|
89
101
|
}
|
|
90
102
|
}
|
|
91
|
-
exports.SchemaGeneratorService = SchemaGeneratorService;
|
|
92
103
|
//# 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":"AACA,OAAO,EAEL,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAI9B,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAQhE,MAAM,OAAO,sBAAsB;IAEd;IACA;IACA;IACA;IACA;IACA;IACA;IAPnB,YACmB,yBAA2D,EAC3D,cAAqC,EACrC,kBAA6C,EAC7C,uBAAuD,EACvD,0BAAsD,EACtD,4CAA0F,EAC1F,eAAgC;QANhC,8BAAyB,GAAzB,yBAAyB,CAAkC;QAC3D,mBAAc,GAAd,cAAc,CAAuB;QACrC,uBAAkB,GAAlB,kBAAkB,CAA2B;QAC7C,4BAAuB,GAAvB,uBAAuB,CAAgC;QACvD,+BAA0B,GAA1B,0BAA0B,CAA4B;QACtD,iDAA4C,GAA5C,4CAA4C,CAA8C;QAC1F,oBAAe,GAAf,eAAe,CAAiB;IAChD,CAAC;IAEG,KAAK,CAAC,cAAc,CACzB,OAAsB;QAEtB,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAC7D,OAAO,CAAC,aAAa,EAAE,CACxB,CAAA;QACD,MAAM,MAAM,GAAG,oBAAoB,CAAC;YAClC,QAAQ,EAAE,oBAAoB;SAC/B,CAAC,CAAA;QAEF,MAAM,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAA;QACzE,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;QAC9C,CAAC;QACD,MAAM,oBAAoB,GAAG,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;QAEtE,MAAM,4BAA4B,GAChC,yBAAyB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;QAE1C,MAAM,2BAA2B,GAC/B,IAAI,CAAC,kBAAkB,CAAC,0BAA0B,CAAC,oBAAoB,CAAC,CAAA;QAE1E,MAAM,yBAAyB,GAC7B,IAAI,CAAC,yBAAyB,CAAC,0BAA0B,CACvD,oBAAoB,CAAC,mBAAmB,CACzC,CAAA;QACH,MAAM,sBAAsB,GAC1B,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,EAAE,CAAA;QAExD,MAAM,gCAAgC,GAWlC,EAAE,CAAA;QAEN,MAAM,+BAA+B,GACnC,IAAI,CAAC,kBAAkB,CAAC,8BAA8B,CACpD,oBAAoB,CAAC,WAAW,CACjC,CAAA;QAEH,MAAM,8BAA8B,GAClC,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CACnD,oBAAoB,CAAC,UAAU,CAChC,CAAA;QAEH,MAAM,8BAA8B,GAClC,IAAI,CAAC,uBAAuB,CAAC,6BAA6B,CACxD,yBAAyB,EACzB,sBAAsB,CACvB,CAAA;QAEH,MAAM,qBAAqB,GACzB,uDAAuD;YACvD,8BAA8B;YAC9B,IAAI;YACJ,uBAAuB;YACvB,iBAAiB;YACjB,KAAK,CAAA;QAEP,MAAM,2BAA2B,GAAsC,EAAE,CAAA;QACzE,KAAK,MAAM,SAAS,IAAI,oBAAoB,CAAC,UAAU,EAAE,CAAC;YACxD,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;gBAC5C,aAAa,EAAE,IAAI,CAAC,0BAA0B,CAAC,cAAc,EAAE;aAChE,CAAA;QACH,CAAC;QACD,MAAM,6CAA6C,GACjD,IAAI,CAAC,4CAA4C,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;QAE1E,MAAM,uBAAuB,GAGzB,EAAE,CAAA;QACN,MAAM,0BAA0B,GAG5B,EAAE,CAAA;QAEN,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;YAChD,uBAAuB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAA;YAC1E,uBAAuB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;gBAChD,OAAO,CAAC,YAAY,CAAC,QAAQ,CAAA;YAC/B,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC;gBAC7C,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAA;YAC5B,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrD,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;YACjC,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrD,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;YACjC,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;gBACrD,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;QACnC,CAAC;QACD,uBAAuB,CAAC,sBAAsB,CAAC,IAAI,CAAC;YAClD,sBAAsB,CAAC,QAAQ,CAAA;QAEjC,MAAM,qBAAqB,GAOvB;YACF,KAAK,EAAE,uBAAuB;YAC9B,QAAQ,EAAE,0BAA0B;SACrC,CAAA;QAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;YAChE,qBAAqB,CAAC,QAAQ,CAAC,GAAG;gBAChC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC1C,GAAG,2BAA2B,CAAC,QAAQ,CAAC;aACzC,CAAA;QACH,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAChC,6CAA6C,CAC9C,EAAE,CAAC;YACF,qBAAqB,CAAC,QAAQ,CAAC,GAAG;gBAChC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC1C,GAAG,6CAA6C,CAAC,QAAQ,CAAC;aAC3D,CAAA;QACH,CAAC;QACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC;YACrE,qBAAqB,CAAC,QAAQ,CAAC,GAAG;gBAChC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;gBAC1C,GAAG,gCAAgC,CAAC,QAAQ,CAAC;aAC9C,CAAA;QACH,CAAC;QAED,MAAM,QAAQ,GAAG;YACf,4BAA4B;YAC5B,qBAAqB;YACrB,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;YACtC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;YAC1C,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;SAC1C,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;QAEzC,OAAO;YACL,QAAQ,EAAE,QAAQ;YAClB,SAAS,EAAE,qBAAqB;SACjC,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export class SchemaRootTypeGeneratorService {
|
|
2
|
+
generateSchemaRootTypeStrings(generatedSchemas, typeQuery) {
|
|
3
|
+
return (`type Query {\n` +
|
|
4
|
+
generatedSchemas
|
|
5
|
+
.map((generated) => ' ' + generated.queryAll.schemaString)
|
|
6
|
+
.join('\n') +
|
|
7
|
+
'\n' +
|
|
8
|
+
generatedSchemas
|
|
9
|
+
.map((generated) => ' ' + generated.queryAllMeta.schemaString)
|
|
10
|
+
.join('\n') +
|
|
11
|
+
'\n' +
|
|
12
|
+
generatedSchemas
|
|
13
|
+
.map((generated) => ' ' + generated.queryById.schemaString)
|
|
14
|
+
.join('\n') +
|
|
15
|
+
'\n' +
|
|
16
|
+
` ${typeQuery.schemaString}` +
|
|
17
|
+
'\n' +
|
|
18
|
+
'}\n\n' +
|
|
19
|
+
'type Mutation {\n' +
|
|
20
|
+
generatedSchemas
|
|
21
|
+
.map((generated) => ' ' + generated.createMutation.schemaString)
|
|
22
|
+
.join('\n') +
|
|
23
|
+
'\n' +
|
|
24
|
+
generatedSchemas
|
|
25
|
+
.map((generated) => ' ' + generated.updateMutation.schemaString)
|
|
26
|
+
.join('\n') +
|
|
27
|
+
'\n' +
|
|
28
|
+
generatedSchemas
|
|
29
|
+
.map((generated) => ' ' + generated.deleteMutation.schemaString)
|
|
30
|
+
.join('\n') +
|
|
31
|
+
'\n' +
|
|
32
|
+
'}\n');
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
//# 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,MAAM,OAAO,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,IAAI;YACJ,gBAAgB;iBACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,YAAY,CAAC,YAAY,CAAC;iBAC9D,IAAI,CAAC,IAAI,CAAC;YACb,IAAI;YACJ,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,OAAO;YACP,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"}
|
|
@@ -1,20 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
class EntryReferenceUtil {
|
|
1
|
+
import { GraphQLError, isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
export class EntryReferenceUtil {
|
|
3
|
+
persistence;
|
|
4
|
+
entryTypeUtil;
|
|
5
|
+
unionTypeUtil;
|
|
7
6
|
constructor(persistence, entryTypeUtil, unionTypeUtil) {
|
|
8
7
|
this.persistence = persistence;
|
|
9
8
|
this.entryTypeUtil = entryTypeUtil;
|
|
10
9
|
this.unionTypeUtil = unionTypeUtil;
|
|
11
10
|
}
|
|
12
11
|
async getReferencedEntryIds(rootType, context, fieldName, type, data) {
|
|
13
|
-
|
|
14
|
-
if ((0, graphql_1.isNonNullType)(type)) {
|
|
12
|
+
if (isNonNullType(type)) {
|
|
15
13
|
return this.getReferencedEntryIds(rootType, context, fieldName, type.ofType, data);
|
|
16
14
|
}
|
|
17
|
-
else if (
|
|
15
|
+
else if (isListType(type)) {
|
|
18
16
|
let referencedEntryIds = [];
|
|
19
17
|
for (const element of data) {
|
|
20
18
|
referencedEntryIds = [
|
|
@@ -22,10 +20,11 @@ class EntryReferenceUtil {
|
|
|
22
20
|
...(await this.getReferencedEntryIds(rootType, context, fieldName, type.ofType, element)),
|
|
23
21
|
];
|
|
24
22
|
}
|
|
23
|
+
// deduplicate
|
|
25
24
|
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
26
25
|
return referencedEntryIds;
|
|
27
26
|
}
|
|
28
|
-
else if (
|
|
27
|
+
else if (isUnionType(type)) {
|
|
29
28
|
if (this.entryTypeUtil.isUnionOfEntryTypes(type)) {
|
|
30
29
|
await this.validateReference(context, '', type, data);
|
|
31
30
|
return [data.id];
|
|
@@ -40,21 +39,22 @@ class EntryReferenceUtil {
|
|
|
40
39
|
const unionValue = this.unionTypeUtil.getUnionValue(data);
|
|
41
40
|
return this.getReferencedEntryIds(rootType, context, fieldName, unionType, unionValue);
|
|
42
41
|
}
|
|
43
|
-
else if (
|
|
42
|
+
else if (isObjectType(type)) {
|
|
44
43
|
if (type.name !== rootType.name &&
|
|
45
44
|
this.entryTypeUtil.hasEntryDirective(type)) {
|
|
46
|
-
await this.validateReference(context, fieldName
|
|
45
|
+
await this.validateReference(context, fieldName ?? '', type, data);
|
|
47
46
|
return [data.id];
|
|
48
47
|
}
|
|
49
48
|
else {
|
|
50
49
|
let referencedEntryIds = [];
|
|
51
50
|
for (const [fieldsKey, field] of Object.entries(type.getFields())) {
|
|
52
|
-
const fieldValue =
|
|
51
|
+
const fieldValue = data[fieldsKey] ?? undefined;
|
|
53
52
|
if (fieldValue !== undefined) {
|
|
54
53
|
const nestedResult = await this.getReferencedEntryIds(rootType, context, fieldsKey, field.type, fieldValue);
|
|
55
54
|
referencedEntryIds = [...referencedEntryIds, ...nestedResult];
|
|
56
55
|
}
|
|
57
56
|
}
|
|
57
|
+
// deduplicate
|
|
58
58
|
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
59
59
|
return referencedEntryIds;
|
|
60
60
|
}
|
|
@@ -62,11 +62,11 @@ class EntryReferenceUtil {
|
|
|
62
62
|
return [];
|
|
63
63
|
}
|
|
64
64
|
async validateReference(context, fieldName, fieldType, fieldValue) {
|
|
65
|
-
if (
|
|
65
|
+
if (isNonNullType(fieldType)) {
|
|
66
66
|
await this.validateReference(context, fieldName, fieldType.ofType, fieldValue);
|
|
67
67
|
return;
|
|
68
68
|
}
|
|
69
|
-
else if (
|
|
69
|
+
else if (isListType(fieldType)) {
|
|
70
70
|
if (!Array.isArray(fieldValue)) {
|
|
71
71
|
throw new Error(`Expected array value in field "${fieldName}"`);
|
|
72
72
|
}
|
|
@@ -75,7 +75,7 @@ class EntryReferenceUtil {
|
|
|
75
75
|
}
|
|
76
76
|
return;
|
|
77
77
|
}
|
|
78
|
-
else if (
|
|
78
|
+
else if (isUnionType(fieldType) || isObjectType(fieldType)) {
|
|
79
79
|
if (!('id' in fieldValue)) {
|
|
80
80
|
throw new Error('Expected key "id"');
|
|
81
81
|
}
|
|
@@ -85,7 +85,7 @@ class EntryReferenceUtil {
|
|
|
85
85
|
referencedTypeName = await this.persistence.getTypeById(context.gitAdapter, context.getCurrentRef(), referencedId);
|
|
86
86
|
}
|
|
87
87
|
catch (error) {
|
|
88
|
-
throw new
|
|
88
|
+
throw new GraphQLError(`Reference with id "${referencedId}" points to non-existing entry`, {
|
|
89
89
|
extensions: {
|
|
90
90
|
code: 'BAD_USER_INPUT',
|
|
91
91
|
fieldName: fieldName,
|
|
@@ -93,7 +93,7 @@ class EntryReferenceUtil {
|
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
if (!this.isPermittedReferenceType(referencedTypeName, fieldType)) {
|
|
96
|
-
throw new
|
|
96
|
+
throw new GraphQLError(`Reference with id "${referencedId}" points to entry of incompatible type`, {
|
|
97
97
|
extensions: {
|
|
98
98
|
code: 'BAD_USER_INPUT',
|
|
99
99
|
fieldName: fieldName,
|
|
@@ -103,23 +103,22 @@ class EntryReferenceUtil {
|
|
|
103
103
|
}
|
|
104
104
|
}
|
|
105
105
|
isPermittedReferenceType(referencedTypeName, fieldType) {
|
|
106
|
-
if (
|
|
106
|
+
if (isNonNullType(fieldType)) {
|
|
107
107
|
return this.isPermittedReferenceType(referencedTypeName, fieldType.ofType);
|
|
108
108
|
}
|
|
109
|
-
else if (
|
|
109
|
+
else if (isListType(fieldType)) {
|
|
110
110
|
return this.isPermittedReferenceType(referencedTypeName, fieldType.ofType);
|
|
111
111
|
}
|
|
112
|
-
else if (
|
|
112
|
+
else if (isUnionType(fieldType)) {
|
|
113
113
|
return fieldType
|
|
114
114
|
.getTypes()
|
|
115
115
|
.map((concreteType) => concreteType.name)
|
|
116
116
|
.includes(referencedTypeName);
|
|
117
117
|
}
|
|
118
|
-
else if (
|
|
118
|
+
else if (isObjectType(fieldType)) {
|
|
119
119
|
return fieldType.name === referencedTypeName;
|
|
120
120
|
}
|
|
121
121
|
return false;
|
|
122
122
|
}
|
|
123
123
|
}
|
|
124
|
-
exports.EntryReferenceUtil = EntryReferenceUtil;
|
|
125
124
|
//# 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":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
export class EntryTypeUtil {
|
|
3
|
+
buildsOnTypeWithEntryDirective(type) {
|
|
4
|
+
if (isNonNullType(type)) {
|
|
5
|
+
return this.buildsOnTypeWithEntryDirective(type.ofType);
|
|
6
|
+
}
|
|
7
|
+
else if (isListType(type)) {
|
|
8
|
+
return this.buildsOnTypeWithEntryDirective(type.ofType);
|
|
9
|
+
}
|
|
10
|
+
else if (isUnionType(type)) {
|
|
11
|
+
return this.isUnionOfEntryTypes(type);
|
|
12
|
+
}
|
|
13
|
+
else if (isObjectType(type)) {
|
|
14
|
+
return this.hasEntryDirective(type);
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
hasEntryDirective(type) {
|
|
19
|
+
return (!!type.astNode &&
|
|
20
|
+
type.astNode.directives?.find((directive) => directive.name.value === 'Entry') !== undefined);
|
|
21
|
+
}
|
|
22
|
+
isUnionOfEntryTypes(type) {
|
|
23
|
+
return (type
|
|
24
|
+
.getTypes()
|
|
25
|
+
.filter((unionType) => this.buildsOnTypeWithEntryDirective(unionType))
|
|
26
|
+
.length > 0);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=entry-type-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-type-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAEhB,MAAM,OAAO,aAAa;IACjB,8BAA8B,CAAC,IAAyB;QAC7D,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;YACxB,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzD,CAAC;aAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC5B,OAAO,IAAI,CAAC,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACzD,CAAC;aAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAA;QACvC,CAAC;aAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAA;QACrC,CAAC;QACD,OAAO,KAAK,CAAA;IACd,CAAC;IAEM,iBAAiB,CAAC,IAAuB;QAC9C,OAAO,CACL,CAAC,CAAC,IAAI,CAAC,OAAO;YACd,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAC3B,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAChD,KAAK,SAAS,CAChB,CAAA;IACH,CAAC;IAEM,mBAAmB,CAAC,IAAsB;QAC/C,OAAO,CACL,IAAI;aACD,QAAQ,EAAE;aACV,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC;aACrE,MAAM,GAAG,CAAC,CACd,CAAA;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class UnionTypeUtil {
|
|
2
|
+
getUnionTypeNameFromFieldValue(fieldValue) {
|
|
3
|
+
if (typeof fieldValue !== 'object') {
|
|
4
|
+
throw new Error('Expected object as union value');
|
|
5
|
+
}
|
|
6
|
+
// Based on our @oneOf directive, we expect only one field whose name
|
|
7
|
+
// corresponds to the concrete type's name.
|
|
8
|
+
return Object.keys(fieldValue)[0];
|
|
9
|
+
}
|
|
10
|
+
getUnionValue(fieldValue) {
|
|
11
|
+
if (typeof fieldValue !== 'object') {
|
|
12
|
+
throw new Error('Expected object as union value');
|
|
13
|
+
}
|
|
14
|
+
const firstKey = Object.keys(fieldValue)[0];
|
|
15
|
+
return fieldValue[firstKey];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=union-type-util.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-type-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,aAAa;IACjB,8BAA8B,CAAC,UAAe;QACnD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,qEAAqE;QACrE,2CAA2C;QAC3C,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;IACnC,CAAC;IAEM,aAAa,CAAC,UAAe;QAClC,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAA;QACnD,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAA;QAC3C,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAA;IAC7B,CAAC;CACF"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Kind } from 'graphql';
|
|
2
|
+
export class SchemaValidator {
|
|
3
|
+
getValidationResult(schema) {
|
|
4
|
+
const results = [];
|
|
5
|
+
results.push(this.checkUnionMembersConsistentUseOfEntryDirective(schema));
|
|
6
|
+
return results.filter((result) => result !== '');
|
|
7
|
+
}
|
|
8
|
+
checkUnionMembersConsistentUseOfEntryDirective(schema) {
|
|
9
|
+
const typeMap = schema.getTypeMap();
|
|
10
|
+
for (const [key, type] of Object.entries(typeMap)) {
|
|
11
|
+
if (type.astNode?.kind !== Kind.UNION_TYPE_DEFINITION) {
|
|
12
|
+
continue;
|
|
13
|
+
}
|
|
14
|
+
const innerTypes = type.getTypes();
|
|
15
|
+
const numberUnionMembersWithEntryDirective = innerTypes.filter((innerType) => !!innerType.astNode &&
|
|
16
|
+
innerType.astNode.directives?.find((directive) => directive.name.value === 'Entry') !== undefined).length;
|
|
17
|
+
if (numberUnionMembersWithEntryDirective !== 0 &&
|
|
18
|
+
numberUnionMembersWithEntryDirective !== innerTypes.length) {
|
|
19
|
+
return `Either all union members of "${type.name}" must have "@Entry" directive or none.`;
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
return '';
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=schema-validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.js","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmC,IAAI,EAAE,MAAM,SAAS,CAAA;AAE/D,MAAM,OAAO,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,CAAC;YAClD,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBACtD,SAAQ;YACV,CAAC;YACD,MAAM,UAAU,GAAI,IAAyB,CAAC,QAAQ,EAAE,CAAA;YAExD,MAAM,oCAAoC,GAAG,UAAU,CAAC,MAAM,CAC5D,CAAC,SAAS,EAAE,EAAE,CACZ,CAAC,CAAC,SAAS,CAAC,OAAO;gBACnB,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,CAChC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,KAAK,OAAO,CAChD,KAAK,SAAS,CAClB,CAAC,MAAM,CAAA;YAER,IACE,oCAAoC,KAAK,CAAC;gBAC1C,oCAAoC,KAAK,UAAU,CAAC,MAAM,EAC1D,CAAC;gBACD,OAAO,gCAAgC,IAAI,CAAC,IAAI,yCAAyC,CAAA;YAC3F,CAAC;QACH,CAAC;QAED,OAAO,EAAE,CAAA;IACX,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmC,MAAM,mBAAmB,CAAA;AAC/E,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAExC,OAAO,EAAE,UAAU,EAAmC,CAAA;AAEtD,MAAM,CAAC,KAAK,UAAU,aAAa;IACjC,OAAO,UAAU,CAAA;AACnB,CAAC"}
|
|
@@ -1,13 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
exports.PersistenceService = void 0;
|
|
4
|
-
const GraphQLError_1 = require("graphql/error/GraphQLError");
|
|
5
|
-
class PersistenceService {
|
|
1
|
+
import { GraphQLError } from 'graphql';
|
|
2
|
+
export class PersistenceService {
|
|
6
3
|
async getTypeById(gitAdapter, commitHash, id) {
|
|
7
4
|
const allEntries = await gitAdapter.getEntries(commitHash);
|
|
8
5
|
const requestedEntry = allEntries.find((entry) => entry.id === id);
|
|
9
6
|
if (requestedEntry === undefined) {
|
|
10
|
-
throw new
|
|
7
|
+
throw new GraphQLError(`Not found: ${id}`, {
|
|
11
8
|
extensions: {
|
|
12
9
|
code: 'NOT_FOUND',
|
|
13
10
|
},
|
|
@@ -19,7 +16,7 @@ class PersistenceService {
|
|
|
19
16
|
const allEntries = await gitAdapter.getEntries(commitHash);
|
|
20
17
|
const requestedEntry = allEntries.find((entry) => entry.id === id);
|
|
21
18
|
if (requestedEntry === undefined) {
|
|
22
|
-
throw new
|
|
19
|
+
throw new GraphQLError(`Not found: ${id}`, {
|
|
23
20
|
extensions: {
|
|
24
21
|
code: 'NOT_FOUND',
|
|
25
22
|
},
|
|
@@ -35,7 +32,7 @@ class PersistenceService {
|
|
|
35
32
|
const allEntries = await gitAdapter.getEntries(commitHash);
|
|
36
33
|
const requestedEntry = allEntries.find((entry) => entry.id === id && entry.metadata.type === type);
|
|
37
34
|
if (requestedEntry === undefined) {
|
|
38
|
-
throw new
|
|
35
|
+
throw new GraphQLError(`No entry of type "${type}" with id "${id}" exists`, {
|
|
39
36
|
extensions: {
|
|
40
37
|
code: 'BAD_USER_INPUT',
|
|
41
38
|
argumentName: 'id',
|
|
@@ -45,5 +42,4 @@ class PersistenceService {
|
|
|
45
42
|
return requestedEntry;
|
|
46
43
|
}
|
|
47
44
|
}
|
|
48
|
-
exports.PersistenceService = PersistenceService;
|
|
49
45
|
//# sourceMappingURL=persistence.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.service.js","sourceRoot":"","sources":["../../../src/persistence/persistence.service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,OAAO,kBAAkB;IACtB,KAAK,CAAC,WAAW,CACtB,UAAsB,EACtB,UAAkB,EAClB,EAAU;QAEV,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,EAAE,EAAE;gBACzC,UAAU,EAAE;oBACV,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,QAAQ,CACnB,UAAsB,EACtB,UAAkB,EAClB,EAAU;QAEV,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAA;QACzE,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CAAC,cAAc,EAAE,EAAE,EAAE;gBACzC,UAAU,EAAE;oBACV,IAAI,EAAE,WAAW;iBAClB;aACF,CAAC,CAAA;QACJ,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;IAEM,KAAK,CAAC,UAAU,CACrB,UAAsB,EACtB,UAAkB,EAClB,IAAY;QAEZ,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;IAC1E,CAAC;IAEM,KAAK,CAAC,YAAY,CACvB,UAAsB,EACtB,UAAkB,EAClB,IAAY,EACZ,EAAU;QAEV,MAAM,UAAU,GAAG,MAAM,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAA;QAC1D,MAAM,cAAc,GAAG,UAAU,CAAC,IAAI,CACpC,CAAC,KAAY,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,QAAQ,CAAC,IAAI,KAAK,IAAI,CAClE,CAAA;QACD,IAAI,cAAc,KAAK,SAAS,EAAE,CAAC;YACjC,MAAM,IAAI,YAAY,CACpB,qBAAqB,IAAI,cAAc,EAAE,UAAU,EACnD;gBACE,UAAU,EAAE;oBACV,IAAI,EAAE,gBAAgB;oBACtB,YAAY,EAAE,IAAI;iBACnB;aACF,CACF,CAAA;QACH,CAAC;QAED,OAAO,cAAc,CAAA;IACvB,CAAC;CACF"}
|