@commitspark/graphql-api 1.0.0-beta.1 → 1.0.0-beta.3
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 +15 -0
- package/README.md +3 -3
- package/dist/cjs/client.js +1 -1
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/graphql/errors.js +32 -0
- package/dist/cjs/graphql/errors.js.map +1 -0
- package/dist/cjs/graphql/queries-mutations-generator.js +10 -8
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +4 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +15 -3
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +10 -13
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +5 -6
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +5 -4
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.js → query-every-resolver.js} +4 -4
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
- package/dist/cjs/graphql/schema-generator.js +7 -2
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.js +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +26 -18
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/union-type-util.js +9 -4
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/persistence.js +11 -14
- package/dist/cjs/persistence/persistence.js.map +1 -1
- package/dist/esm/client.js +1 -1
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/graphql/errors.js +28 -0
- package/dist/esm/graphql/errors.js.map +1 -0
- package/dist/esm/graphql/queries-mutations-generator.js +10 -8
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +4 -1
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +15 -3
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +11 -14
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +6 -7
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +5 -4
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.js → query-every-resolver.js} +2 -2
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
- package/dist/esm/graphql/schema-generator.js +7 -2
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-root-type-generator.js +1 -1
- package/dist/esm/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +27 -19
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js +9 -4
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/persistence.js +11 -14
- package/dist/esm/persistence/persistence.js.map +1 -1
- package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.build.types.tsbuildinfo +1 -1
- package/dist/types/graphql/errors.d.ts +20 -0
- package/dist/types/graphql/errors.d.ts.map +1 -0
- package/dist/types/graphql/queries-mutations-generator.d.ts +1 -1
- package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
- package/dist/types/graphql/schema-generator.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -2
- package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
- package/dist/types/index.d.ts +2 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence/persistence.d.ts.map +1 -1
- package/package.json +12 -4
- package/src/client.ts +1 -1
- package/src/graphql/errors.ts +43 -0
- package/src/graphql/queries-mutations-generator.ts +12 -10
- package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +8 -1
- package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +23 -5
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +22 -14
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +12 -8
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +9 -4
- package/src/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.ts → query-every-resolver.ts} +1 -1
- package/src/graphql/schema-generator.ts +7 -2
- package/src/graphql/schema-root-type-generator.ts +1 -1
- package/src/graphql/schema-utils/entry-reference-util.ts +44 -22
- package/src/graphql/schema-utils/union-type-util.ts +20 -7
- package/src/index.ts +2 -1
- package/src/persistence/persistence.ts +13 -15
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +0 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +0 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts +0 -5
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts.map +0 -1
|
@@ -4,7 +4,7 @@ import { GraphQLFieldResolver, GraphQLObjectType } from 'graphql';
|
|
|
4
4
|
export declare function generateQueriesAndMutations(entryDirectiveTypes: GraphQLObjectType[]): GeneratedSchema[];
|
|
5
5
|
export declare function generateTypeNameQuery(): GeneratedQuery<Promise<string>>;
|
|
6
6
|
export interface GeneratedSchema {
|
|
7
|
-
|
|
7
|
+
queryEvery: GeneratedQuery<Promise<EntryData[]>>;
|
|
8
8
|
queryById: GeneratedQuery<Promise<EntryData>>;
|
|
9
9
|
createMutation: GeneratedQuery<Promise<EntryData>>;
|
|
10
10
|
updateMutation: GeneratedQuery<Promise<EntryData>>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AASjE,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,eAAe,EAAE,
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AASjE,wBAAgB,2BAA2B,CACzC,mBAAmB,EAAE,iBAAiB,EAAE,GACvC,eAAe,EAAE,CAmGnB;AAED,wBAAgB,qBAAqB,IAAI,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CASvE;AAED,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,CAAA;IAChD,SAAS,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAC7C,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;IAClD,cAAc,EAAE,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAA;CACnD;AAED,MAAM,WAAW,cAAc,CAAC,CAAC;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,oBAAoB,CAAC,GAAG,EAAE,aAAa,EAAE,GAAG,EAAE,CAAC,CAAC,CAAA;CAC3D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"entry-reference-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,MAAM,SAAS,CAAA;AAK7D,eAAO,MAAM,qBAAqB,EAAE,aAAa,CAAC,GAAG,CAuBpD,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"field-default-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2C,MAAM,SAAS,CAAA;
|
|
1
|
+
{"version":3,"file":"field-default-value-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2C,MAAM,SAAS,CAAA;AAmBhF,eAAO,MAAM,wBAAwB,EAAE,aAAa,CAAC,GAAG,CAyGvD,CAAA"}
|
package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-create-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"AACA,OAAO,
|
|
1
|
+
{"version":3,"file":"mutation-create-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAE5D,OAAO,EAEL,SAAS,EAEV,MAAM,0BAA0B,CAAA;AACjC,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAGvD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CACvD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CAoGnB,CAAA"}
|
package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-delete-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,SAAS,EAAc,MAAM,0BAA0B,CAAA;AAEvE,OAAO,
|
|
1
|
+
{"version":3,"file":"mutation-delete-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,SAAS,EAAc,MAAM,0BAA0B,CAAA;AAEvE,OAAO,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAGvD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CACvD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CAyEnB,CAAA"}
|
package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mutation-update-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAc,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"mutation-update-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAgB,MAAM,SAAS,CAAA;AAC5D,OAAO,EAAE,SAAS,EAAc,MAAM,0BAA0B,CAAA;AAChE,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAavD,eAAO,MAAM,sBAAsB,EAAE,oBAAoB,CACvD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,CAAC,CAiGnB,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { EntryData } from '@commitspark/git-adapter';
|
|
2
|
+
import { GraphQLFieldResolver } from 'graphql';
|
|
3
|
+
import { QueryMutationResolverContext } from '../types';
|
|
4
|
+
export declare const queryEveryResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData[]>>;
|
|
5
|
+
//# sourceMappingURL=query-every-resolver.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-every-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,OAAO,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAC9C,OAAO,EAAE,4BAA4B,EAAE,MAAM,UAAU,CAAA;AAEvD,eAAO,MAAM,kBAAkB,EAAE,oBAAoB,CACnD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,EAAE,CAAC,CAWrB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,2BAA2B,EAE5B,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;
|
|
1
|
+
{"version":3,"file":"schema-generator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAIA,OAAO,EACL,2BAA2B,EAE5B,MAAM,uBAAuB,CAAA;AAU9B,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAA;AAOzC,wBAAsB,cAAc,CAClC,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,2BAA2B,CAAC,CAuItC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"entry-reference-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,iBAAiB,EAKlB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAmG5C,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,iBAAiB,EAC3B,OAAO,EAAE,aAAa,EACtB,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,IAAI,EAAE,mBAAmB,EACzB,IAAI,EAAE,GAAG,GACR,OAAO,CAAC,MAAM,EAAE,CAAC,CAqFnB"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { EntryData } from '@commitspark/git-adapter';
|
|
2
|
-
export declare function getUnionTypeNameFromFieldValue(fieldValue:
|
|
3
|
-
export declare function getUnionValue(fieldValue:
|
|
2
|
+
export declare function getUnionTypeNameFromFieldValue(fieldValue: unknown): string;
|
|
3
|
+
export declare function getUnionValue(fieldValue: unknown): EntryData;
|
|
4
4
|
//# sourceMappingURL=union-type-util.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"union-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"union-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/union-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAGpD,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAc1E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAa5D"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import { ApolloExecuteOperationRequest, GraphQLResponse, SchemaResponse, VariableValues } from './client';
|
|
2
2
|
import { GitAdapter } from '@commitspark/git-adapter';
|
|
3
|
+
import { ErrorCode, ErrorMetadata } from './graphql/errors';
|
|
3
4
|
interface Client {
|
|
4
5
|
postGraphQL<TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>): Promise<GraphQLResponse<TData | null>>;
|
|
5
6
|
getSchema(ref: string): Promise<SchemaResponse>;
|
|
6
7
|
}
|
|
7
|
-
export { Client, GraphQLResponse, SchemaResponse };
|
|
8
|
+
export { Client, GraphQLResponse, SchemaResponse, ErrorCode, ErrorMetadata };
|
|
8
9
|
export declare function createClient(gitAdapter: GitAdapter): Promise<Client>;
|
|
9
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE7B,eAAe,EAEf,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,6BAA6B,EAE7B,eAAe,EAEf,cAAc,EACd,cAAc,EACf,MAAM,UAAU,CAAA;AACjB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAE3D,UAAU,MAAM;IACd,WAAW,CACT,KAAK,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,UAAU,SAAS,cAAc,GAAG,cAAc,EAElD,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,6BAA6B,CAAC,KAAK,EAAE,UAAU,CAAC,GACxD,OAAO,CAAC,eAAe,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,CAAA;IACzC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,CAAA;CAChD;AAED,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,cAAc,EAAE,SAAS,EAAE,aAAa,EAAE,CAAA;AAE5E,wBAAsB,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAK1E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG5D,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AAG5D,wBAAsB,WAAW,CAC/B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAWjB;AAED,wBAAsB,QAAQ,CAC5B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAWhB;AAED,wBAAsB,UAAU,CAC9B,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,EAAE,CAAC,CAGlB;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,UAAU,EAAE,MAAM,EAClB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAkBhB"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@commitspark/graphql-api",
|
|
3
|
-
"description": "GraphQL API
|
|
4
|
-
"
|
|
3
|
+
"description": "GraphQL API to store and manage structured data with Git",
|
|
4
|
+
"keywords": [
|
|
5
|
+
"graphql",
|
|
6
|
+
"graphql-api",
|
|
7
|
+
"graphql-schema",
|
|
8
|
+
"git",
|
|
9
|
+
"gitops",
|
|
10
|
+
"api"
|
|
11
|
+
],
|
|
12
|
+
"version": "1.0.0-beta.3",
|
|
5
13
|
"license": "ISC",
|
|
6
14
|
"private": false,
|
|
7
15
|
"files": [
|
|
@@ -34,8 +42,8 @@
|
|
|
34
42
|
"prepublishOnly": "npm run build"
|
|
35
43
|
},
|
|
36
44
|
"dependencies": {
|
|
37
|
-
"@apollo/server": "
|
|
38
|
-
"@commitspark/git-adapter": "^0.
|
|
45
|
+
"@apollo/server": "~5.0.0",
|
|
46
|
+
"@commitspark/git-adapter": "^0.20.0",
|
|
39
47
|
"@graphql-tools/schema": "^9.0.0",
|
|
40
48
|
"@graphql-tools/utils": "^9.0.0"
|
|
41
49
|
},
|
package/src/client.ts
CHANGED
|
@@ -86,7 +86,7 @@ export const getSchema = async (
|
|
|
86
86
|
|
|
87
87
|
const typeDefinitionStrings = (await generateSchema(context)).typeDefs
|
|
88
88
|
if (!Array.isArray(typeDefinitionStrings)) {
|
|
89
|
-
throw new Error('
|
|
89
|
+
throw new Error('Expected array of typeDefinition strings.')
|
|
90
90
|
}
|
|
91
91
|
|
|
92
92
|
return {
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { GraphQLError } from 'graphql'
|
|
2
|
+
|
|
3
|
+
export enum ErrorCode {
|
|
4
|
+
BAD_USER_INPUT = 'BAD_USER_INPUT',
|
|
5
|
+
NOT_FOUND = 'NOT_FOUND',
|
|
6
|
+
BAD_REPOSITORY_DATA = 'BAD_REPOSITORY_DATA',
|
|
7
|
+
SCHEMA_DATA_MISMATCH = 'SCHEMA_DATA_MISMATCH',
|
|
8
|
+
BAD_SCHEMA = 'BAD_SCHEMA',
|
|
9
|
+
INTERNAL_ERROR = 'INTERNAL_ERROR',
|
|
10
|
+
IN_USE = 'IN_USE',
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export interface ErrorMetadata {
|
|
14
|
+
typeName?: string
|
|
15
|
+
fieldName?: string
|
|
16
|
+
fieldValue?: unknown
|
|
17
|
+
argumentName?: string
|
|
18
|
+
argumentValue?: unknown
|
|
19
|
+
schema?: string
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export const createError = (
|
|
23
|
+
message: string,
|
|
24
|
+
code: ErrorCode,
|
|
25
|
+
metaData: ErrorMetadata,
|
|
26
|
+
): GraphQLError => {
|
|
27
|
+
const serializedFieldValue =
|
|
28
|
+
typeof metaData.fieldValue === 'object' ||
|
|
29
|
+
Array.isArray(metaData.fieldValue)
|
|
30
|
+
? JSON.stringify(metaData.fieldValue)
|
|
31
|
+
: metaData.fieldValue
|
|
32
|
+
const updatedMetaData = { ...metaData }
|
|
33
|
+
if (serializedFieldValue !== undefined) {
|
|
34
|
+
updatedMetaData.fieldValue = serializedFieldValue
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return new GraphQLError(message, {
|
|
38
|
+
extensions: {
|
|
39
|
+
code: code,
|
|
40
|
+
commitspark: updatedMetaData,
|
|
41
|
+
},
|
|
42
|
+
})
|
|
43
|
+
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { EntryData } from '@commitspark/git-adapter'
|
|
2
2
|
import { ApolloContext } from '../client'
|
|
3
3
|
import { GraphQLFieldResolver, GraphQLObjectType } from 'graphql'
|
|
4
|
-
import {
|
|
4
|
+
import { queryEveryResolver } from './resolvers/query-mutation-resolvers/query-every-resolver'
|
|
5
5
|
import { queryByIdResolver } from './resolvers/query-mutation-resolvers/query-by-id-resolver'
|
|
6
6
|
import { mutationCreateResolver } from './resolvers/query-mutation-resolvers/mutation-create-resolver'
|
|
7
7
|
import { mutationUpdateResolver } from './resolvers/query-mutation-resolvers/mutation-update-resolver'
|
|
@@ -15,15 +15,17 @@ export function generateQueriesAndMutations(
|
|
|
15
15
|
return entryDirectiveTypes.map((objectType): GeneratedSchema => {
|
|
16
16
|
const typeName = objectType.name
|
|
17
17
|
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
const
|
|
18
|
+
// The semantics of `every` aren't a perfect replacement of `all` but this way we don't need to do non-trivial
|
|
19
|
+
// pluralization of user-provided typeName
|
|
20
|
+
const queryEveryName = `every${typeName}`
|
|
21
|
+
const queryEveryString = `${queryEveryName}: [${objectType.name}!]`
|
|
22
|
+
const queryEveryResolverFunc: GraphQLFieldResolver<
|
|
21
23
|
any,
|
|
22
24
|
ApolloContext,
|
|
23
25
|
any,
|
|
24
26
|
Promise<EntryData[]>
|
|
25
27
|
> = (source, args, context, info) =>
|
|
26
|
-
|
|
28
|
+
queryEveryResolver(source, args, { ...context, type: objectType }, info)
|
|
27
29
|
|
|
28
30
|
const queryByIdName = typeName
|
|
29
31
|
const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`
|
|
@@ -81,10 +83,10 @@ export function generateQueriesAndMutations(
|
|
|
81
83
|
)
|
|
82
84
|
|
|
83
85
|
return {
|
|
84
|
-
|
|
85
|
-
name:
|
|
86
|
-
schemaString:
|
|
87
|
-
resolver:
|
|
86
|
+
queryEvery: {
|
|
87
|
+
name: queryEveryName,
|
|
88
|
+
schemaString: queryEveryString,
|
|
89
|
+
resolver: queryEveryResolverFunc,
|
|
88
90
|
},
|
|
89
91
|
queryById: {
|
|
90
92
|
name: queryByIdName,
|
|
@@ -122,7 +124,7 @@ export function generateTypeNameQuery(): GeneratedQuery<Promise<string>> {
|
|
|
122
124
|
}
|
|
123
125
|
|
|
124
126
|
export interface GeneratedSchema {
|
|
125
|
-
|
|
127
|
+
queryEvery: GeneratedQuery<Promise<EntryData[]>>
|
|
126
128
|
queryById: GeneratedQuery<Promise<EntryData>>
|
|
127
129
|
createMutation: GeneratedQuery<Promise<EntryData>>
|
|
128
130
|
updateMutation: GeneratedQuery<Promise<EntryData>>
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { FieldResolver, FieldResolverContext } from './types'
|
|
2
2
|
import { GraphQLResolveInfo, isNamedType } from 'graphql'
|
|
3
3
|
import { findById } from '../../../persistence/persistence'
|
|
4
|
+
import { createError, ErrorCode } from '../../errors'
|
|
4
5
|
|
|
5
6
|
export const resolveEntryReference: FieldResolver<any> = async (
|
|
6
7
|
fieldValue: any,
|
|
@@ -9,7 +10,13 @@ export const resolveEntryReference: FieldResolver<any> = async (
|
|
|
9
10
|
info: GraphQLResolveInfo,
|
|
10
11
|
) => {
|
|
11
12
|
if (!isNamedType(context.currentType)) {
|
|
12
|
-
throw
|
|
13
|
+
throw createError(
|
|
14
|
+
`Expected context.currentType type to be a named type.`,
|
|
15
|
+
ErrorCode.INTERNAL_ERROR,
|
|
16
|
+
{
|
|
17
|
+
fieldValue: fieldValue,
|
|
18
|
+
},
|
|
19
|
+
)
|
|
13
20
|
}
|
|
14
21
|
|
|
15
22
|
const entry = await findById(
|
|
@@ -15,6 +15,7 @@ import {
|
|
|
15
15
|
} from '../../schema-utils/entry-type-util'
|
|
16
16
|
import { resolveEntryReference } from './entry-reference-resolver'
|
|
17
17
|
import { resolveUnionValue } from './union-value-resolver'
|
|
18
|
+
import { createError, ErrorCode } from '../../errors'
|
|
18
19
|
|
|
19
20
|
export const resolveFieldDefaultValue: FieldResolver<any> = async (
|
|
20
21
|
fieldValue: any,
|
|
@@ -44,8 +45,13 @@ export const resolveFieldDefaultValue: FieldResolver<any> = async (
|
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
if (!Array.isArray(fieldValue)) {
|
|
47
|
-
throw
|
|
48
|
+
throw createError(
|
|
48
49
|
`Expected array while resolving value for field "${info.fieldName}".`,
|
|
50
|
+
ErrorCode.SCHEMA_DATA_MISMATCH,
|
|
51
|
+
{
|
|
52
|
+
fieldName: info.fieldName,
|
|
53
|
+
fieldValue: fieldValue,
|
|
54
|
+
},
|
|
49
55
|
)
|
|
50
56
|
}
|
|
51
57
|
|
|
@@ -68,12 +74,17 @@ export const resolveFieldDefaultValue: FieldResolver<any> = async (
|
|
|
68
74
|
} else if (isUnionType(context.currentType)) {
|
|
69
75
|
if (fieldValue === undefined || fieldValue === null) {
|
|
70
76
|
if (context.hasNonNullParent) {
|
|
71
|
-
throw
|
|
77
|
+
throw createError(
|
|
72
78
|
`Cannot generate a default value for NonNull field "${
|
|
73
79
|
info.parentType.name
|
|
74
80
|
}.${info.fieldName}" because it is a union field of type "${
|
|
75
81
|
(info.returnType as GraphQLNonNull<GraphQLUnionType>).ofType.name
|
|
76
|
-
}".`,
|
|
82
|
+
}". Set a value in your repository data or remove the NonNull declaration in your schema.`,
|
|
83
|
+
ErrorCode.BAD_REPOSITORY_DATA,
|
|
84
|
+
{
|
|
85
|
+
typeName: info.parentType.name,
|
|
86
|
+
fieldName: info.fieldName,
|
|
87
|
+
},
|
|
77
88
|
)
|
|
78
89
|
} else {
|
|
79
90
|
return new Promise((resolve) => resolve(null))
|
|
@@ -88,8 +99,15 @@ export const resolveFieldDefaultValue: FieldResolver<any> = async (
|
|
|
88
99
|
} else if (isObjectType(context.currentType)) {
|
|
89
100
|
if (fieldValue === undefined || fieldValue === null) {
|
|
90
101
|
if (context.hasNonNullParent) {
|
|
91
|
-
throw
|
|
92
|
-
`Cannot generate a default value for NonNull field "${info.fieldName}" of type
|
|
102
|
+
throw createError(
|
|
103
|
+
`Cannot generate a default value for NonNull field "${info.fieldName}" of type ` +
|
|
104
|
+
`"${info.parentType.name}". Set a value in your repository data or remove the NonNull ` +
|
|
105
|
+
`declaration in your schema.`,
|
|
106
|
+
ErrorCode.BAD_REPOSITORY_DATA,
|
|
107
|
+
{
|
|
108
|
+
typeName: info.parentType.name,
|
|
109
|
+
fieldName: info.fieldName,
|
|
110
|
+
},
|
|
93
111
|
)
|
|
94
112
|
} else {
|
|
95
113
|
return new Promise((resolve) => resolve(null))
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { findById, findByTypeId } from '../../../persistence/persistence'
|
|
2
|
-
import {
|
|
2
|
+
import { GraphQLFieldResolver, isObjectType } from 'graphql'
|
|
3
3
|
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util'
|
|
4
4
|
import {
|
|
5
5
|
ENTRY_ID_INVALID_CHARACTERS,
|
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
EntryDraft,
|
|
8
8
|
} from '@commitspark/git-adapter'
|
|
9
9
|
import { QueryMutationResolverContext } from '../types'
|
|
10
|
+
import { createError, ErrorCode } from '../../errors'
|
|
10
11
|
|
|
11
12
|
export const mutationCreateResolver: GraphQLFieldResolver<
|
|
12
13
|
any,
|
|
@@ -14,19 +15,24 @@ export const mutationCreateResolver: GraphQLFieldResolver<
|
|
|
14
15
|
any,
|
|
15
16
|
Promise<EntryData>
|
|
16
17
|
> = async (source, args, context, info) => {
|
|
17
|
-
if (!isObjectType(
|
|
18
|
-
throw
|
|
18
|
+
if (!isObjectType(context.type)) {
|
|
19
|
+
throw createError(
|
|
20
|
+
`Entry of type "${context.type.name}" cannot be created as is not an ObjectType.`,
|
|
21
|
+
ErrorCode.INTERNAL_ERROR,
|
|
22
|
+
{},
|
|
23
|
+
)
|
|
19
24
|
}
|
|
20
25
|
|
|
21
26
|
const idValidationResult = args.id.match(ENTRY_ID_INVALID_CHARACTERS)
|
|
22
27
|
if (idValidationResult) {
|
|
23
|
-
throw
|
|
24
|
-
`"id" contains invalid characters "${idValidationResult.join(
|
|
28
|
+
throw createError(
|
|
29
|
+
`Field "id" contains invalid characters "${idValidationResult.join(
|
|
30
|
+
', ',
|
|
31
|
+
)}".`,
|
|
32
|
+
ErrorCode.BAD_USER_INPUT,
|
|
25
33
|
{
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
argumentName: 'id',
|
|
29
|
-
},
|
|
34
|
+
argumentName: 'id',
|
|
35
|
+
argumentValue: args.id,
|
|
30
36
|
},
|
|
31
37
|
)
|
|
32
38
|
}
|
|
@@ -42,16 +48,18 @@ export const mutationCreateResolver: GraphQLFieldResolver<
|
|
|
42
48
|
/* empty */
|
|
43
49
|
}
|
|
44
50
|
if (existingEntry) {
|
|
45
|
-
throw
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
throw createError(
|
|
52
|
+
`An entry with id "${args.id}" already exists.`,
|
|
53
|
+
ErrorCode.BAD_USER_INPUT,
|
|
54
|
+
{
|
|
48
55
|
argumentName: 'id',
|
|
56
|
+
argumentValue: args.id,
|
|
49
57
|
},
|
|
50
|
-
|
|
58
|
+
)
|
|
51
59
|
}
|
|
52
60
|
|
|
53
61
|
const referencedEntryIds = await getReferencedEntryIds(
|
|
54
|
-
|
|
62
|
+
context.type,
|
|
55
63
|
context,
|
|
56
64
|
null,
|
|
57
65
|
info.returnType,
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { findById, findByTypeId } from '../../../persistence/persistence'
|
|
2
2
|
import { Entry, EntryData, EntryDraft } from '@commitspark/git-adapter'
|
|
3
3
|
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util'
|
|
4
|
-
import {
|
|
4
|
+
import { GraphQLFieldResolver, isObjectType } from 'graphql'
|
|
5
5
|
import { QueryMutationResolverContext } from '../types'
|
|
6
|
+
import { createError, ErrorCode } from '../../errors'
|
|
6
7
|
|
|
7
8
|
export const mutationDeleteResolver: GraphQLFieldResolver<
|
|
8
9
|
any,
|
|
@@ -21,20 +22,23 @@ export const mutationDeleteResolver: GraphQLFieldResolver<
|
|
|
21
22
|
const otherIds = entry.metadata.referencedBy
|
|
22
23
|
.map((referenceId) => `"${referenceId}"`)
|
|
23
24
|
.join(', ')
|
|
24
|
-
throw
|
|
25
|
-
`Entry with
|
|
25
|
+
throw createError(
|
|
26
|
+
`Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`,
|
|
27
|
+
ErrorCode.IN_USE,
|
|
26
28
|
{
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
argumentName: 'id',
|
|
30
|
-
},
|
|
29
|
+
argumentName: 'id',
|
|
30
|
+
argumentValue: args.id,
|
|
31
31
|
},
|
|
32
32
|
)
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
const entryType = info.schema.getType(context.type.name)
|
|
36
36
|
if (!isObjectType(entryType)) {
|
|
37
|
-
throw
|
|
37
|
+
throw createError(
|
|
38
|
+
`Type "${context.type.name}" is not an ObjectType.`,
|
|
39
|
+
ErrorCode.INTERNAL_ERROR,
|
|
40
|
+
{},
|
|
41
|
+
)
|
|
38
42
|
}
|
|
39
43
|
|
|
40
44
|
const referencedEntryIds = await getReferencedEntryIds(
|
|
@@ -3,6 +3,7 @@ import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util'
|
|
|
3
3
|
import { GraphQLFieldResolver, isObjectType } from 'graphql'
|
|
4
4
|
import { EntryData, EntryDraft } from '@commitspark/git-adapter'
|
|
5
5
|
import { QueryMutationResolverContext } from '../types'
|
|
6
|
+
import { createError, ErrorCode } from '../../errors'
|
|
6
7
|
|
|
7
8
|
function mergeData(
|
|
8
9
|
existingEntryData: EntryData,
|
|
@@ -20,8 +21,12 @@ export const mutationUpdateResolver: GraphQLFieldResolver<
|
|
|
20
21
|
any,
|
|
21
22
|
Promise<EntryData>
|
|
22
23
|
> = async (source, args, context, info) => {
|
|
23
|
-
if (!isObjectType(
|
|
24
|
-
throw
|
|
24
|
+
if (!isObjectType(context.type)) {
|
|
25
|
+
throw createError(
|
|
26
|
+
`Type "${context.type.name}" cannot be mutated as is not an ObjectType.`,
|
|
27
|
+
ErrorCode.INTERNAL_ERROR,
|
|
28
|
+
{},
|
|
29
|
+
)
|
|
25
30
|
}
|
|
26
31
|
|
|
27
32
|
const existingEntry = await findByTypeId(
|
|
@@ -32,7 +37,7 @@ export const mutationUpdateResolver: GraphQLFieldResolver<
|
|
|
32
37
|
)
|
|
33
38
|
|
|
34
39
|
const existingReferencedEntryIds = await getReferencedEntryIds(
|
|
35
|
-
|
|
40
|
+
context.type,
|
|
36
41
|
context,
|
|
37
42
|
null,
|
|
38
43
|
info.returnType,
|
|
@@ -41,7 +46,7 @@ export const mutationUpdateResolver: GraphQLFieldResolver<
|
|
|
41
46
|
|
|
42
47
|
const mergedData = mergeData(existingEntry.data ?? null, args.data)
|
|
43
48
|
const updatedReferencedEntryIds = await getReferencedEntryIds(
|
|
44
|
-
|
|
49
|
+
context.type,
|
|
45
50
|
context,
|
|
46
51
|
null,
|
|
47
52
|
info.returnType,
|
|
@@ -3,7 +3,7 @@ import { findByType } from '../../../persistence/persistence'
|
|
|
3
3
|
import { GraphQLFieldResolver } from 'graphql'
|
|
4
4
|
import { QueryMutationResolverContext } from '../types'
|
|
5
5
|
|
|
6
|
-
export const
|
|
6
|
+
export const queryEveryResolver: GraphQLFieldResolver<
|
|
7
7
|
any,
|
|
8
8
|
QueryMutationResolverContext,
|
|
9
9
|
any,
|
|
@@ -20,6 +20,7 @@ import { GraphQLFieldResolver, GraphQLTypeResolver } from 'graphql'
|
|
|
20
20
|
import { getValidationResult } from './schema-validator'
|
|
21
21
|
import { EntryData } from '@commitspark/git-adapter'
|
|
22
22
|
import { createObjectTypeFieldResolvers } from './resolvers/object-type-field-default-value-resolver-generator'
|
|
23
|
+
import { createError, ErrorCode } from './errors'
|
|
23
24
|
|
|
24
25
|
export async function generateSchema(
|
|
25
26
|
context: ApolloContext,
|
|
@@ -33,7 +34,10 @@ export async function generateSchema(
|
|
|
33
34
|
|
|
34
35
|
const validationResult = getValidationResult(schema)
|
|
35
36
|
if (validationResult.length > 0) {
|
|
36
|
-
throw
|
|
37
|
+
throw createError(`Invalid schema.`, ErrorCode.BAD_SCHEMA, {
|
|
38
|
+
schema: printSchemaWithDirectives(schema),
|
|
39
|
+
argumentValue: validationResult.join('\n'),
|
|
40
|
+
})
|
|
37
41
|
}
|
|
38
42
|
const schemaAnalyzerResult = analyzeSchema(schema)
|
|
39
43
|
|
|
@@ -99,7 +103,8 @@ ${generatedSchemaRootTypeStrings}`
|
|
|
99
103
|
> = {}
|
|
100
104
|
|
|
101
105
|
for (const element of generatedQueriesMutations) {
|
|
102
|
-
generatedQueryResolvers[element.
|
|
106
|
+
generatedQueryResolvers[element.queryEvery.name] =
|
|
107
|
+
element.queryEvery.resolver
|
|
103
108
|
generatedQueryResolvers[element.queryById.name] = element.queryById.resolver
|
|
104
109
|
generatedMutationResolvers[element.createMutation.name] =
|
|
105
110
|
element.createMutation.resolver
|
|
@@ -7,7 +7,7 @@ export function generateSchemaRootTypeStrings(
|
|
|
7
7
|
return (
|
|
8
8
|
`type Query {\n` +
|
|
9
9
|
generatedSchemas
|
|
10
|
-
.map((generated) => ' ' + generated.
|
|
10
|
+
.map((generated) => ' ' + generated.queryEvery.schemaString)
|
|
11
11
|
.join('\n') +
|
|
12
12
|
'\n' +
|
|
13
13
|
generatedSchemas
|