@commitspark/graphql-api 1.0.0-beta.1 → 1.0.0-beta.2

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.
Files changed (103) hide show
  1. package/CHANGELOG.md +7 -0
  2. package/README.md +3 -3
  3. package/dist/cjs/client.js +1 -1
  4. package/dist/cjs/client.js.map +1 -1
  5. package/dist/cjs/graphql/errors.js +32 -0
  6. package/dist/cjs/graphql/errors.js.map +1 -0
  7. package/dist/cjs/graphql/queries-mutations-generator.js +10 -8
  8. package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
  9. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +4 -1
  10. package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
  11. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +15 -3
  12. package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
  13. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +10 -13
  14. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
  15. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +5 -6
  16. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
  17. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +5 -4
  18. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
  19. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.js → query-every-resolver.js} +4 -4
  20. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
  21. package/dist/cjs/graphql/schema-generator.js +7 -2
  22. package/dist/cjs/graphql/schema-generator.js.map +1 -1
  23. package/dist/cjs/graphql/schema-root-type-generator.js +1 -1
  24. package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -1
  25. package/dist/cjs/graphql/schema-utils/entry-reference-util.js +26 -18
  26. package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
  27. package/dist/cjs/graphql/schema-utils/union-type-util.js +9 -4
  28. package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
  29. package/dist/cjs/index.js +3 -0
  30. package/dist/cjs/index.js.map +1 -1
  31. package/dist/cjs/persistence/persistence.js +11 -14
  32. package/dist/cjs/persistence/persistence.js.map +1 -1
  33. package/dist/esm/client.js +1 -1
  34. package/dist/esm/client.js.map +1 -1
  35. package/dist/esm/graphql/errors.js +28 -0
  36. package/dist/esm/graphql/errors.js.map +1 -0
  37. package/dist/esm/graphql/queries-mutations-generator.js +10 -8
  38. package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
  39. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +4 -1
  40. package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -1
  41. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +15 -3
  42. package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
  43. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +11 -14
  44. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -1
  45. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +6 -7
  46. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -1
  47. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +5 -4
  48. package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
  49. package/dist/esm/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.js → query-every-resolver.js} +2 -2
  50. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -0
  51. package/dist/esm/graphql/schema-generator.js +7 -2
  52. package/dist/esm/graphql/schema-generator.js.map +1 -1
  53. package/dist/esm/graphql/schema-root-type-generator.js +1 -1
  54. package/dist/esm/graphql/schema-root-type-generator.js.map +1 -1
  55. package/dist/esm/graphql/schema-utils/entry-reference-util.js +27 -19
  56. package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
  57. package/dist/esm/graphql/schema-utils/union-type-util.js +9 -4
  58. package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
  59. package/dist/esm/index.js +2 -0
  60. package/dist/esm/index.js.map +1 -1
  61. package/dist/esm/persistence/persistence.js +11 -14
  62. package/dist/esm/persistence/persistence.js.map +1 -1
  63. package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
  64. package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
  65. package/dist/tsconfig.build.types.tsbuildinfo +1 -1
  66. package/dist/types/graphql/errors.d.ts +20 -0
  67. package/dist/types/graphql/errors.d.ts.map +1 -0
  68. package/dist/types/graphql/queries-mutations-generator.d.ts +1 -1
  69. package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -1
  70. package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -1
  71. package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -1
  72. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
  73. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
  74. package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
  75. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +5 -0
  76. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
  77. package/dist/types/graphql/schema-generator.d.ts.map +1 -1
  78. package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
  79. package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -2
  80. package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
  81. package/dist/types/index.d.ts +2 -1
  82. package/dist/types/index.d.ts.map +1 -1
  83. package/dist/types/persistence/persistence.d.ts.map +1 -1
  84. package/package.json +10 -2
  85. package/src/client.ts +1 -1
  86. package/src/graphql/errors.ts +43 -0
  87. package/src/graphql/queries-mutations-generator.ts +12 -10
  88. package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +8 -1
  89. package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +23 -5
  90. package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +22 -14
  91. package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +12 -8
  92. package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +9 -4
  93. package/src/graphql/resolvers/query-mutation-resolvers/{query-all-resolver.ts → query-every-resolver.ts} +1 -1
  94. package/src/graphql/schema-generator.ts +7 -2
  95. package/src/graphql/schema-root-type-generator.ts +1 -1
  96. package/src/graphql/schema-utils/entry-reference-util.ts +44 -22
  97. package/src/graphql/schema-utils/union-type-util.ts +20 -7
  98. package/src/index.ts +2 -1
  99. package/src/persistence/persistence.ts +13 -15
  100. package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +0 -1
  101. package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +0 -1
  102. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts +0 -5
  103. package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts.map +0 -1
@@ -1,8 +1,15 @@
1
1
  import { EntryData } from '@commitspark/git-adapter'
2
+ import { createError, ErrorCode } from '../errors'
2
3
 
