@commitspark/graphql-api 2.0.0-beta.3 → 2.0.0-beta.4
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 +26 -0
- package/README.md +19 -9
- package/dist/cjs/client.d.ts +1 -0
- package/dist/cjs/graphql/apollo-config-factory.d.ts +1 -0
- package/dist/cjs/graphql/errors.d.ts +1 -0
- package/dist/cjs/graphql/input-type-generator.d.ts +1 -0
- package/dist/{types → cjs}/graphql/input-type-generator.d.ts.map +1 -1
- package/dist/cjs/graphql/input-type-generator.js.map +1 -1
- package/dist/cjs/graphql/queries-mutations-generator.d.ts +10 -1
- package/dist/cjs/graphql/queries-mutations-generator.d.ts.map +1 -0
- package/dist/cjs/graphql/queries-mutations-generator.js +14 -0
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts +3 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.js +7 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/referenced-by-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/types.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +1 -0
- package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +8 -23
- 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 +1 -0
- package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +4 -21
- 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 +1 -0
- package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -1
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +9 -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 +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +1 -0
- package/dist/cjs/graphql/resolvers/types.d.ts +5 -1
- package/dist/cjs/graphql/resolvers/types.d.ts.map +1 -0
- package/dist/cjs/graphql/schema-analyzer.d.ts +1 -0
- package/dist/cjs/graphql/schema-generator.d.ts +1 -0
- package/dist/cjs/graphql/schema-generator.d.ts.map +1 -0
- package/dist/cjs/graphql/schema-generator.js +10 -0
- package/dist/cjs/graphql/schema-generator.js.map +1 -1
- package/dist/cjs/graphql/schema-root-type-generator.d.ts +1 -0
- package/dist/cjs/graphql/schema-utils/directive-util.d.ts +1 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.d.ts +5 -2
- package/dist/cjs/graphql/schema-utils/entry-reference-util.d.ts.map +1 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +93 -120
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-type-util.d.ts +1 -0
- package/dist/cjs/graphql/schema-utils/searchable-field-util.d.ts +1 -0
- package/dist/cjs/graphql/schema-utils/union-type-util.d.ts +1 -0
- package/dist/cjs/graphql/schema-validator.d.ts +1 -0
- package/dist/cjs/graphql/util.d.ts +1 -0
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/persistence/cache.d.ts +2 -2
- package/dist/cjs/persistence/cache.d.ts.map +1 -0
- package/dist/cjs/persistence/persistence.d.ts +1 -0
- package/dist/esm/client.d.ts.map +1 -0
- package/dist/esm/graphql/apollo-config-factory.d.ts.map +1 -0
- package/dist/esm/graphql/errors.d.ts.map +1 -0
- package/dist/esm/graphql/input-type-generator.d.ts.map +1 -0
- package/dist/esm/graphql/input-type-generator.js.map +1 -1
- package/dist/{types → esm}/graphql/queries-mutations-generator.d.ts +9 -1
- package/dist/esm/graphql/queries-mutations-generator.d.ts.map +1 -0
- package/dist/esm/graphql/queries-mutations-generator.js +13 -0
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -1
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts +3 -0
- package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.js +3 -0
- package/dist/esm/graphql/resolvers/field-resolvers/referenced-by-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/types.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +10 -25
- 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.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +6 -23
- 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.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +11 -35
- 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.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -0
- package/dist/{types → esm}/graphql/resolvers/types.d.ts +4 -1
- package/dist/esm/graphql/resolvers/types.d.ts.map +1 -0
- package/dist/esm/graphql/schema-analyzer.d.ts.map +1 -0
- package/dist/esm/graphql/schema-generator.d.ts.map +1 -0
- package/dist/esm/graphql/schema-generator.js +11 -1
- package/dist/esm/graphql/schema-generator.js.map +1 -1
- package/dist/esm/graphql/schema-root-type-generator.d.ts.map +1 -0
- package/dist/esm/graphql/schema-utils/directive-util.d.ts.map +1 -0
- package/dist/esm/graphql/schema-utils/entry-reference-util.d.ts +6 -0
- package/dist/esm/graphql/schema-utils/entry-reference-util.d.ts.map +1 -0
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +91 -119
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-type-util.d.ts.map +1 -0
- package/dist/esm/graphql/schema-utils/searchable-field-util.d.ts.map +1 -0
- package/dist/esm/graphql/schema-utils/union-type-util.d.ts.map +1 -0
- package/dist/esm/graphql/schema-validator.d.ts.map +1 -0
- package/dist/esm/graphql/util.d.ts.map +1 -0
- package/dist/esm/index.d.ts.map +1 -0
- package/dist/{types → esm}/persistence/cache.d.ts +1 -2
- package/dist/esm/persistence/cache.d.ts.map +1 -0
- package/dist/esm/persistence/persistence.d.ts.map +1 -0
- package/package.json +21 -15
- package/src/graphql/input-type-generator.ts +1 -3
- package/src/graphql/queries-mutations-generator.ts +25 -0
- package/src/graphql/resolvers/field-resolvers/referenced-by-resolver.ts +9 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +9 -34
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +9 -38
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +12 -60
- package/src/graphql/resolvers/types.ts +8 -1
- package/src/graphql/schema-generator.ts +15 -0
- package/src/graphql/schema-utils/entry-reference-util.ts +147 -191
- package/src/persistence/cache.ts +1 -1
- package/dist/types/graphql/queries-mutations-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolvers/types.d.ts.map +0 -1
- package/dist/types/graphql/schema-generator.d.ts.map +0 -1
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +0 -4
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +0 -1
- package/dist/types/persistence/cache.d.ts.map +0 -1
- /package/dist/{types → cjs}/client.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/apollo-config-factory.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/errors.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/types.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-analyzer.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-root-type-generator.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-utils/directive-util.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-utils/entry-type-util.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-utils/searchable-field-util.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-utils/union-type-util.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/schema-validator.d.ts.map +0 -0
- /package/dist/{types → cjs}/graphql/util.d.ts.map +0 -0
- /package/dist/{types → cjs}/index.d.ts.map +0 -0
- /package/dist/{types → cjs}/persistence/persistence.d.ts.map +0 -0
- /package/dist/{types → esm}/client.d.ts +0 -0
- /package/dist/{types → esm}/graphql/apollo-config-factory.d.ts +0 -0
- /package/dist/{types → esm}/graphql/errors.d.ts +0 -0
- /package/dist/{types → esm}/graphql/input-type-generator.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/field-resolvers/types.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-every-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-search-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-analyzer.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-generator.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-root-type-generator.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-utils/directive-util.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-utils/entry-type-util.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-utils/searchable-field-util.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-utils/union-type-util.d.ts +0 -0
- /package/dist/{types → esm}/graphql/schema-validator.d.ts +0 -0
- /package/dist/{types → esm}/graphql/util.d.ts +0 -0
- /package/dist/{types → esm}/index.d.ts +0 -0
- /package/dist/{types → esm}/persistence/persistence.d.ts +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-type-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-type-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,gBAAgB,EAKjB,MAAM,SAAS,CAAA;AAGhB,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAInE;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,mBAAmB,GACxB,OAAO,CAWT"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"searchable-field-util.d.ts","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/searchable-field-util.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,aAAa,EAMd,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAA;AAWlE,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,GACvB,oBAAoB,EAAE,CAkBxB"}
|
|
@@ -0,0 +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;AAGpD,wBAAgB,8BAA8B,CAAC,UAAU,EAAE,OAAO,GAAG,MAAM,CAc1E;AAED,wBAAgB,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,SAAS,CAa5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-validator.d.ts","sourceRoot":"","sources":["../../../src/graphql/schema-validator.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EAKd,MAAM,SAAS,CAAA;AAsDhB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAKnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"util.d.ts","sourceRoot":"","sources":["../../../src/graphql/util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AAEpD,wBAAgB,WAAW,CAAC,GAAG,EAAE,OAAO,GAAG,GAAG,IAAI,SAAS,CAU1D"}
|
|
@@ -0,0 +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,aAAa,CAAA;AACpB,OAAO,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAC3D,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAA;AAG9D,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,UAAU,aAAa;IACrB;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAA;CAC9B;AAED,OAAO,EACL,MAAM,EACN,aAAa,EACb,eAAe,EACf,cAAc,EACd,SAAS,EACT,aAAa,GACd,CAAA;AAED,wBAAsB,YAAY,CAChC,UAAU,EAAE,UAAU,EACtB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,MAAM,CAAC,CASjB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { Entry } from '@commitspark/git-adapter';
|
|
2
2
|
import { ApolloContext } from '../client.ts';
|
|
3
|
-
interface EntriesRecord {
|
|
3
|
+
export interface EntriesRecord {
|
|
4
4
|
byId: Map<string, Entry>;
|
|
5
5
|
byType: Map<string, Entry[]>;
|
|
6
6
|
}
|
|
@@ -9,5 +9,4 @@ export interface RepositoryCacheHandler {
|
|
|
9
9
|
getSchema: (context: ApolloContext, ref: string) => Promise<string>;
|
|
10
10
|
}
|
|
11
11
|
export declare const createCacheHandler: (cacheSize?: number) => RepositoryCacheHandler;
|
|
12
|
-
export {};
|
|
13
12
|
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/persistence/cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAmB,MAAM,0BAA0B,CAAA;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAY5C,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;IACxB,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,CAAA;CAC7B;AAOD,MAAM,WAAW,sBAAsB;IACrC,gBAAgB,EAAE,CAChB,OAAO,EAAE,aAAa,EACtB,GAAG,EAAE,MAAM,KACR,OAAO,CAAC,aAAa,CAAC,CAAA;IAC3B,SAAS,EAAE,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAAA;CACpE;AA+LD,eAAO,MAAM,kBAAkB,GAC7B,YAAW,MAA0B,KACpC,sBAoBF,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../../src/persistence/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAA;AAEhD,OAAO,EAAE,aAAa,EAAE,MAAM,cAAc,CAAA;AAE5C,wBAAsB,WAAW,CAC/B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,MAAM,CAAC,CAGjB;AAED,wBAAsB,QAAQ,CAC5B,OAAO,EAAE,aAAa,EACtB,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAchB;AAED,wBAAsB,UAAU,CAC9B,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,KAAK,EAAE,CAAC,CAMlB;AAED,wBAAsB,YAAY,CAChC,OAAO,EAAE,aAAa,EACtB,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,MAAM,GACT,OAAO,CAAC,KAAK,CAAC,CAehB"}
|
package/package.json
CHANGED
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"gitops",
|
|
10
10
|
"api"
|
|
11
11
|
],
|
|
12
|
-
"version": "2.0.0-beta.
|
|
12
|
+
"version": "2.0.0-beta.4",
|
|
13
13
|
"license": "ISC",
|
|
14
14
|
"repository": {
|
|
15
15
|
"type": "git",
|
|
@@ -27,28 +27,33 @@
|
|
|
27
27
|
],
|
|
28
28
|
"main": "./dist/cjs/index.js",
|
|
29
29
|
"module": "./dist/esm/index.js",
|
|
30
|
-
"types": "./dist/
|
|
30
|
+
"types": "./dist/cjs/index.d.ts",
|
|
31
31
|
"exports": {
|
|
32
32
|
".": {
|
|
33
|
-
"
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
"import": {
|
|
34
|
+
"types": "./dist/esm/index.d.ts",
|
|
35
|
+
"default": "./dist/esm/index.js"
|
|
36
|
+
},
|
|
37
|
+
"require": {
|
|
38
|
+
"types": "./dist/cjs/index.d.ts",
|
|
39
|
+
"default": "./dist/cjs/index.js"
|
|
40
|
+
}
|
|
36
41
|
}
|
|
37
42
|
},
|
|
38
43
|
"scripts": {
|
|
39
|
-
"build": "npm run build:cjs && npm run build:esm
|
|
44
|
+
"build": "npm run build:cjs && npm run build:esm",
|
|
40
45
|
"build:cjs": "tsc --project tsconfig.build.cjs.json",
|
|
41
46
|
"build:esm": "tsc --project tsconfig.build.esm.json && echo '{\"type\":\"module\"}' > dist/esm/package.json",
|
|
42
|
-
"
|
|
43
|
-
"format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"",
|
|
47
|
+
"format": "prettier --write \"src/**/*.ts\" \"tests/**/*.ts\"",
|
|
44
48
|
"lint": "eslint \"{src,tests}/**/*.ts\"",
|
|
45
49
|
"test": "jest",
|
|
50
|
+
"check:package": "attw --pack . && node -e \"require(process.env.npm_package_name)\" && node --input-type=module -e \"await import(process.env.npm_package_name)\"",
|
|
46
51
|
"knip": "knip",
|
|
47
52
|
"prepublishOnly": "npm run build"
|
|
48
53
|
},
|
|
49
54
|
"dependencies": {
|
|
50
55
|
"@apollo/server": "^5.2.0",
|
|
51
|
-
"@commitspark/git-adapter": "^2.0.0-beta.
|
|
56
|
+
"@commitspark/git-adapter": "^2.0.0-beta.2",
|
|
52
57
|
"@commitspark/search-adapter": "^1.0.0-beta.1",
|
|
53
58
|
"@graphql-tools/schema": "^9.0.0",
|
|
54
59
|
"@graphql-tools/utils": "^9.0.0"
|
|
@@ -57,16 +62,17 @@
|
|
|
57
62
|
"graphql": "^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0"
|
|
58
63
|
},
|
|
59
64
|
"devDependencies": {
|
|
60
|
-
"@
|
|
65
|
+
"@arethetypeswrong/cli": "^0.18.5",
|
|
66
|
+
"@types/jest": "^30.0.0",
|
|
61
67
|
"@types/node": "^22.14.0",
|
|
62
68
|
"eslint": "^9.24.0",
|
|
63
69
|
"eslint-plugin-import": "^2.32.0",
|
|
64
|
-
"globals": "^16.
|
|
65
|
-
"jest": "^
|
|
66
|
-
"jest-mock-extended": "^
|
|
70
|
+
"globals": "^16.5.0",
|
|
71
|
+
"jest": "^30.2.0",
|
|
72
|
+
"jest-mock-extended": "^4.0.1",
|
|
67
73
|
"knip": "^5.46.5",
|
|
68
|
-
"prettier": "^
|
|
69
|
-
"ts-jest": "^29.
|
|
74
|
+
"prettier": "^3.1.1",
|
|
75
|
+
"ts-jest": "^29.4.6",
|
|
70
76
|
"ts-node": "^10.9.2",
|
|
71
77
|
"typescript": "^5.7.0",
|
|
72
78
|
"typescript-eslint": "^8.29.0"
|
|
@@ -51,9 +51,7 @@ export function generateIdInputTypeStrings(
|
|
|
51
51
|
schemaAnalyzerResult: SchemaAnalyzerResult,
|
|
52
52
|
): string[] {
|
|
53
53
|
let typesWithIdField: (
|
|
54
|
-
|
|
|
55
|
-
| GraphQLInterfaceType
|
|
56
|
-
| GraphQLUnionType
|
|
54
|
+
GraphQLObjectType | GraphQLInterfaceType | GraphQLUnionType
|
|
57
55
|
)[] = []
|
|
58
56
|
typesWithIdField = typesWithIdField.concat(
|
|
59
57
|
schemaAnalyzerResult.entryDirectiveTypes,
|
|
@@ -7,8 +7,10 @@ import { mutationUpdateResolver } from './resolvers/query-mutation-resolvers/mut
|
|
|
7
7
|
import { mutationDeleteResolver } from './resolvers/query-mutation-resolvers/mutation-delete-resolver.ts'
|
|
8
8
|
import { queryTypeByIdResolver } from './resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts'
|
|
9
9
|
import { querySearchResolver } from './resolvers/query-mutation-resolvers/query-search-resolver.ts'
|
|
10
|
+
import { referencedByResolver } from './resolvers/field-resolvers/referenced-by-resolver.ts'
|
|
10
11
|
import {
|
|
11
12
|
QueryMutationResolver,
|
|
13
|
+
ReferencedByResolver,
|
|
12
14
|
SearchQueryResolver,
|
|
13
15
|
} from './resolvers/types.ts'
|
|
14
16
|
|
|
@@ -145,6 +147,29 @@ export function generateSearchQuery(): GeneratedSearchQuery {
|
|
|
145
147
|
}
|
|
146
148
|
}
|
|
147
149
|
|
|
150
|
+
export function generateReferencedByFields(
|
|
151
|
+
entryDirectiveTypes: GraphQLObjectType[],
|
|
152
|
+
): GeneratedField[] {
|
|
153
|
+
const referencedByFieldName = '_referencedBy'
|
|
154
|
+
|
|
155
|
+
return entryDirectiveTypes.map((objectType) => ({
|
|
156
|
+
typeName: objectType.name,
|
|
157
|
+
name: referencedByFieldName,
|
|
158
|
+
typeExtensionString: `extend type ${objectType.name} {
|
|
159
|
+
${referencedByFieldName}: [ID!]!
|
|
160
|
+
}
|
|
161
|
+
`,
|
|
162
|
+
resolver: referencedByResolver,
|
|
163
|
+
}))
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
interface GeneratedField {
|
|
167
|
+
typeName: string
|
|
168
|
+
name: string
|
|
169
|
+
typeExtensionString: string
|
|
170
|
+
resolver: ReferencedByResolver
|
|
171
|
+
}
|
|
172
|
+
|
|
148
173
|
export interface GeneratedSearchQuery {
|
|
149
174
|
name: string
|
|
150
175
|
schemaString: string
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { getReferencingEntryIds } from '../../schema-utils/entry-reference-util.ts'
|
|
2
|
+
import { ReferencedByResolver } from '../types.ts'
|
|
3
|
+
|
|
4
|
+
export const referencedByResolver: ReferencedByResolver = async (
|
|
5
|
+
source,
|
|
6
|
+
_args,
|
|
7
|
+
context,
|
|
8
|
+
info,
|
|
9
|
+
) => getReferencingEntryIds(context, info.schema, source.id)
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { findById, findByTypeId } from '../../../persistence/persistence.ts'
|
|
2
2
|
import { isObjectType } from 'graphql'
|
|
3
|
-
import {
|
|
3
|
+
import { validateEntryReferences } from '../../schema-utils/entry-reference-util.ts'
|
|
4
4
|
import {
|
|
5
|
-
ENTRY_ID_INVALID_CHARACTERS,
|
|
6
5
|
EntryData,
|
|
7
6
|
EntryDraft,
|
|
7
|
+
validateEntryId,
|
|
8
8
|
} from '@commitspark/git-adapter'
|
|
9
9
|
import { QueryMutationResolver } from '../types.ts'
|
|
10
10
|
import { createError, ErrorCode } from '../../errors.ts'
|
|
@@ -15,6 +15,7 @@ export const mutationCreateResolver: QueryMutationResolver<EntryData> = async (
|
|
|
15
15
|
context,
|
|
16
16
|
info,
|
|
17
17
|
) => {
|
|
18
|
+
void info
|
|
18
19
|
if (!isObjectType(context.type)) {
|
|
19
20
|
throw createError(
|
|
20
21
|
`Entry of type "${context.type.name}" cannot be created as is not an ObjectType.`,
|
|
@@ -23,12 +24,11 @@ export const mutationCreateResolver: QueryMutationResolver<EntryData> = async (
|
|
|
23
24
|
)
|
|
24
25
|
}
|
|
25
26
|
|
|
26
|
-
|
|
27
|
-
|
|
27
|
+
try {
|
|
28
|
+
validateEntryId(args.id)
|
|
29
|
+
} catch (err) {
|
|
28
30
|
throw createError(
|
|
29
|
-
|
|
30
|
-
', ',
|
|
31
|
-
)}".`,
|
|
31
|
+
err instanceof Error ? err.message : String(err),
|
|
32
32
|
ErrorCode.BAD_USER_INPUT,
|
|
33
33
|
{
|
|
34
34
|
argumentName: 'id',
|
|
@@ -52,37 +52,12 @@ export const mutationCreateResolver: QueryMutationResolver<EntryData> = async (
|
|
|
52
52
|
)
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
56
|
-
context.type,
|
|
57
|
-
context,
|
|
58
|
-
null,
|
|
59
|
-
info.returnType,
|
|
60
|
-
args.data ?? null,
|
|
61
|
-
)
|
|
62
|
-
|
|
63
|
-
const referencedEntryUpdates: EntryDraft[] = []
|
|
64
|
-
for (const referencedEntryId of referencedEntryIds) {
|
|
65
|
-
const referencedEntry = await findById(context, referencedEntryId)
|
|
66
|
-
const newReferencedEntryIds: string[] = [
|
|
67
|
-
...(referencedEntry.metadata.referencedBy ?? []),
|
|
68
|
-
args.id,
|
|
69
|
-
].sort()
|
|
70
|
-
const newReferencedEntryDraft: EntryDraft = {
|
|
71
|
-
...referencedEntry,
|
|
72
|
-
metadata: {
|
|
73
|
-
...referencedEntry.metadata,
|
|
74
|
-
referencedBy: newReferencedEntryIds,
|
|
75
|
-
},
|
|
76
|
-
deletion: false,
|
|
77
|
-
}
|
|
78
|
-
referencedEntryUpdates.push(newReferencedEntryDraft)
|
|
79
|
-
}
|
|
55
|
+
await validateEntryReferences(context.type, context, args.data ?? null)
|
|
80
56
|
|
|
81
57
|
const newEntryDraft: EntryDraft = {
|
|
82
58
|
id: args.id,
|
|
83
59
|
metadata: {
|
|
84
60
|
type: context.type.name,
|
|
85
|
-
referencedBy: [],
|
|
86
61
|
},
|
|
87
62
|
data: args.data ?? null,
|
|
88
63
|
deletion: false,
|
|
@@ -91,7 +66,7 @@ export const mutationCreateResolver: QueryMutationResolver<EntryData> = async (
|
|
|
91
66
|
const commit = await context.gitAdapter.createCommit({
|
|
92
67
|
ref: context.branch,
|
|
93
68
|
parentSha: context.getCurrentHash(),
|
|
94
|
-
entries: [newEntryDraft
|
|
69
|
+
entries: [newEntryDraft],
|
|
95
70
|
message: args.commitMessage,
|
|
96
71
|
})
|
|
97
72
|
context.setCurrentHash(commit.commitHash)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { Entry
|
|
3
|
-
import {
|
|
4
|
-
import { isObjectType } from 'graphql'
|
|
1
|
+
import { findByTypeId } from '../../../persistence/persistence.ts'
|
|
2
|
+
import { Entry } from '@commitspark/git-adapter'
|
|
3
|
+
import { getReferencingEntryIds } from '../../schema-utils/entry-reference-util.ts'
|
|
5
4
|
import { QueryMutationResolver } from '../types.ts'
|
|
6
5
|
import { createError, ErrorCode } from '../../errors.ts'
|
|
7
6
|
|
|
@@ -13,8 +12,12 @@ export const mutationDeleteResolver: QueryMutationResolver<string> = async (
|
|
|
13
12
|
) => {
|
|
14
13
|
const entry: Entry = await findByTypeId(context, context.type.name, args.id)
|
|
15
14
|
|
|
16
|
-
|
|
17
|
-
|
|
15
|
+
// references held by the entry itself are deleted together with the entry
|
|
16
|
+
const otherReferencingIds = (
|
|
17
|
+
await getReferencingEntryIds(context, info.schema, args.id)
|
|
18
|
+
).filter((referencingId) => referencingId !== args.id)
|
|
19
|
+
if (otherReferencingIds.length > 0) {
|
|
20
|
+
const otherIds = otherReferencingIds
|
|
18
21
|
.map((referenceId) => `"${referenceId}"`)
|
|
19
22
|
.join(', ')
|
|
20
23
|
throw createError(
|
|
@@ -27,37 +30,6 @@ export const mutationDeleteResolver: QueryMutationResolver<string> = async (
|
|
|
27
30
|
)
|
|
28
31
|
}
|
|
29
32
|
|
|
30
|
-
const entryType = info.schema.getType(context.type.name)
|
|
31
|
-
if (!isObjectType(entryType)) {
|
|
32
|
-
throw createError(
|
|
33
|
-
`Type "${context.type.name}" is not an ObjectType.`,
|
|
34
|
-
ErrorCode.INTERNAL_ERROR,
|
|
35
|
-
{},
|
|
36
|
-
)
|
|
37
|
-
}
|
|
38
|
-
|
|
39
|
-
const referencedEntryIds = await getReferencedEntryIds(
|
|
40
|
-
entryType,
|
|
41
|
-
context,
|
|
42
|
-
null,
|
|
43
|
-
entryType,
|
|
44
|
-
entry.data ?? null,
|
|
45
|
-
)
|
|
46
|
-
const referencedEntryUpdates: EntryDraft[] = []
|
|
47
|
-
for (const referencedEntryId of referencedEntryIds) {
|
|
48
|
-
const noLongerReferencedEntry = await findById(context, referencedEntryId)
|
|
49
|
-
referencedEntryUpdates.push({
|
|
50
|
-
...noLongerReferencedEntry,
|
|
51
|
-
metadata: {
|
|
52
|
-
...noLongerReferencedEntry.metadata,
|
|
53
|
-
referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
|
|
54
|
-
(entryId) => entryId !== args.id,
|
|
55
|
-
),
|
|
56
|
-
},
|
|
57
|
-
deletion: false,
|
|
58
|
-
})
|
|
59
|
-
}
|
|
60
|
-
|
|
61
33
|
const commit = await context.gitAdapter.createCommit({
|
|
62
34
|
ref: context.branch,
|
|
63
35
|
parentSha: context.getCurrentHash(),
|
|
@@ -66,7 +38,6 @@ export const mutationDeleteResolver: QueryMutationResolver<string> = async (
|
|
|
66
38
|
...entry,
|
|
67
39
|
deletion: true,
|
|
68
40
|
},
|
|
69
|
-
...referencedEntryUpdates,
|
|
70
41
|
],
|
|
71
42
|
message: args.commitMessage,
|
|
72
43
|
})
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { findByTypeId } from '../../../persistence/persistence.ts'
|
|
2
|
+
import { validateEntryReferences } from '../../schema-utils/entry-reference-util.ts'
|
|
3
3
|
import { isObjectType } from 'graphql'
|
|
4
|
-
import { EntryData
|
|
4
|
+
import { EntryData } from '@commitspark/git-adapter'
|
|
5
5
|
import { QueryMutationResolver } from '../types.ts'
|
|
6
6
|
import { createError, ErrorCode } from '../../errors.ts'
|
|
7
7
|
|
|
@@ -21,6 +21,7 @@ export const mutationUpdateResolver: QueryMutationResolver<EntryData> = async (
|
|
|
21
21
|
context,
|
|
22
22
|
info,
|
|
23
23
|
) => {
|
|
24
|
+
void info
|
|
24
25
|
if (!isObjectType(context.type)) {
|
|
25
26
|
throw createError(
|
|
26
27
|
`Type "${context.type.name}" cannot be mutated as is not an ObjectType.`,
|
|
@@ -31,69 +32,20 @@ export const mutationUpdateResolver: QueryMutationResolver<EntryData> = async (
|
|
|
31
32
|
|
|
32
33
|
const existingEntry = await findByTypeId(context, context.type.name, args.id)
|
|
33
34
|
|
|
34
|
-
const existingReferencedEntryIds = await getReferencedEntryIds(
|
|
35
|
-
context.type,
|
|
36
|
-
context,
|
|
37
|
-
null,
|
|
38
|
-
info.returnType,
|
|
39
|
-
existingEntry.data ?? null,
|
|
40
|
-
)
|
|
41
|
-
|
|
42
35
|
const mergedData = mergeData(existingEntry.data ?? null, args.data ?? null)
|
|
43
|
-
|
|
44
|
-
context.type,
|
|
45
|
-
context,
|
|
46
|
-
null,
|
|
47
|
-
info.returnType,
|
|
48
|
-
mergedData,
|
|
49
|
-
)
|
|
50
|
-
|
|
51
|
-
const noLongerReferencedIds = existingReferencedEntryIds.filter(
|
|
52
|
-
(entryId) => !updatedReferencedEntryIds.includes(entryId),
|
|
53
|
-
)
|
|
54
|
-
const newlyReferencedIds = updatedReferencedEntryIds.filter(
|
|
55
|
-
(entryId) => !existingReferencedEntryIds.includes(entryId),
|
|
56
|
-
)
|
|
57
|
-
|
|
58
|
-
const referencedEntryUpdates: EntryDraft[] = []
|
|
59
|
-
for (const noLongerReferencedEntryId of noLongerReferencedIds) {
|
|
60
|
-
const noLongerReferencedEntry = await findById(
|
|
61
|
-
context,
|
|
62
|
-
noLongerReferencedEntryId,
|
|
63
|
-
)
|
|
64
|
-
referencedEntryUpdates.push({
|
|
65
|
-
...noLongerReferencedEntry,
|
|
66
|
-
metadata: {
|
|
67
|
-
...noLongerReferencedEntry.metadata,
|
|
68
|
-
referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
|
|
69
|
-
(entryId) => entryId !== args.id,
|
|
70
|
-
),
|
|
71
|
-
},
|
|
72
|
-
deletion: false,
|
|
73
|
-
})
|
|
74
|
-
}
|
|
75
|
-
for (const newlyReferencedEntryId of newlyReferencedIds) {
|
|
76
|
-
const newlyReferencedEntry = await findById(context, newlyReferencedEntryId)
|
|
77
|
-
const updatedReferenceList: string[] = [
|
|
78
|
-
...(newlyReferencedEntry.metadata.referencedBy ?? []),
|
|
79
|
-
args.id,
|
|
80
|
-
].sort()
|
|
81
|
-
referencedEntryUpdates.push({
|
|
82
|
-
...newlyReferencedEntry,
|
|
83
|
-
metadata: {
|
|
84
|
-
...newlyReferencedEntry.metadata,
|
|
85
|
-
referencedBy: updatedReferenceList,
|
|
86
|
-
},
|
|
87
|
-
deletion: false,
|
|
88
|
-
})
|
|
89
|
-
}
|
|
36
|
+
await validateEntryReferences(context.type, context, mergedData)
|
|
90
37
|
|
|
91
38
|
const commit = await context.gitAdapter.createCommit({
|
|
92
39
|
ref: context.branch,
|
|
93
40
|
parentSha: context.getCurrentHash(),
|
|
94
41
|
entries: [
|
|
95
|
-
{
|
|
96
|
-
|
|
42
|
+
{
|
|
43
|
+
id: existingEntry.id,
|
|
44
|
+
// only the type is written, which removes metadata no longer in use from existing entries
|
|
45
|
+
metadata: { type: existingEntry.metadata.type },
|
|
46
|
+
data: mergedData,
|
|
47
|
+
deletion: false,
|
|
48
|
+
},
|
|
97
49
|
],
|
|
98
50
|
message: args.commitMessage,
|
|
99
51
|
})
|
|
@@ -8,7 +8,7 @@ import { EntryData } from '@commitspark/git-adapter'
|
|
|
8
8
|
import { SearchHit } from '@commitspark/search-adapter'
|
|
9
9
|
import { RecursiveArray } from './field-resolvers/types.ts'
|
|
10
10
|
|
|
11
|
-
|
|
11
|
+
interface QueryMutationResolverContext extends ApolloContext {
|
|
12
12
|
type: GraphQLNamedType
|
|
13
13
|
}
|
|
14
14
|
|
|
@@ -42,3 +42,10 @@ export type ContextInjectionResolver = GraphQLFieldResolver<
|
|
|
42
42
|
Record<string, unknown>,
|
|
43
43
|
Promise<RecursiveArray<EntryData>>
|
|
44
44
|
>
|
|
45
|
+
|
|
46
|
+
export type ReferencedByResolver = GraphQLFieldResolver<
|
|
47
|
+
EntryData & { id: string },
|
|
48
|
+
ApolloContext,
|
|
49
|
+
Record<string, never>,
|
|
50
|
+
Promise<string[]>
|
|
51
|
+
>
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
generateQueriesAndMutations,
|
|
3
|
+
generateReferencedByFields,
|
|
3
4
|
generateSearchQuery,
|
|
4
5
|
generateTypeNameQuery,
|
|
5
6
|
} from './queries-mutations-generator.ts'
|
|
@@ -25,6 +26,7 @@ import { FieldResolver } from './resolvers/field-resolvers/types.ts'
|
|
|
25
26
|
import {
|
|
26
27
|
ContextInjectionResolver,
|
|
27
28
|
QueryMutationResolver,
|
|
29
|
+
ReferencedByResolver,
|
|
28
30
|
SearchQueryResolver,
|
|
29
31
|
UnionTypeResolver,
|
|
30
32
|
} from './resolvers/types.ts'
|
|
@@ -61,6 +63,9 @@ export async function generateSchema(
|
|
|
61
63
|
const generatedTypeNameQuery = generateTypeNameQuery()
|
|
62
64
|
const generatedSearchQuery =
|
|
63
65
|
context.searchAdapter !== undefined ? generateSearchQuery() : undefined
|
|
66
|
+
const generatedReferencedByFields = generateReferencedByFields(
|
|
67
|
+
schemaAnalyzerResult.entryDirectiveTypes,
|
|
68
|
+
)
|
|
64
69
|
|
|
65
70
|
const generatedObjectInputTypeStrings = generateObjectInputTypeStrings(
|
|
66
71
|
schemaAnalyzerResult.objectTypes,
|
|
@@ -132,6 +137,7 @@ ${generatedSchemaRootTypeStrings}`
|
|
|
132
137
|
| GraphQLTypeResolver<unknown, ApolloContext>
|
|
133
138
|
| ContextInjectionResolver
|
|
134
139
|
| FieldResolver
|
|
140
|
+
| ReferencedByResolver
|
|
135
141
|
>
|
|
136
142
|
| UnionTypeResolverRecord
|
|
137
143
|
> = {
|
|
@@ -151,6 +157,12 @@ ${generatedSchemaRootTypeStrings}`
|
|
|
151
157
|
...generatedObjectTypeFieldResolvers[typeName],
|
|
152
158
|
}
|
|
153
159
|
}
|
|
160
|
+
for (const field of generatedReferencedByFields) {
|
|
161
|
+
allGeneratedResolvers[field.typeName] = {
|
|
162
|
+
...(allGeneratedResolvers[field.typeName] ?? {}),
|
|
163
|
+
[field.name]: field.resolver,
|
|
164
|
+
}
|
|
165
|
+
}
|
|
154
166
|
|
|
155
167
|
const typeDefs = [
|
|
156
168
|
filteredOriginalSchemaString,
|
|
@@ -158,6 +170,9 @@ ${generatedSchemaRootTypeStrings}`
|
|
|
158
170
|
generatedIdInputTypeStrings.join('\n'),
|
|
159
171
|
generatedObjectInputTypeStrings.join('\n'),
|
|
160
172
|
generatedUnionInputTypeStrings.join('\n'),
|
|
173
|
+
generatedReferencedByFields
|
|
174
|
+
.map((field) => field.typeExtensionString)
|
|
175
|
+
.join('\n'),
|
|
161
176
|
generatedSearchQuery?.typeDefinitionString ?? '',
|
|
162
177
|
].filter((typeDef) => typeDef.length > 0)
|
|
163
178
|
|