@commitspark/graphql-api 1.0.0-beta.6 → 1.0.0-beta.8
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 +21 -0
- package/README.md +75 -28
- package/dist/cjs/client.d.ts +28 -0
- package/dist/cjs/client.js +15 -22
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/graphql/apollo-config-factory.d.ts +3 -0
- package/dist/cjs/graphql/apollo-config-factory.js +8 -19
- package/dist/cjs/graphql/apollo-config-factory.js.map +1 -1
- package/dist/cjs/graphql/errors.d.ts +19 -0
- package/dist/cjs/graphql/errors.js +1 -1
- package/dist/cjs/graphql/errors.js.map +1 -1
- package/dist/cjs/graphql/input-type-generator.d.ts +5 -0
- package/dist/cjs/graphql/input-type-generator.js +4 -4
- package/dist/cjs/graphql/input-type-generator.js.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.d.ts +17 -0
- package/dist/cjs/graphql/queries-mutations-generator.js +12 -12
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +15 -16
- 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.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +24 -25
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/types.d.ts +11 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js +9 -15
- package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +5 -0
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +25 -5
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +26 -29
- 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.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +24 -24
- 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.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +41 -33
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js +5 -14
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js +5 -14
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js +4 -13
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +2 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +14 -16
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
- package/dist/cjs/graphql/resolvers/types.d.ts +19 -0
- package/dist/cjs/graphql/schema-analyzer.d.ts +8 -0
- package/dist/cjs/graphql/schema-analyzer.js +1 -2
- package/dist/cjs/graphql/schema-analyzer.js.map +1 -1
- package/dist/cjs/graphql/schema-generator.d.ts +3 -0
- package/dist/cjs/graphql/schema-generator.js +75 -85
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.d.ts +2 -0
- package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-reference-util.d.ts +4 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +141 -106
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-type-util.d.ts +4 -0
- package/dist/cjs/graphql/schema-utils/entry-type-util.js +1 -2
- package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/union-type-util.d.ts +3 -0
- package/dist/cjs/graphql/schema-utils/union-type-util.js +3 -3
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-validator.d.ts +2 -0
- package/dist/cjs/graphql/schema-validator.js +3 -7
- package/dist/cjs/graphql/schema-validator.js.map +1 -1
- package/dist/cjs/graphql/util.d.ts +1 -0
- package/dist/cjs/graphql/util.js +13 -0
- package/dist/cjs/graphql/util.js.map +1 -0
- package/dist/cjs/index.d.ts +9 -0
- package/dist/cjs/index.js +8 -19
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/cache.d.ts +12 -0
- package/dist/cjs/persistence/cache.js +11 -20
- package/dist/cjs/persistence/cache.js.map +1 -1
- package/dist/cjs/persistence/persistence.d.ts +6 -0
- package/dist/cjs/persistence/persistence.js +27 -45
- package/dist/cjs/persistence/persistence.js.map +1 -1
- package/dist/esm/client.js +2 -2
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/graphql/apollo-config-factory.js +1 -1
- package/dist/esm/graphql/apollo-config-factory.js.map +1 -1
- package/dist/esm/graphql/errors.js.map +1 -1
- package/dist/esm/graphql/input-type-generator.js +1 -1
- package/dist/esm/graphql/input-type-generator.js.map +1 -1
- package/dist/esm/graphql/queries-mutations-generator.js +6 -6
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +10 -2
- 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 +5 -5
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +25 -8
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +6 -6
- 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 +5 -5
- 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 +10 -9
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js +2 -2
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js +2 -2
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -1
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +12 -5
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -1
- package/dist/esm/graphql/schema-generator.js +8 -15
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-root-type-generator.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +65 -16
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/esm/graphql/util.js +10 -0
- package/dist/esm/graphql/util.js.map +1 -0
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/package.json +1 -0
- package/dist/esm/persistence/cache.js +1 -1
- package/dist/esm/persistence/cache.js.map +1 -1
- package/dist/esm/persistence/persistence.js +1 -1
- package/dist/esm/persistence/persistence.js.map +1 -1
- package/dist/types/client.d.ts +1 -1
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/graphql/apollo-config-factory.d.ts +1 -1
- package/dist/types/graphql/apollo-config-factory.d.ts.map +1 -1
- package/dist/types/graphql/errors.d.ts +0 -1
- package/dist/types/graphql/errors.d.ts.map +1 -1
- package/dist/types/graphql/input-type-generator.d.ts +1 -1
- package/dist/types/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/types/graphql/queries-mutations-generator.d.ts +10 -10
- package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +2 -2
- 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 +2 -2
- package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/types.d.ts +7 -6
- package/dist/types/graphql/resolvers/field-resolvers/types.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +2 -2
- package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +4 -6
- package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +2 -3
- 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 +2 -4
- 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 +2 -3
- 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-by-id-resolver.d.ts +2 -3
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +2 -3
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +2 -3
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +2 -3
- package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -1
- package/dist/types/graphql/resolvers/types.d.ts +16 -4
- package/dist/types/graphql/resolvers/types.d.ts.map +1 -1
- package/dist/types/graphql/schema-generator.d.ts +1 -1
- package/dist/types/graphql/schema-generator.d.ts.map +1 -1
- package/dist/types/graphql/schema-root-type-generator.d.ts +2 -2
- package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +3 -2
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
- package/dist/types/graphql/util.d.ts +2 -0
- package/dist/types/graphql/util.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence/cache.d.ts +1 -1
- package/dist/types/persistence/cache.d.ts.map +1 -1
- package/dist/types/persistence/persistence.d.ts +1 -1
- package/dist/types/persistence/persistence.d.ts.map +1 -1
- package/package.json +7 -5
- package/src/client.ts +3 -3
- package/src/graphql/apollo-config-factory.ts +2 -2
- package/src/graphql/errors.ts +0 -1
- package/src/graphql/input-type-generator.ts +2 -2
- package/src/graphql/queries-mutations-generator.ts +23 -24
- package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +24 -9
- package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +12 -14
- package/src/graphql/resolvers/field-resolvers/types.ts +9 -8
- package/src/graphql/resolvers/field-resolvers/union-value-resolver.ts +3 -5
- package/src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts +44 -27
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +14 -14
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +14 -14
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +18 -18
- package/src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts +8 -9
- package/src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts +8 -9
- package/src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts +8 -9
- package/src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts +22 -10
- package/src/graphql/resolvers/types.ts +28 -6
- package/src/graphql/schema-generator.ts +32 -39
- package/src/graphql/schema-root-type-generator.ts +5 -2
- package/src/graphql/schema-utils/entry-reference-util.ts +123 -24
- package/src/graphql/schema-utils/union-type-util.ts +1 -1
- package/src/graphql/util.ts +11 -0
- package/src/index.ts +3 -3
- package/src/persistence/cache.ts +2 -2
- package/src/persistence/persistence.ts +2 -2
- package/dist/tsconfig.build.cjs.tsbuildinfo +0 -1
- package/dist/tsconfig.build.esm.tsbuildinfo +0 -1
- package/dist/tsconfig.build.types.tsbuildinfo +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [1.0.0-beta.8] - 2026-02-26
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Fix resolver mutating immutable cache data when updating reference
|
|
13
|
+
|
|
14
|
+
### Changed
|
|
15
|
+
|
|
16
|
+
- Upgrade to @commitspark/git-adapter 0.30.0
|
|
17
|
+
|
|
18
|
+
## [1.0.0-beta.7] - 2026-02-19
|
|
19
|
+
|
|
20
|
+
### Fixed
|
|
21
|
+
|
|
22
|
+
- Fix GraphQL bundling issues caused by inconsistent imports
|
|
23
|
+
- Fix incorrect ESM build configuration leading to broken build output
|
|
24
|
+
|
|
25
|
+
### Changed
|
|
26
|
+
|
|
27
|
+
- Upgrade Apollo Server to minimum version 5.2 to include Turbopack build fix and latest security fixes
|
|
28
|
+
|
|
8
29
|
## [1.0.0-beta.6] - 2025-11-28
|
|
9
30
|
|
|
10
31
|
### Changed
|
package/README.md
CHANGED
|
@@ -140,6 +140,13 @@ const rocketFlight = response.data.rocketFlight
|
|
|
140
140
|
|
|
141
141
|
## API
|
|
142
142
|
|
|
143
|
+
### createClient()
|
|
144
|
+
|
|
145
|
+
This function is used to create a Commitspark GraphQL API client instance.
|
|
146
|
+
|
|
147
|
+
Argument `gitAdapter` expects a Commitspark git adapter instance which is then used by the client to access the
|
|
148
|
+
adapter's Git repository.
|
|
149
|
+
|
|
143
150
|
### Client
|
|
144
151
|
|
|
145
152
|
#### postGraphQL()
|
|
@@ -240,6 +247,8 @@ References to types annotated with `@Entry` are serialized using a sub-field `id
|
|
|
240
247
|
For example, consider this variation of our rocket flight schema above:
|
|
241
248
|
|
|
242
249
|
```graphql
|
|
250
|
+
directive @Entry on OBJECT
|
|
251
|
+
|
|
243
252
|
type RocketFlight @Entry {
|
|
244
253
|
id: ID!
|
|
245
254
|
operator: Operator
|
|
@@ -303,26 +312,28 @@ This returns the following data:
|
|
|
303
312
|
|
|
304
313
|
#### Unions
|
|
305
314
|
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
`
|
|
315
|
+
In our rocket example, let's assume we want to store information about a rocket's stages. Assuming there are two
|
|
316
|
+
different types of rocket motors for a rocket stage, a stage could be modeled as a GraphQL union type `Stage`, allowing
|
|
317
|
+
different concrete types `LiquidRocketMotor` or `SolidRocketMotor` to be added to a rocket's `stages` list:
|
|
309
318
|
|
|
310
319
|
```graphql
|
|
311
|
-
|
|
320
|
+
directive @Entry on OBJECT
|
|
321
|
+
|
|
322
|
+
type Rocket @Entry {
|
|
312
323
|
id: ID!
|
|
313
|
-
|
|
324
|
+
stages: [Stage!]!
|
|
314
325
|
}
|
|
315
326
|
|
|
316
|
-
union
|
|
317
|
-
|
|
|
318
|
-
|
|
|
327
|
+
union Stage =
|
|
328
|
+
| LiquidRocketMotor
|
|
329
|
+
| SolidRocketMotor
|
|
319
330
|
|
|
320
|
-
type
|
|
321
|
-
|
|
331
|
+
type LiquidRocketMotor {
|
|
332
|
+
fuelTemperature: Int!
|
|
322
333
|
}
|
|
323
334
|
|
|
324
|
-
type
|
|
325
|
-
|
|
335
|
+
type SolidRocketMotor {
|
|
336
|
+
fuelMass: Int!
|
|
326
337
|
}
|
|
327
338
|
```
|
|
328
339
|
|
|
@@ -330,18 +341,55 @@ During serialization, concrete type instances are represented through an additio
|
|
|
330
341
|
concrete instance's type name as field name:
|
|
331
342
|
|
|
332
343
|
```yaml
|
|
344
|
+
# commitspark/entries/VA256.yaml
|
|
333
345
|
metadata:
|
|
334
|
-
type:
|
|
346
|
+
type: Rocket
|
|
335
347
|
referencedBy: [ ]
|
|
336
348
|
data:
|
|
337
|
-
|
|
338
|
-
-
|
|
339
|
-
|
|
340
|
-
-
|
|
341
|
-
|
|
349
|
+
stages:
|
|
350
|
+
- LiquidRocketMotor:
|
|
351
|
+
fuelTemperature: 21
|
|
352
|
+
- SolidRocketMotor:
|
|
353
|
+
fuelMass: 200000
|
|
354
|
+
```
|
|
355
|
+
|
|
356
|
+
We can now query for a rocket and its stages like this:
|
|
357
|
+
|
|
358
|
+
```graphql
|
|
359
|
+
query {
|
|
360
|
+
Rocket(id: "VA256") {
|
|
361
|
+
id
|
|
362
|
+
stages {
|
|
363
|
+
__typename
|
|
364
|
+
... on LiquidRocketMotor {
|
|
365
|
+
fuelTemperature
|
|
366
|
+
}
|
|
367
|
+
... on SolidRocketMotor {
|
|
368
|
+
fuelMass
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
}
|
|
372
|
+
}
|
|
342
373
|
```
|
|
343
374
|
|
|
344
|
-
|
|
375
|
+
This returns the following schema-conformant result data where the additional level of nesting has been transparently
|
|
376
|
+
removed:
|
|
377
|
+
|
|
378
|
+
```json
|
|
379
|
+
{
|
|
380
|
+
"id": "VA256",
|
|
381
|
+
"stages": [
|
|
382
|
+
{
|
|
383
|
+
"__typename": "LiquidRocketMotor",
|
|
384
|
+
"fuelTemperature": 21
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"__typename": "SolidRocketMotor",
|
|
388
|
+
"fuelMass": 200000
|
|
389
|
+
}
|
|
390
|
+
]
|
|
391
|
+
}
|
|
392
|
+
```
|
|
345
393
|
|
|
346
394
|
# Error handling
|
|
347
395
|
|
|
@@ -372,15 +420,14 @@ Example GraphQL response with error:
|
|
|
372
420
|
The following error codes are returned together with error codes of Git adapters as
|
|
373
421
|
documented [here](https://github.com/commitspark/git-adapter):
|
|
374
422
|
|
|
375
|
-
| Error code | Description
|
|
376
|
-
|
|
377
|
-
| `BAD_USER_INPUT` | Invalid input data provided by the caller
|
|
378
|
-
| `NOT_FOUND` | Requested resource (entry, type, etc.) does not exist
|
|
379
|
-
| `BAD_REPOSITORY_DATA` | Data in the repository is malformed or invalid
|
|
380
|
-
| `
|
|
381
|
-
| `
|
|
382
|
-
| `
|
|
383
|
-
| `INTERNAL_ERROR` | Internal processing error |
|
|
423
|
+
| Error code | Description |
|
|
424
|
+
|------------------------|--------------------------------------------------------------------|
|
|
425
|
+
| `BAD_USER_INPUT` | Invalid input data provided by the caller |
|
|
426
|
+
| `NOT_FOUND` | Requested resource (entry, type, etc.) does not exist |
|
|
427
|
+
| `BAD_REPOSITORY_DATA` | Data in the repository is malformed or invalid according to schema |
|
|
428
|
+
| `BAD_SCHEMA` | Schema definition is malformed or invalid |
|
|
429
|
+
| `IN_USE` | Entry cannot be deleted because it is referenced by other entries |
|
|
430
|
+
| `INTERNAL_ERROR` | Internal processing error |
|
|
384
431
|
|
|
385
432
|
# License
|
|
386
433
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { DocumentNode, GraphQLFormattedError, TypedQueryDocumentNode } from 'graphql';
|
|
2
|
+
import { GitAdapter } from '@commitspark/git-adapter';
|
|
3
|
+
import { GraphQLRequest } from '@apollo/server';
|
|
4
|
+
import { RepositoryCacheHandler } from './persistence/cache.ts';
|
|
5
|
+
export type VariableValues = {
|
|
6
|
+
[name: string]: unknown;
|
|
7
|
+
};
|
|
8
|
+
export type ApolloExecuteOperationRequest<TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues> = Omit<GraphQLRequest<TVariables>, 'query'> & {
|
|
9
|
+
query?: string | DocumentNode | TypedQueryDocumentNode<TData, TVariables>;
|
|
10
|
+
};
|
|
11
|
+
export declare const postGraphQL: <TData = Record<string, unknown>, TVariables extends VariableValues = VariableValues>(gitAdapter: GitAdapter, repositoryCache: RepositoryCacheHandler, ref: string, request: ApolloExecuteOperationRequest<TData, TVariables>) => Promise<GraphQLResponse<TData | null>>;
|
|
12
|
+
export declare const getSchema: (gitAdapter: GitAdapter, repositoryCache: RepositoryCacheHandler, ref: string) => Promise<SchemaResponse>;
|
|
13
|
+
export interface ApolloContext {
|
|
14
|
+
branch: string;
|
|
15
|
+
gitAdapter: GitAdapter;
|
|
16
|
+
getCurrentHash(): string;
|
|
17
|
+
setCurrentHash(sha: string): void;
|
|
18
|
+
repositoryCache: RepositoryCacheHandler;
|
|
19
|
+
}
|
|
20
|
+
export interface GraphQLResponse<TData> {
|
|
21
|
+
ref: string;
|
|
22
|
+
data?: TData;
|
|
23
|
+
errors: ReadonlyArray<GraphQLFormattedError> | undefined;
|
|
24
|
+
}
|
|
25
|
+
export interface SchemaResponse {
|
|
26
|
+
ref: string;
|
|
27
|
+
data: string;
|
|
28
|
+
}
|
package/dist/cjs/client.js
CHANGED
|
@@ -1,20 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.getSchema = exports.postGraphQL = void 0;
|
|
13
|
-
const
|
|
14
|
-
const
|
|
4
|
+
const apollo_config_factory_ts_1 = require("./graphql/apollo-config-factory.js");
|
|
5
|
+
const schema_generator_ts_1 = require("./graphql/schema-generator.js");
|
|
15
6
|
const server_1 = require("@apollo/server");
|
|
16
|
-
const postGraphQL = (gitAdapter, repositoryCache, ref, request) =>
|
|
17
|
-
let currentHash =
|
|
7
|
+
const postGraphQL = async (gitAdapter, repositoryCache, ref, request) => {
|
|
8
|
+
let currentHash = await gitAdapter.getLatestCommitHash(ref);
|
|
18
9
|
const context = {
|
|
19
10
|
branch: ref,
|
|
20
11
|
gitAdapter: gitAdapter,
|
|
@@ -26,12 +17,14 @@ const postGraphQL = (gitAdapter, repositoryCache, ref, request) => __awaiter(voi
|
|
|
26
17
|
},
|
|
27
18
|
repositoryCache: repositoryCache,
|
|
28
19
|
};
|
|
29
|
-
const apolloDriverConfig =
|
|
30
|
-
const apolloServer = new server_1.ApolloServer(
|
|
31
|
-
|
|
20
|
+
const apolloDriverConfig = await (0, apollo_config_factory_ts_1.createApolloConfig)(context);
|
|
21
|
+
const apolloServer = new server_1.ApolloServer({
|
|
22
|
+
...apolloDriverConfig,
|
|
23
|
+
});
|
|
24
|
+
const result = await apolloServer.executeOperation(request, {
|
|
32
25
|
contextValue: context,
|
|
33
26
|
});
|
|
34
|
-
|
|
27
|
+
await apolloServer.stop();
|
|
35
28
|
return {
|
|
36
29
|
ref: context.getCurrentHash(),
|
|
37
30
|
data: result.body.kind === 'single' ? result.body.singleResult.data : undefined,
|
|
@@ -39,10 +32,10 @@ const postGraphQL = (gitAdapter, repositoryCache, ref, request) => __awaiter(voi
|
|
|
39
32
|
? result.body.singleResult.errors
|
|
40
33
|
: undefined,
|
|
41
34
|
};
|
|
42
|
-
}
|
|
35
|
+
};
|
|
43
36
|
exports.postGraphQL = postGraphQL;
|
|
44
|
-
const getSchema = (gitAdapter, repositoryCache, ref) =>
|
|
45
|
-
let currentHash =
|
|
37
|
+
const getSchema = async (gitAdapter, repositoryCache, ref) => {
|
|
38
|
+
let currentHash = await gitAdapter.getLatestCommitHash(ref);
|
|
46
39
|
const context = {
|
|
47
40
|
branch: ref,
|
|
48
41
|
gitAdapter: gitAdapter,
|
|
@@ -54,7 +47,7 @@ const getSchema = (gitAdapter, repositoryCache, ref) => __awaiter(void 0, void 0
|
|
|
54
47
|
},
|
|
55
48
|
repositoryCache: repositoryCache,
|
|
56
49
|
};
|
|
57
|
-
const typeDefinitionStrings = (
|
|
50
|
+
const typeDefinitionStrings = (await (0, schema_generator_ts_1.generateSchema)(context)).typeDefs;
|
|
58
51
|
if (!Array.isArray(typeDefinitionStrings)) {
|
|
59
52
|
throw new Error('Expected array of typeDefinition strings.');
|
|
60
53
|
}
|
|
@@ -62,6 +55,6 @@ const getSchema = (gitAdapter, repositoryCache, ref) => __awaiter(void 0, void 0
|
|
|
62
55
|
ref: context.getCurrentHash(),
|
|
63
56
|
data: typeDefinitionStrings.join('\n'),
|
|
64
57
|
};
|
|
65
|
-
}
|
|
58
|
+
};
|
|
66
59
|
exports.getSchema = getSchema;
|
|
67
60
|
//# sourceMappingURL=client.js.map
|
package/dist/cjs/client.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":";;;AAAA,iFAAuE;AACvE,uEAA8D;AAO9D,2CAIuB;AAYhB,MAAM,WAAW,GAAG,KAAK,EAI9B,UAAsB,EACtB,eAAuC,EACvC,GAAW,EACX,OAAyD,EACjB,EAAE;IAC1C,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,cAAc;YACZ,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,cAAc,CAAC,MAAc;YAC3B,WAAW,GAAG,MAAM,CAAA;QACtB,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAA;IAED,MAAM,kBAAkB,GACtB,MAAM,IAAA,6CAAkB,EAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,qBAAY,CAAgB;QACnD,GAAG,kBAAkB;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAChD,OAAO,EACP;QACE,YAAY,EAAE,OAAO;KACtB,CACF,CAAA;IAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE;QAC7B,IAAI,EACF,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC,CAAA;AA/CY,QAAA,WAAW,eA+CvB;AAEM,MAAM,SAAS,GAAG,KAAK,EAC5B,UAAsB,EACtB,eAAuC,EACvC,GAAW,EACc,EAAE;IAC3B,IAAI,WAAW,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC3D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,cAAc;YACZ,OAAO,WAAW,CAAA;QACpB,CAAC;QACD,cAAc,CAAC,MAAc;YAC3B,WAAW,GAAG,MAAM,CAAA;QACtB,CAAC;QACD,eAAe,EAAE,eAAe;KACjC,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,IAAA,oCAAc,EAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,cAAc,EAAE;QAC7B,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;KACvC,CAAA;AACH,CAAC,CAAA;AA3BY,QAAA,SAAS,aA2BrB"}
|
|
@@ -1,26 +1,15 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.createApolloConfig = createApolloConfig;
|
|
13
4
|
const schema_1 = require("@graphql-tools/schema");
|
|
14
|
-
const
|
|
5
|
+
const schema_generator_ts_1 = require("./schema-generator.js");
|
|
15
6
|
const disabled_1 = require("@apollo/server/plugin/disabled");
|
|
16
|
-
function createApolloConfig(context) {
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
};
|
|
24
|
-
});
|
|
7
|
+
async function createApolloConfig(context) {
|
|
8
|
+
const schemaDefinition = await (0, schema_generator_ts_1.generateSchema)(context);
|
|
9
|
+
const schema = (0, schema_1.makeExecutableSchema)(schemaDefinition);
|
|
10
|
+
return {
|
|
11
|
+
schema: schema,
|
|
12
|
+
plugins: [(0, disabled_1.ApolloServerPluginUsageReportingDisabled)()],
|
|
13
|
+
};
|
|
25
14
|
}
|
|
26
15
|
//# sourceMappingURL=apollo-config-factory.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apollo-config-factory.js","sourceRoot":"","sources":["../../../src/graphql/apollo-config-factory.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"apollo-config-factory.js","sourceRoot":"","sources":["../../../src/graphql/apollo-config-factory.ts"],"names":[],"mappings":";;AAMA,gDAUC;AAhBD,kDAA4D;AAC5D,+DAAsD;AAGtD,6DAAyF;AAElF,KAAK,UAAU,kBAAkB,CACtC,OAAsB;IAEtB,MAAM,gBAAgB,GAAG,MAAM,IAAA,oCAAc,EAAC,OAAO,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,IAAA,6BAAoB,EAAC,gBAAgB,CAAC,CAAA;IAErD,OAAO;QACL,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,CAAC,IAAA,mDAAwC,GAAE,CAAC;KAChB,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { GraphQLError } from 'graphql';
|
|
2
|
+
import { ErrorCode as AdapterErrorCode } from '@commitspark/git-adapter';
|
|
3
|
+
export declare const enum ErrorCode {
|
|
4
|
+
BAD_USER_INPUT = "BAD_USER_INPUT",
|
|
5
|
+
NOT_FOUND = "NOT_FOUND",
|
|
6
|
+
BAD_REPOSITORY_DATA = "BAD_REPOSITORY_DATA",
|
|
7
|
+
BAD_SCHEMA = "BAD_SCHEMA",
|
|
8
|
+
INTERNAL_ERROR = "INTERNAL_ERROR",
|
|
9
|
+
IN_USE = "IN_USE"
|
|
10
|
+
}
|
|
11
|
+
export interface ErrorMetadata {
|
|
12
|
+
typeName?: string;
|
|
13
|
+
fieldName?: string;
|
|
14
|
+
fieldValue?: unknown;
|
|
15
|
+
argumentName?: string;
|
|
16
|
+
argumentValue?: unknown;
|
|
17
|
+
schema?: string;
|
|
18
|
+
}
|
|
19
|
+
export declare const createError: (message: string, code: ErrorCode | AdapterErrorCode, metaData: ErrorMetadata) => GraphQLError;
|
|
@@ -7,7 +7,7 @@ const createError = (message, code, metaData) => {
|
|
|
7
7
|
Array.isArray(metaData.fieldValue)
|
|
8
8
|
? JSON.stringify(metaData.fieldValue)
|
|
9
9
|
: metaData.fieldValue;
|
|
10
|
-
const updatedMetaData =
|
|
10
|
+
const updatedMetaData = { ...metaData };
|
|
11
11
|
if (serializedFieldValue !== undefined) {
|
|
12
12
|
updatedMetaData.fieldValue = serializedFieldValue;
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":";;;AAAA,qCAAsC;AAqB/B,MAAM,WAAW,GAAG,CACzB,OAAe,EACf,IAAkC,EAClC,QAAuB,EACT,EAAE;IAChB,MAAM,oBAAoB,GACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAA;IACzB,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAA;IACvC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,CAAC,UAAU,GAAG,oBAAoB,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,sBAAY,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;SAC7B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA;AArBY,QAAA,WAAW,eAqBvB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { GraphQLObjectType, GraphQLUnionType } from 'graphql';
|
|
2
|
+
import { SchemaAnalyzerResult } from './schema-analyzer.ts';
|
|
3
|
+
export declare function generateIdInputTypeStrings(schemaAnalyzerResult: SchemaAnalyzerResult): string[];
|
|
4
|
+
export declare function generateObjectInputTypeStrings(objectTypes: GraphQLObjectType[]): string[];
|
|
5
|
+
export declare function generateUnionInputTypeStrings(unionTypes: GraphQLUnionType[]): string[];
|
|
@@ -4,7 +4,7 @@ exports.generateIdInputTypeStrings = generateIdInputTypeStrings;
|
|
|
4
4
|
exports.generateObjectInputTypeStrings = generateObjectInputTypeStrings;
|
|
5
5
|
exports.generateUnionInputTypeStrings = generateUnionInputTypeStrings;
|
|
6
6
|
const graphql_1 = require("graphql");
|
|
7
|
-
const
|
|
7
|
+
const entry_type_util_ts_1 = require("./schema-utils/entry-type-util.js");
|
|
8
8
|
function generateFieldInputTypeString(type) {
|
|
9
9
|
if ((0, graphql_1.isListType)(type)) {
|
|
10
10
|
return `[${generateFieldInputTypeString(type.ofType)}]`;
|
|
@@ -13,7 +13,7 @@ function generateFieldInputTypeString(type) {
|
|
|
13
13
|
return `${generateFieldInputTypeString(type.ofType)}!`;
|
|
14
14
|
}
|
|
15
15
|
else if ((0, graphql_1.isObjectType)(type)) {
|
|
16
|
-
if ((0,
|
|
16
|
+
if ((0, entry_type_util_ts_1.hasEntryDirective)(type)) {
|
|
17
17
|
return `${type.name}IdInput`;
|
|
18
18
|
}
|
|
19
19
|
else {
|
|
@@ -25,7 +25,7 @@ function generateFieldInputTypeString(type) {
|
|
|
25
25
|
return '';
|
|
26
26
|
}
|
|
27
27
|
else if ((0, graphql_1.isUnionType)(type)) {
|
|
28
|
-
if ((0,
|
|
28
|
+
if ((0, entry_type_util_ts_1.buildsOnTypeWithEntryDirective)(type)) {
|
|
29
29
|
return `${type.name}IdInput`;
|
|
30
30
|
}
|
|
31
31
|
else {
|
|
@@ -75,7 +75,7 @@ function generateObjectInputTypeStrings(objectTypes) {
|
|
|
75
75
|
}
|
|
76
76
|
function generateUnionInputTypeStrings(unionTypes) {
|
|
77
77
|
const typeStrings = unionTypes.map((unionType) => {
|
|
78
|
-
if ((0,
|
|
78
|
+
if ((0, entry_type_util_ts_1.buildsOnTypeWithEntryDirective)(unionType)) {
|
|
79
79
|
return '';
|
|
80
80
|
}
|
|
81
81
|
// see https://github.com/graphql/graphql-spec/pull/825
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":";;AAgDA,gEAmBC;AAED,wEAgCC;AAED,sEAsBC;AA7HD,qCAcgB;AAEhB,
|
|
1
|
+
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { EntryData } from '@commitspark/git-adapter';
|
|
2
|
+
import { GraphQLObjectType } from 'graphql';
|
|
3
|
+
import { QueryMutationResolver } from './resolvers/types.ts';
|
|
4
|
+
export declare function generateQueriesAndMutations(entryDirectiveTypes: GraphQLObjectType[]): GeneratedSchema[];
|
|
5
|
+
export declare function generateTypeNameQuery(): GeneratedQuery;
|
|
6
|
+
export interface GeneratedSchema {
|
|
7
|
+
queryEvery: GeneratedQuery;
|
|
8
|
+
queryById: GeneratedQuery;
|
|
9
|
+
createMutation: GeneratedQuery;
|
|
10
|
+
updateMutation: GeneratedQuery;
|
|
11
|
+
deleteMutation: GeneratedQuery;
|
|
12
|
+
}
|
|
13
|
+
export interface GeneratedQuery {
|
|
14
|
+
name: string;
|
|
15
|
+
schemaString: string;
|
|
16
|
+
resolver: QueryMutationResolver<EntryData | EntryData[] | string>;
|
|
17
|
+
}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.generateQueriesAndMutations = generateQueriesAndMutations;
|
|
4
4
|
exports.generateTypeNameQuery = generateTypeNameQuery;
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
5
|
+
const query_every_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-every-resolver.js");
|
|
6
|
+
const query_by_id_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-by-id-resolver.js");
|
|
7
|
+
const mutation_create_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/mutation-create-resolver.js");
|
|
8
|
+
const mutation_update_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/mutation-update-resolver.js");
|
|
9
|
+
const mutation_delete_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/mutation-delete-resolver.js");
|
|
10
|
+
const query_type_by_id_resolver_ts_1 = require("./resolvers/query-mutation-resolvers/query-type-by-id-resolver.js");
|
|
11
11
|
function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
12
12
|
return entryDirectiveTypes.map((objectType) => {
|
|
13
13
|
const typeName = objectType.name;
|
|
@@ -15,20 +15,20 @@ function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
|
15
15
|
// pluralization of user-provided typeName
|
|
16
16
|
const queryEveryName = `every${typeName}`;
|
|
17
17
|
const queryEveryString = `${queryEveryName}: [${objectType.name}!]`;
|
|
18
|
-
const queryEveryResolverFunc = (source, args, context, info) => (0,
|
|
18
|
+
const queryEveryResolverFunc = (source, args, context, info) => (0, query_every_resolver_ts_1.queryEveryResolver)(source, args, { ...context, type: objectType }, info);
|
|
19
19
|
const queryByIdName = typeName;
|
|
20
20
|
const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`;
|
|
21
|
-
const queryByIdResolverFunc = (source, args, context, info) => (0,
|
|
21
|
+
const queryByIdResolverFunc = (source, args, context, info) => (0, query_by_id_resolver_ts_1.queryByIdResolver)(source, args, { ...context, type: objectType }, info);
|
|
22
22
|
const inputTypeName = `${typeName}Input`;
|
|
23
23
|
const createMutationName = `create${typeName}`;
|
|
24
24
|
const createMutationString = `${createMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`;
|
|
25
|
-
const createMutationResolver = (source, args, context, info) => (0,
|
|
25
|
+
const createMutationResolver = (source, args, context, info) => (0, mutation_create_resolver_ts_1.mutationCreateResolver)(source, args, { ...context, type: objectType }, info);
|
|
26
26
|
const updateMutationName = `update${typeName}`;
|
|
27
27
|
const updateMutationString = `${updateMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`;
|
|
28
|
-
const updateMutationResolver = (source, args, context, info) => (0,
|
|
28
|
+
const updateMutationResolver = (source, args, context, info) => (0, mutation_update_resolver_ts_1.mutationUpdateResolver)(source, args, { ...context, type: objectType }, info);
|
|
29
29
|
const deleteMutationName = `delete${typeName}`;
|
|
30
30
|
const deleteMutationString = `${deleteMutationName}(id: ID!, commitMessage: String): ID`;
|
|
31
|
-
const deleteMutationResolver = (source, args, context, info) => (0,
|
|
31
|
+
const deleteMutationResolver = (source, args, context, info) => (0, mutation_delete_resolver_ts_1.mutationDeleteResolver)(source, args, { ...context, type: objectType }, info);
|
|
32
32
|
return {
|
|
33
33
|
queryEvery: {
|
|
34
34
|
name: queryEveryName,
|
|
@@ -64,7 +64,7 @@ function generateTypeNameQuery() {
|
|
|
64
64
|
return {
|
|
65
65
|
name: entryTypeQueryName,
|
|
66
66
|
schemaString: entryTypeQueryString,
|
|
67
|
-
resolver:
|
|
67
|
+
resolver: query_type_by_id_resolver_ts_1.queryTypeByIdResolver,
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
70
|
//# sourceMappingURL=queries-mutations-generator.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,27 +1,26 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
3
|
exports.resolveEntryReference = void 0;
|
|
13
4
|
const graphql_1 = require("graphql");
|
|
14
|
-
const
|
|
15
|
-
const
|
|
16
|
-
const resolveEntryReference = (fieldValue, args, context, info) =>
|
|
5
|
+
const persistence_ts_1 = require("../../../persistence/persistence.js");
|
|
6
|
+
const errors_ts_1 = require("../../errors.js");
|
|
7
|
+
const resolveEntryReference = async (fieldValue, args, context, info) => {
|
|
17
8
|
void info;
|
|
18
9
|
if (!(0, graphql_1.isNamedType)(context.currentType)) {
|
|
19
|
-
throw (0,
|
|
10
|
+
throw (0, errors_ts_1.createError)(`Expected context.currentType type to be a named type.`, "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {
|
|
20
11
|
fieldValue: fieldValue,
|
|
21
12
|
});
|
|
22
13
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
14
|
+
if (fieldValue === null ||
|
|
15
|
+
typeof fieldValue !== 'object' ||
|
|
16
|
+
!('id' in fieldValue) ||
|
|
17
|
+
typeof fieldValue.id !== 'string') {
|
|
18
|
+
throw (0, errors_ts_1.createError)('Expected fieldValue.id to be a string.', "INTERNAL_ERROR" /* ErrorCode.INTERNAL_ERROR */, {
|
|
19
|
+
fieldValue: fieldValue,
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
const entry = await (0, persistence_ts_1.findById)(context, fieldValue.id);
|
|
23
|
+
return { ...entry.data, id: entry.id };
|
|
24
|
+
};
|
|
26
25
|
exports.resolveEntryReference = resolveEntryReference;
|
|
27
26
|
//# sourceMappingURL=entry-reference-resolver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":";;;AACA,qCAAqC;AACrC,wEAA8D;AAC9D,+CAAwD;AAEjD,MAAM,qBAAqB,GAAkB,KAAK,EACvD,UAAU,EACV,IAAI,EACJ,OAAO,EACP,IAAI,EACJ,EAAE;IACF,KAAK,IAAI,CAAA;IACT,IAAI,CAAC,IAAA,qBAAW,EAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,IAAA,uBAAW,EACf,uDAAuD,mDAEvD;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,IACE,UAAU,KAAK,IAAI;QACnB,OAAO,UAAU,KAAK,QAAQ;QAC9B,CAAC,CAAC,IAAI,IAAI,UAAU,CAAC;QACrB,OAAO,UAAU,CAAC,EAAE,KAAK,QAAQ,EACjC,CAAC;QACD,MAAM,IAAA,uBAAW,EACf,wCAAwC,mDAExC;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,IAAA,yBAAQ,EAAC,OAAO,EAAE,UAAU,CAAC,EAAE,CAAC,CAAA;IAEpD,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;AACxC,CAAC,CAAA;AAnCY,QAAA,qBAAqB,yBAmCjC"}
|