3
- export function getUnionTypeNameFromFieldValue(fieldValue: any): string {
4
- if (typeof fieldValue !== 'object') {
5
- throw new Error('Expected object as union value')
4
+ export function getUnionTypeNameFromFieldValue(fieldValue: unknown): string {
5
+ if (typeof fieldValue !== 'object' || fieldValue === null) {
6
+ throw createError(
7
+ `Expected object value in order to determine union type name.`,
8
+ ErrorCode.BAD_REPOSITORY_DATA,
9
+ {
10
+ fieldValue: fieldValue,
11
+ },
12
+ )
6
13
  }
7
14
 
8
15
  // Based on our @oneOf directive, we expect only one field whose name
@@ -10,11 +17,17 @@ export function getUnionTypeNameFromFieldValue(fieldValue: any): string {
10
17
  return Object.keys(fieldValue)[0]
11
18
  }
12
19
 
13
- export function getUnionValue(fieldValue: any): EntryData {
14
- if (typeof fieldValue !== 'object') {
15
- throw new Error('Expected object as union value')
20
+ export function getUnionValue(fieldValue: unknown): EntryData {
21
+ if (typeof fieldValue !== 'object' || fieldValue === null) {
22
+ throw createError(
23
+ `Expected object value in order to determine union value.`,
24
+ ErrorCode.BAD_REPOSITORY_DATA,
25
+ {
26
+ fieldValue: fieldValue,
27
+ },
28
+ )
16
29
  }
17
30
 
18
31
  const firstKey = Object.keys(fieldValue)[0]
19
- return fieldValue[firstKey]
32
+ return (fieldValue as Record<string, EntryData>)[firstKey]
20
33
  }
package/src/index.ts CHANGED
@@ -7,6 +7,7 @@ import {
7
7
  VariableValues,
8
8
  } from './client'
9
9
  import { GitAdapter } from '@commitspark/git-adapter'
10
+ import { ErrorCode, ErrorMetadata } from './graphql/errors'
10
11
 
11
12
  interface Client {
12
13
  postGraphQL<
@@ -19,7 +20,7 @@ interface Client {
19
20
  getSchema(ref: string): Promise<SchemaResponse>
20
21
  }
21
22
 
22
- export { Client, GraphQLResponse, SchemaResponse }
23
+ export { Client, GraphQLResponse, SchemaResponse, ErrorCode, ErrorMetadata }
23
24
 
24
25
  export async function createClient(gitAdapter: GitAdapter): Promise<Client> {
25
26
  return {
@@ -1,5 +1,5 @@
1
1
  import { Entry, GitAdapter } from '@commitspark/git-adapter'
2
- import { GraphQLError } from 'graphql'
2
+ import { createError, ErrorCode } from '../graphql/errors'
3
3
 
4
4
  export async function getTypeById(
5
5
  gitAdapter: GitAdapter,
@@ -9,10 +9,9 @@ export async function getTypeById(
9
9
  const allEntries = await gitAdapter.getEntries(commitHash)
10
10
  const requestedEntry = allEntries.find((entry: Entry) => entry.id === id)
11
11
  if (requestedEntry === undefined) {
12
- throw new GraphQLError(`Not found: ${id}`, {
13
- extensions: {
14
- code: 'NOT_FOUND',
15
- },
12
+ throw createError(`No entry with id "${id}" exists.`, ErrorCode.NOT_FOUND, {
13
+ argumentName: 'id',
14
+ argumentValue: id,
16
15
  })
17
16
  }
18
17
 
@@ -27,10 +26,9 @@ export async function findById(
27
26
  const allEntries = await gitAdapter.getEntries(commitHash)
28
27
  const requestedEntry = allEntries.find((entry: Entry) => entry.id === id)
29
28
  if (requestedEntry === undefined) {
30
- throw new GraphQLError(`Not found: ${id}`, {
31
- extensions: {
32
- code: 'NOT_FOUND',
33
- },
29
+ throw createError(`No entry with id "${id}" exists.`, ErrorCode.NOT_FOUND, {
30
+ argumentName: 'id',
31
+ argumentValue: id,
34
32
  })
35
33
  }
36
34
 
@@ -57,13 +55,13 @@ export async function findByTypeId(
57
55
  (entry: Entry) => entry.id === id && entry.metadata.type === type,
58
56
  )
59
57
  if (requestedEntry === undefined) {
60
- throw new GraphQLError(
61
- `No entry of type "${type}" with id "${id}" exists`,
58
+ throw createError(
59
+ `No entry of type "${type}" with id "${id}" exists.`,
60
+ ErrorCode.NOT_FOUND,
62
61
  {
63
- extensions: {
64
- code: 'BAD_USER_INPUT',
65
- argumentName: 'id',
66
- },
62
+ typeName: type,
63
+ argumentName: 'id',
64
+ argumentValue: id,
67
65
  },
68
66
  )
69
67
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-all-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-all-resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,kEAA6D;AAItD,MAAM,gBAAgB,GAKzB,CAAO,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrC,MAAM,OAAO,GAAG,MAAM,IAAA,wBAAU,EAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAClB,CAAA;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,uCAAY,KAAK,CAAC,IAAI,KAAE,EAAE,EAAE,KAAK,CAAC,EAAE,IAAE;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA,CAAA;AAfY,QAAA,gBAAgB,oBAe5B"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-all-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-all-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAI7D,MAAM,CAAC,MAAM,gBAAgB,GAKzB,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrC,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAClB,CAAA;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
@@ -1,5 +0,0 @@
1
- import { EntryData } from '@commitspark/git-adapter';
2
- import { GraphQLFieldResolver } from 'graphql';
3
- import { QueryMutationResolverContext } from '../types';
4
- export declare const queryAllResolver: GraphQLFieldResolver<any, QueryMutationResolverContext, any, Promise<EntryData[]>>;
5
- //# sourceMappingURL=query-all-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"query-all-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-all-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,gBAAgB,EAAE,oBAAoB,CACjD,GAAG,EACH,4BAA4B,EAC5B,GAAG,EACH,OAAO,CAAC,SAAS,EAAE,CAAC,CAWrB,CAAA"}