@commitspark/graphql-api 0.90.0 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/README.md +5 -6
- package/dist/cjs/client.js +65 -0
- package/dist/cjs/client.js.map +1 -0
- package/dist/cjs/graphql/{apollo-config-factory.service.js → apollo-config-factory.js} +12 -17
- package/dist/cjs/graphql/apollo-config-factory.js.map +1 -0
- package/dist/cjs/graphql/input-type-generator.js +94 -0
- package/dist/cjs/graphql/input-type-generator.js.map +1 -0
- package/dist/cjs/graphql/queries-mutations-generator.js +68 -0
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -0
- package/dist/cjs/graphql/{resolver-generators/query-all-resolver-generator.js → resolvers/field-resolvers/entry-reference-resolver.js} +11 -15
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js +81 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
- package/dist/cjs/graphql/{field-resolver/fieldResolver.js → resolvers/field-resolvers/types.js} +1 -1
- package/dist/cjs/graphql/resolvers/field-resolvers/types.js.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js +25 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js +53 -0
- package/dist/cjs/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +77 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +53 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +56 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
- package/dist/cjs/graphql/{resolver-generators/query-count-all-resolver-generator.js → resolvers/query-mutation-resolvers/query-all-resolver.js} +10 -15
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +1 -0
- package/dist/cjs/graphql/{resolver-generators/query-type-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-by-id-resolver.js} +8 -13
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
- package/dist/cjs/graphql/{resolver-generators/query-by-id-resolver-generator.js → resolvers/query-mutation-resolvers/query-type-by-id-resolver.js} +7 -14
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +27 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
- package/dist/cjs/graphql/resolvers/types.js +3 -0
- package/dist/cjs/graphql/resolvers/types.js.map +1 -0
- package/dist/cjs/graphql/schema-analyzer.js +38 -0
- package/dist/cjs/graphql/schema-analyzer.js.map +1 -0
- package/dist/cjs/graphql/schema-generator.js +95 -0
- package/dist/cjs/graphql/schema-generator.js.map +1 -0
- package/dist/cjs/graphql/schema-root-type-generator.js +32 -0
- package/dist/cjs/graphql/schema-root-type-generator.js.map +1 -0
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js +107 -113
- package/dist/cjs/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/entry-type-util.js +24 -26
- package/dist/cjs/graphql/schema-utils/entry-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-utils/union-type-util.js +14 -16
- package/dist/cjs/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/cjs/graphql/schema-validator.js +23 -26
- package/dist/cjs/graphql/schema-validator.js.map +1 -1
- package/dist/cjs/index.js +7 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/persistence.js +66 -0
- package/dist/cjs/persistence/persistence.js.map +1 -0
- package/dist/esm/client.js +53 -0
- package/dist/esm/client.js.map +1 -0
- package/dist/esm/graphql/apollo-config-factory.js +12 -0
- package/dist/esm/graphql/apollo-config-factory.js.map +1 -0
- package/dist/esm/graphql/input-type-generator.js +89 -0
- package/dist/esm/graphql/input-type-generator.js.map +1 -0
- package/dist/esm/graphql/queries-mutations-generator.js +64 -0
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +10 -0
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js +68 -0
- package/dist/esm/graphql/resolvers/field-resolvers/field-default-value-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/types.js +2 -0
- package/dist/esm/graphql/resolvers/field-resolvers/types.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js +15 -0
- package/dist/esm/graphql/resolvers/field-resolvers/union-value-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js +50 -0
- package/dist/esm/graphql/resolvers/object-type-field-default-value-resolver-generator.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js +70 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js +49 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js +59 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js +8 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-all-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js +6 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js +5 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js +14 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/union-type-resolver.js.map +1 -0
- package/dist/esm/graphql/resolvers/types.js +2 -0
- package/dist/esm/graphql/resolvers/types.js.map +1 -0
- package/dist/esm/graphql/schema-analyzer.js +34 -0
- package/dist/esm/graphql/schema-analyzer.js.map +1 -0
- package/dist/esm/graphql/schema-generator.js +89 -0
- package/dist/esm/graphql/schema-generator.js.map +1 -0
- package/dist/esm/graphql/schema-root-type-generator.js +29 -0
- package/dist/esm/graphql/schema-root-type-generator.js.map +1 -0
- package/dist/esm/graphql/schema-utils/entry-reference-util.js +99 -107
- package/dist/esm/graphql/schema-utils/entry-reference-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/entry-type-util.js +20 -23
- package/dist/esm/graphql/schema-utils/entry-type-util.js.map +1 -1
- package/dist/esm/graphql/schema-utils/union-type-util.js +12 -14
- package/dist/esm/graphql/schema-utils/union-type-util.js.map +1 -1
- package/dist/esm/graphql/schema-validator.js +18 -20
- package/dist/esm/graphql/schema-validator.js.map +1 -1
- package/dist/esm/index.js +6 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/persistence.js +43 -0
- package/dist/esm/persistence/persistence.js.map +1 -0
- package/dist/tsconfig.build.cjs.tsbuildinfo +1 -1
- package/dist/tsconfig.build.esm.tsbuildinfo +1 -1
- package/dist/tsconfig.build.types.tsbuildinfo +1 -1
- package/dist/types/client.d.ts +27 -0
- package/dist/types/client.d.ts.map +1 -0
- package/dist/types/graphql/apollo-config-factory.d.ts +4 -0
- package/dist/types/graphql/apollo-config-factory.d.ts.map +1 -0
- package/dist/types/graphql/input-type-generator.d.ts +6 -0
- package/dist/types/graphql/input-type-generator.d.ts.map +1 -0
- package/dist/types/graphql/queries-mutations-generator.d.ts +18 -0
- package/dist/types/graphql/queries-mutations-generator.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts +3 -0
- package/dist/types/graphql/resolvers/field-resolvers/entry-reference-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts +3 -0
- package/dist/types/graphql/resolvers/field-resolvers/field-default-value-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/field-resolvers/types.d.ts +12 -0
- package/dist/types/graphql/resolvers/field-resolvers/types.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts +3 -0
- package/dist/types/graphql/resolvers/field-resolvers/union-value-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts +8 -0
- package/dist/types/graphql/resolvers/object-type-field-default-value-resolver-generator.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-all-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts +4 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts +4 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/union-type-resolver.d.ts.map +1 -0
- package/dist/types/graphql/resolvers/types.d.ts +8 -0
- package/dist/types/graphql/resolvers/types.d.ts.map +1 -0
- package/dist/types/graphql/{schema-analyzer.service.d.ts → schema-analyzer.d.ts} +3 -5
- package/dist/types/graphql/schema-analyzer.d.ts.map +1 -0
- package/dist/types/graphql/schema-generator.d.ts +4 -0
- package/dist/types/graphql/schema-generator.d.ts.map +1 -0
- package/dist/types/graphql/schema-root-type-generator.d.ts +3 -0
- package/dist/types/graphql/schema-root-type-generator.d.ts.map +1 -0
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts +2 -13
- package/dist/types/graphql/schema-utils/entry-reference-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/entry-type-util.d.ts +3 -5
- package/dist/types/graphql/schema-utils/entry-type-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-utils/union-type-util.d.ts +2 -4
- package/dist/types/graphql/schema-utils/union-type-util.d.ts.map +1 -1
- package/dist/types/graphql/schema-validator.d.ts +1 -4
- package/dist/types/graphql/schema-validator.d.ts.map +1 -1
- package/dist/types/index.d.ts +8 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/persistence/persistence.d.ts +6 -0
- package/dist/types/persistence/persistence.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/client.ts +114 -0
- package/src/graphql/apollo-config-factory.ts +17 -0
- package/src/graphql/input-type-generator.ts +126 -0
- package/src/graphql/queries-mutations-generator.ts +136 -0
- package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +22 -0
- package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +107 -0
- package/src/graphql/{field-resolver/fieldResolver.ts → resolvers/field-resolvers/types.ts} +5 -4
- package/src/graphql/resolvers/field-resolvers/union-value-resolver.ts +24 -0
- package/src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts +91 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts +108 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +81 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +114 -0
- package/src/graphql/resolvers/query-mutation-resolvers/query-all-resolver.ts +21 -0
- package/src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts +20 -0
- package/src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts +12 -0
- package/src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts +19 -0
- package/src/graphql/resolvers/types.ts +14 -0
- package/src/graphql/schema-analyzer.ts +55 -0
- package/src/graphql/schema-generator.ts +161 -0
- package/src/graphql/schema-root-type-generator.ts +35 -0
- package/src/graphql/schema-utils/entry-reference-util.ts +152 -166
- package/src/graphql/schema-utils/entry-type-util.ts +25 -28
- package/src/graphql/schema-utils/union-type-util.ts +13 -15
- package/src/graphql/schema-validator.ts +29 -31
- package/src/index.ts +26 -5
- package/src/persistence/persistence.ts +72 -0
- package/dist/cjs/app/api.service.js +0 -74
- package/dist/cjs/app/api.service.js.map +0 -1
- package/dist/cjs/container.js +0 -53
- package/dist/cjs/container.js.map +0 -1
- package/dist/cjs/graphql/apollo-config-factory.service.js.map +0 -1
- package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js +0 -26
- package/dist/cjs/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
- package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js +0 -73
- package/dist/cjs/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
- package/dist/cjs/graphql/field-resolver/fieldResolver.js.map +0 -1
- package/dist/cjs/graphql/field-resolver/union-value-resolver.js +0 -21
- package/dist/cjs/graphql/field-resolver/union-value-resolver.js.map +0 -1
- package/dist/cjs/graphql/input-type-generator.service.js +0 -97
- package/dist/cjs/graphql/input-type-generator.service.js.map +0 -1
- package/dist/cjs/graphql/queries-mutations-generator.service.js +0 -82
- package/dist/cjs/graphql/queries-mutations-generator.service.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -83
- package/dist/cjs/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -60
- package/dist/cjs/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -62
- package/dist/cjs/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -58
- package/dist/cjs/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js +0 -33
- package/dist/cjs/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
- package/dist/cjs/graphql/schema-analyzer.service.js +0 -41
- package/dist/cjs/graphql/schema-analyzer.service.js.map +0 -1
- package/dist/cjs/graphql/schema-generator.service.js +0 -103
- package/dist/cjs/graphql/schema-generator.service.js.map +0 -1
- package/dist/cjs/graphql/schema-root-type-generator.service.js +0 -39
- package/dist/cjs/graphql/schema-root-type-generator.service.js.map +0 -1
- package/dist/cjs/persistence/persistence.service.js +0 -66
- package/dist/cjs/persistence/persistence.service.js.map +0 -1
- package/dist/esm/app/api.service.js +0 -61
- package/dist/esm/app/api.service.js.map +0 -1
- package/dist/esm/container.js +0 -50
- package/dist/esm/container.js.map +0 -1
- package/dist/esm/graphql/apollo-config-factory.service.js +0 -17
- package/dist/esm/graphql/apollo-config-factory.service.js.map +0 -1
- package/dist/esm/graphql/field-resolver/entry-reference-resolver.js +0 -13
- package/dist/esm/graphql/field-resolver/entry-reference-resolver.js.map +0 -1
- package/dist/esm/graphql/field-resolver/field-default-value-resolver.js +0 -73
- package/dist/esm/graphql/field-resolver/field-default-value-resolver.js.map +0 -1
- package/dist/esm/graphql/field-resolver/fieldResolver.js +0 -2
- package/dist/esm/graphql/field-resolver/fieldResolver.js.map +0 -1
- package/dist/esm/graphql/field-resolver/union-value-resolver.js +0 -22
- package/dist/esm/graphql/field-resolver/union-value-resolver.js.map +0 -1
- package/dist/esm/graphql/input-type-generator.service.js +0 -94
- package/dist/esm/graphql/input-type-generator.service.js.map +0 -1
- package/dist/esm/graphql/queries-mutations-generator.service.js +0 -85
- package/dist/esm/graphql/queries-mutations-generator.service.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js +0 -78
- package/dist/esm/graphql/resolver-generators/mutation-create-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js +0 -58
- package/dist/esm/graphql/resolver-generators/mutation-delete-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js +0 -67
- package/dist/esm/graphql/resolver-generators/mutation-update-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js +0 -55
- package/dist/esm/graphql/resolver-generators/object-type-field-default-value-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js +0 -15
- package/dist/esm/graphql/resolver-generators/query-all-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js +0 -13
- package/dist/esm/graphql/resolver-generators/query-by-id-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js +0 -14
- package/dist/esm/graphql/resolver-generators/query-count-all-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js +0 -12
- package/dist/esm/graphql/resolver-generators/query-type-by-id-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js +0 -22
- package/dist/esm/graphql/resolver-generators/union-type-resolver-generator.js.map +0 -1
- package/dist/esm/graphql/schema-analyzer.service.js +0 -36
- package/dist/esm/graphql/schema-analyzer.service.js.map +0 -1
- package/dist/esm/graphql/schema-generator.service.js +0 -103
- package/dist/esm/graphql/schema-generator.service.js.map +0 -1
- package/dist/esm/graphql/schema-root-type-generator.service.js +0 -35
- package/dist/esm/graphql/schema-root-type-generator.service.js.map +0 -1
- package/dist/esm/persistence/persistence.service.js +0 -45
- package/dist/esm/persistence/persistence.service.js.map +0 -1
- package/dist/types/app/api.service.d.ts +0 -34
- package/dist/types/app/api.service.d.ts.map +0 -1
- package/dist/types/container.d.ts +0 -3
- package/dist/types/container.d.ts.map +0 -1
- package/dist/types/graphql/apollo-config-factory.service.d.ts +0 -9
- package/dist/types/graphql/apollo-config-factory.service.d.ts.map +0 -1
- package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts +0 -11
- package/dist/types/graphql/field-resolver/entry-reference-resolver.d.ts.map +0 -1
- package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts +0 -15
- package/dist/types/graphql/field-resolver/field-default-value-resolver.d.ts.map +0 -1
- package/dist/types/graphql/field-resolver/fieldResolver.d.ts +0 -11
- package/dist/types/graphql/field-resolver/fieldResolver.d.ts.map +0 -1
- package/dist/types/graphql/field-resolver/union-value-resolver.d.ts +0 -11
- package/dist/types/graphql/field-resolver/union-value-resolver.d.ts.map +0 -1
- package/dist/types/graphql/input-type-generator.service.d.ts +0 -12
- package/dist/types/graphql/input-type-generator.service.d.ts.map +0 -1
- package/dist/types/graphql/queries-mutations-generator.service.d.ts +0 -39
- package/dist/types/graphql/queries-mutations-generator.service.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts +0 -12
- package/dist/types/graphql/resolver-generators/mutation-create-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts +0 -12
- package/dist/types/graphql/resolver-generators/mutation-delete-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts +0 -13
- package/dist/types/graphql/resolver-generators/mutation-update-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts +0 -13
- package/dist/types/graphql/resolver-generators/object-type-field-default-value-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts +0 -10
- package/dist/types/graphql/resolver-generators/query-all-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts +0 -10
- package/dist/types/graphql/resolver-generators/query-by-id-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts +0 -10
- package/dist/types/graphql/resolver-generators/query-count-all-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts +0 -9
- package/dist/types/graphql/resolver-generators/query-type-by-id-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts +0 -11
- package/dist/types/graphql/resolver-generators/union-type-resolver-generator.d.ts.map +0 -1
- package/dist/types/graphql/schema-analyzer.service.d.ts.map +0 -1
- package/dist/types/graphql/schema-generator.service.d.ts +0 -21
- package/dist/types/graphql/schema-generator.service.d.ts.map +0 -1
- package/dist/types/graphql/schema-root-type-generator.service.d.ts +0 -5
- package/dist/types/graphql/schema-root-type-generator.service.d.ts.map +0 -1
- package/dist/types/persistence/persistence.service.d.ts +0 -8
- package/dist/types/persistence/persistence.service.d.ts.map +0 -1
- package/src/app/api.service.ts +0 -121
- package/src/container.ts +0 -106
- package/src/graphql/apollo-config-factory.service.ts +0 -21
- package/src/graphql/field-resolver/entry-reference-resolver.ts +0 -47
- package/src/graphql/field-resolver/field-default-value-resolver.ts +0 -152
- package/src/graphql/field-resolver/union-value-resolver.ts +0 -46
- package/src/graphql/input-type-generator.service.ts +0 -127
- package/src/graphql/queries-mutations-generator.service.ts +0 -154
- package/src/graphql/resolver-generators/mutation-create-resolver-generator.ts +0 -120
- package/src/graphql/resolver-generators/mutation-delete-resolver-generator.ts +0 -96
- package/src/graphql/resolver-generators/mutation-update-resolver-generator.ts +0 -127
- package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts +0 -117
- package/src/graphql/resolver-generators/query-all-resolver-generator.ts +0 -29
- package/src/graphql/resolver-generators/query-by-id-resolver-generator.ts +0 -23
- package/src/graphql/resolver-generators/query-count-all-resolver-generator.ts +0 -29
- package/src/graphql/resolver-generators/query-type-by-id-resolver-generator.ts +0 -27
- package/src/graphql/resolver-generators/union-type-resolver-generator.ts +0 -38
- package/src/graphql/schema-analyzer.service.ts +0 -57
- package/src/graphql/schema-generator.service.ts +0 -178
- package/src/graphql/schema-root-type-generator.service.ts +0 -44
- package/src/persistence/persistence.service.ts +0 -74
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
2
|
-
import { ApolloContext } from '../../app/api.service'
|
|
3
|
-
import { EntryReferenceUtil } from '../schema-utils/entry-reference-util'
|
|
4
|
-
import { GraphQLFieldResolver, isObjectType } from 'graphql'
|
|
5
|
-
import { EntryData, EntryDraft } from '@commitspark/git-adapter'
|
|
6
|
-
|
|
7
|
-
export class MutationUpdateResolverGenerator {
|
|
8
|
-
constructor(
|
|
9
|
-
private readonly persistence: PersistenceService,
|
|
10
|
-
private readonly entryReferenceUtil: EntryReferenceUtil,
|
|
11
|
-
) {}
|
|
12
|
-
|
|
13
|
-
public createResolver(
|
|
14
|
-
typeName: string,
|
|
15
|
-
): GraphQLFieldResolver<any, ApolloContext, any, Promise<EntryData>> {
|
|
16
|
-
return async (
|
|
17
|
-
source,
|
|
18
|
-
args,
|
|
19
|
-
context: ApolloContext,
|
|
20
|
-
info,
|
|
21
|
-
): Promise<EntryData> => {
|
|
22
|
-
if (!isObjectType(info.returnType)) {
|
|
23
|
-
throw new Error('Expected to update an ObjectType')
|
|
24
|
-
}
|
|
25
|
-
|
|
26
|
-
const existingEntry = await this.persistence.findByTypeId(
|
|
27
|
-
context.gitAdapter,
|
|
28
|
-
context.getCurrentRef(),
|
|
29
|
-
typeName,
|
|
30
|
-
args.id,
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
const existingReferencedEntryIds =
|
|
34
|
-
await this.entryReferenceUtil.getReferencedEntryIds(
|
|
35
|
-
info.returnType,
|
|
36
|
-
context,
|
|
37
|
-
null,
|
|
38
|
-
info.returnType,
|
|
39
|
-
existingEntry.data,
|
|
40
|
-
)
|
|
41
|
-
|
|
42
|
-
const mergedData = this.mergeData(existingEntry.data ?? null, args.data)
|
|
43
|
-
const updatedReferencedEntryIds =
|
|
44
|
-
await this.entryReferenceUtil.getReferencedEntryIds(
|
|
45
|
-
info.returnType,
|
|
46
|
-
context,
|
|
47
|
-
null,
|
|
48
|
-
info.returnType,
|
|
49
|
-
mergedData,
|
|
50
|
-
)
|
|
51
|
-
|
|
52
|
-
const noLongerReferencedIds = existingReferencedEntryIds.filter(
|
|
53
|
-
(entryId) => !updatedReferencedEntryIds.includes(entryId),
|
|
54
|
-
)
|
|
55
|
-
const newlyReferencedIds = updatedReferencedEntryIds.filter(
|
|
56
|
-
(entryId) => !existingReferencedEntryIds.includes(entryId),
|
|
57
|
-
)
|
|
58
|
-
|
|
59
|
-
const referencedEntryUpdates: EntryDraft[] = []
|
|
60
|
-
for (const noLongerReferencedEntryId of noLongerReferencedIds) {
|
|
61
|
-
const noLongerReferencedEntry = await this.persistence.findById(
|
|
62
|
-
context.gitAdapter,
|
|
63
|
-
context.getCurrentRef(),
|
|
64
|
-
noLongerReferencedEntryId,
|
|
65
|
-
)
|
|
66
|
-
referencedEntryUpdates.push({
|
|
67
|
-
...noLongerReferencedEntry,
|
|
68
|
-
metadata: {
|
|
69
|
-
...noLongerReferencedEntry.metadata,
|
|
70
|
-
referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
|
|
71
|
-
(entryId) => entryId !== args.id,
|
|
72
|
-
),
|
|
73
|
-
},
|
|
74
|
-
deletion: false,
|
|
75
|
-
})
|
|
76
|
-
}
|
|
77
|
-
for (const newlyReferencedEntryId of newlyReferencedIds) {
|
|
78
|
-
const newlyReferencedEntry = await this.persistence.findById(
|
|
79
|
-
context.gitAdapter,
|
|
80
|
-
context.getCurrentRef(),
|
|
81
|
-
newlyReferencedEntryId,
|
|
82
|
-
)
|
|
83
|
-
const updatedReferenceList: string[] =
|
|
84
|
-
newlyReferencedEntry.metadata.referencedBy ?? []
|
|
85
|
-
updatedReferenceList.push(args.id)
|
|
86
|
-
updatedReferenceList.sort()
|
|
87
|
-
referencedEntryUpdates.push({
|
|
88
|
-
...newlyReferencedEntry,
|
|
89
|
-
metadata: {
|
|
90
|
-
...newlyReferencedEntry.metadata,
|
|
91
|
-
referencedBy: updatedReferenceList,
|
|
92
|
-
},
|
|
93
|
-
deletion: false,
|
|
94
|
-
})
|
|
95
|
-
}
|
|
96
|
-
|
|
97
|
-
const commit = await context.gitAdapter.createCommit({
|
|
98
|
-
ref: context.branch,
|
|
99
|
-
parentSha: context.getCurrentRef(),
|
|
100
|
-
entries: [
|
|
101
|
-
{ ...existingEntry, data: mergedData, deletion: false },
|
|
102
|
-
...referencedEntryUpdates,
|
|
103
|
-
],
|
|
104
|
-
message: args.commitMessage,
|
|
105
|
-
})
|
|
106
|
-
context.setCurrentRef(commit.ref)
|
|
107
|
-
|
|
108
|
-
const updatedEntry = await this.persistence.findByTypeId(
|
|
109
|
-
context.gitAdapter,
|
|
110
|
-
context.getCurrentRef(),
|
|
111
|
-
typeName,
|
|
112
|
-
args.id,
|
|
113
|
-
)
|
|
114
|
-
return { ...updatedEntry.data, id: updatedEntry.id }
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
private mergeData(
|
|
119
|
-
existingEntryData: EntryData,
|
|
120
|
-
updateData: EntryData,
|
|
121
|
-
): EntryData {
|
|
122
|
-
return {
|
|
123
|
-
...existingEntryData,
|
|
124
|
-
...updateData,
|
|
125
|
-
}
|
|
126
|
-
}
|
|
127
|
-
}
|
package/src/graphql/resolver-generators/object-type-field-default-value-resolver-generator.ts
DELETED
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GraphQLField,
|
|
3
|
-
GraphQLFieldResolver,
|
|
4
|
-
GraphQLObjectType,
|
|
5
|
-
GraphQLOutputType,
|
|
6
|
-
GraphQLSchema,
|
|
7
|
-
isListType,
|
|
8
|
-
isNonNullType,
|
|
9
|
-
isObjectType,
|
|
10
|
-
isUnionType,
|
|
11
|
-
} from 'graphql'
|
|
12
|
-
import { ApolloContext } from '../../app/api.service'
|
|
13
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
14
|
-
import { ResolvedEntryData } from '../field-resolver/fieldResolver'
|
|
15
|
-
import { FieldDefaultValueResolver } from '../field-resolver/field-default-value-resolver'
|
|
16
|
-
|
|
17
|
-
export class ObjectTypeFieldDefaultValueResolverGenerator {
|
|
18
|
-
constructor(
|
|
19
|
-
private readonly fieldDefaultValueResolver: FieldDefaultValueResolver,
|
|
20
|
-
) {}
|
|
21
|
-
|
|
22
|
-
public createResolver(
|
|
23
|
-
schema: GraphQLSchema,
|
|
24
|
-
): Record<
|
|
25
|
-
string,
|
|
26
|
-
Record<
|
|
27
|
-
string,
|
|
28
|
-
GraphQLFieldResolver<
|
|
29
|
-
any,
|
|
30
|
-
ApolloContext,
|
|
31
|
-
any,
|
|
32
|
-
Promise<ResolvedEntryData<EntryData | EntryData[] | null>>
|
|
33
|
-
>
|
|
34
|
-
>
|
|
35
|
-
> {
|
|
36
|
-
const resolvers: Record<
|
|
37
|
-
string,
|
|
38
|
-
Record<
|
|
39
|
-
string,
|
|
40
|
-
GraphQLFieldResolver<
|
|
41
|
-
any,
|
|
42
|
-
ApolloContext,
|
|
43
|
-
any,
|
|
44
|
-
Promise<ResolvedEntryData<EntryData | EntryData[] | null>>
|
|
45
|
-
>
|
|
46
|
-
>
|
|
47
|
-
> = {}
|
|
48
|
-
for (const typeName of Object.keys(schema.getTypeMap())) {
|
|
49
|
-
const type = schema.getType(typeName)
|
|
50
|
-
if (!isObjectType(type) || type.name.startsWith('__')) {
|
|
51
|
-
continue
|
|
52
|
-
}
|
|
53
|
-
const objectType = type as GraphQLObjectType
|
|
54
|
-
const fieldsForCustomDefaultValueResolver =
|
|
55
|
-
this.getFieldsForCustomDefaultValueResolver(objectType)
|
|
56
|
-
|
|
57
|
-
const fieldResolvers: Record<
|
|
58
|
-
string,
|
|
59
|
-
GraphQLFieldResolver<
|
|
60
|
-
any,
|
|
61
|
-
ApolloContext,
|
|
62
|
-
any,
|
|
63
|
-
Promise<ResolvedEntryData<EntryData | EntryData[] | null>>
|
|
64
|
-
>
|
|
65
|
-
> = {}
|
|
66
|
-
for (const field of fieldsForCustomDefaultValueResolver) {
|
|
67
|
-
fieldResolvers[field.name] = (
|
|
68
|
-
obj,
|
|
69
|
-
args,
|
|
70
|
-
context,
|
|
71
|
-
info,
|
|
72
|
-
): Promise<ResolvedEntryData<EntryData | EntryData[] | null>> =>
|
|
73
|
-
this.fieldDefaultValueResolver.resolve(
|
|
74
|
-
field.name in obj ? obj[field.name] : undefined,
|
|
75
|
-
args,
|
|
76
|
-
{
|
|
77
|
-
gitAdapter: context.gitAdapter,
|
|
78
|
-
getCurrentRef: context.getCurrentRef,
|
|
79
|
-
},
|
|
80
|
-
info,
|
|
81
|
-
)
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
if (Object.keys(fieldResolvers).length > 0) {
|
|
85
|
-
resolvers[typeName] = fieldResolvers
|
|
86
|
-
}
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
return resolvers
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
private getFieldsForCustomDefaultValueResolver(
|
|
93
|
-
objectType: GraphQLObjectType,
|
|
94
|
-
): GraphQLField<any, any>[] {
|
|
95
|
-
const fields = []
|
|
96
|
-
for (const fieldsKey in objectType.getFields()) {
|
|
97
|
-
const field: GraphQLField<any, any> = objectType.getFields()[fieldsKey]
|
|
98
|
-
if (this.requiresCustomDefaultValueResolver(field.type)) {
|
|
99
|
-
fields.push(field)
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return fields
|
|
103
|
-
}
|
|
104
|
-
|
|
105
|
-
private requiresCustomDefaultValueResolver(type: GraphQLOutputType): boolean {
|
|
106
|
-
if (isNonNullType(type)) {
|
|
107
|
-
return this.requiresCustomDefaultValueResolver(type.ofType)
|
|
108
|
-
} else if (isListType(type)) {
|
|
109
|
-
return true
|
|
110
|
-
} else if (isUnionType(type)) {
|
|
111
|
-
return true
|
|
112
|
-
} else if (isObjectType(type)) {
|
|
113
|
-
return true
|
|
114
|
-
}
|
|
115
|
-
return false
|
|
116
|
-
}
|
|
117
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { ApolloContext } from '../../app/api.service'
|
|
2
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
3
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
4
|
-
import { GraphQLFieldResolver } from 'graphql'
|
|
5
|
-
|
|
6
|
-
export class QueryAllResolverGenerator {
|
|
7
|
-
constructor(private readonly persistence: PersistenceService) {}
|
|
8
|
-
|
|
9
|
-
public createResolver(
|
|
10
|
-
typeName: string,
|
|
11
|
-
): GraphQLFieldResolver<any, ApolloContext, any, Promise<EntryData[]>> {
|
|
12
|
-
return async (
|
|
13
|
-
obj,
|
|
14
|
-
args,
|
|
15
|
-
context: ApolloContext,
|
|
16
|
-
info,
|
|
17
|
-
): Promise<EntryData[]> => {
|
|
18
|
-
const entries = await this.persistence.findByType(
|
|
19
|
-
context.gitAdapter,
|
|
20
|
-
context.getCurrentRef(),
|
|
21
|
-
typeName,
|
|
22
|
-
)
|
|
23
|
-
|
|
24
|
-
return entries.map((entry) => {
|
|
25
|
-
return { ...entry.data, id: entry.id }
|
|
26
|
-
})
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
2
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
3
|
-
import { GraphQLFieldResolver } from 'graphql'
|
|
4
|
-
import { ApolloContext } from '../../app/api.service'
|
|
5
|
-
|
|
6
|
-
export class QueryByIdResolverGenerator {
|
|
7
|
-
constructor(private readonly persistence: PersistenceService) {}
|
|
8
|
-
|
|
9
|
-
public createResolver(
|
|
10
|
-
typeName: string,
|
|
11
|
-
): GraphQLFieldResolver<any, ApolloContext, any, Promise<EntryData>> {
|
|
12
|
-
return async (obj, args, context, info): Promise<EntryData> => {
|
|
13
|
-
const entry = await this.persistence.findByTypeId(
|
|
14
|
-
context.gitAdapter,
|
|
15
|
-
context.getCurrentRef(),
|
|
16
|
-
typeName,
|
|
17
|
-
args.id,
|
|
18
|
-
)
|
|
19
|
-
|
|
20
|
-
return { ...entry.data, id: entry.id }
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
2
|
-
import { GraphQLFieldResolver } from 'graphql'
|
|
3
|
-
import { ApolloContext } from '../../app/api.service'
|
|
4
|
-
import { TypeCount } from '../queries-mutations-generator.service'
|
|
5
|
-
|
|
6
|
-
export class QueryCountAllResolverGenerator {
|
|
7
|
-
constructor(private readonly persistence: PersistenceService) {}
|
|
8
|
-
|
|
9
|
-
public createResolver(
|
|
10
|
-
typeName: string,
|
|
11
|
-
): GraphQLFieldResolver<any, ApolloContext, any, Promise<TypeCount>> {
|
|
12
|
-
return async (
|
|
13
|
-
obj,
|
|
14
|
-
args,
|
|
15
|
-
context: ApolloContext,
|
|
16
|
-
info,
|
|
17
|
-
): Promise<TypeCount> => {
|
|
18
|
-
return {
|
|
19
|
-
count: (
|
|
20
|
-
await this.persistence.findByType(
|
|
21
|
-
context.gitAdapter,
|
|
22
|
-
context.getCurrentRef(),
|
|
23
|
-
typeName,
|
|
24
|
-
)
|
|
25
|
-
).length,
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
2
|
-
import { GraphQLFieldResolver } from 'graphql'
|
|
3
|
-
import { ApolloContext } from '../../app/api.service'
|
|
4
|
-
|
|
5
|
-
export class QueryTypeByIdResolverGenerator {
|
|
6
|
-
constructor(private readonly persistence: PersistenceService) {}
|
|
7
|
-
|
|
8
|
-
public createResolver(): GraphQLFieldResolver<
|
|
9
|
-
any,
|
|
10
|
-
ApolloContext,
|
|
11
|
-
any,
|
|
12
|
-
Promise<string>
|
|
13
|
-
> {
|
|
14
|
-
return async (
|
|
15
|
-
source,
|
|
16
|
-
args,
|
|
17
|
-
context: ApolloContext,
|
|
18
|
-
info,
|
|
19
|
-
): Promise<string> => {
|
|
20
|
-
return this.persistence.getTypeById(
|
|
21
|
-
context.gitAdapter,
|
|
22
|
-
context.getCurrentRef(),
|
|
23
|
-
args.id,
|
|
24
|
-
)
|
|
25
|
-
}
|
|
26
|
-
}
|
|
27
|
-
}
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { ApolloContext } from '../../app/api.service'
|
|
2
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
3
|
-
import {
|
|
4
|
-
GraphQLAbstractType,
|
|
5
|
-
GraphQLResolveInfo,
|
|
6
|
-
GraphQLTypeResolver,
|
|
7
|
-
} from 'graphql'
|
|
8
|
-
import { EntryTypeUtil } from '../schema-utils/entry-type-util'
|
|
9
|
-
|
|
10
|
-
export class UnionTypeResolverGenerator {
|
|
11
|
-
constructor(
|
|
12
|
-
private readonly persistence: PersistenceService,
|
|
13
|
-
private readonly entryTypeUtil: EntryTypeUtil,
|
|
14
|
-
) {}
|
|
15
|
-
|
|
16
|
-
public createResolver(): GraphQLTypeResolver<any, ApolloContext> {
|
|
17
|
-
return async (
|
|
18
|
-
obj: any,
|
|
19
|
-
context: ApolloContext,
|
|
20
|
-
info: GraphQLResolveInfo,
|
|
21
|
-
abstractType: GraphQLAbstractType,
|
|
22
|
-
): Promise<string> => {
|
|
23
|
-
if (this.entryTypeUtil.buildsOnTypeWithEntryDirective(abstractType)) {
|
|
24
|
-
return this.persistence.getTypeById(
|
|
25
|
-
context.gitAdapter,
|
|
26
|
-
context.getCurrentRef(),
|
|
27
|
-
obj.id,
|
|
28
|
-
)
|
|
29
|
-
} else {
|
|
30
|
-
// We have injected an internal `__typename` field into the data of fields pointing to a non-entry union
|
|
31
|
-
// in UnionValueResolver. This artificial field holds the type information we need here.
|
|
32
|
-
return obj.__typename
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// TODO same for interface type: https://www.apollographql.com/docs/apollo-server/data/resolvers/#resolving-unions-and-interfaces
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
}
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GraphQLInterfaceType,
|
|
3
|
-
GraphQLObjectType,
|
|
4
|
-
GraphQLSchema,
|
|
5
|
-
GraphQLUnionType,
|
|
6
|
-
isInterfaceType,
|
|
7
|
-
isObjectType,
|
|
8
|
-
isUnionType,
|
|
9
|
-
} from 'graphql'
|
|
10
|
-
import { getDirective } from '@graphql-tools/utils'
|
|
11
|
-
|
|
12
|
-
export class SchemaAnalyzerService {
|
|
13
|
-
public analyzeSchema(schema: GraphQLSchema): ISchemaAnalyzerResult {
|
|
14
|
-
const result: ISchemaAnalyzerResult = {
|
|
15
|
-
entryDirectiveTypes: [],
|
|
16
|
-
objectTypes: [],
|
|
17
|
-
interfaceTypes: [],
|
|
18
|
-
unionTypes: [],
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
const typeMap = schema.getTypeMap()
|
|
22
|
-
|
|
23
|
-
for (const [key, type] of Object.entries(typeMap)) {
|
|
24
|
-
if (key.startsWith('__')) {
|
|
25
|
-
continue
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if (isObjectType(type)) {
|
|
29
|
-
const objectType = type as GraphQLObjectType
|
|
30
|
-
result.objectTypes.push(objectType)
|
|
31
|
-
const entityDirective = getDirective(schema, objectType, 'Entry')?.[0]
|
|
32
|
-
if (entityDirective) {
|
|
33
|
-
result.entryDirectiveTypes.push(objectType)
|
|
34
|
-
}
|
|
35
|
-
}
|
|
36
|
-
|
|
37
|
-
if (isInterfaceType(type)) {
|
|
38
|
-
const interfaceType = type as GraphQLInterfaceType
|
|
39
|
-
result.interfaceTypes.push(interfaceType)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
if (isUnionType(type)) {
|
|
43
|
-
const unionType = type as GraphQLUnionType
|
|
44
|
-
result.unionTypes.push(unionType)
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
return result
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export interface ISchemaAnalyzerResult {
|
|
53
|
-
entryDirectiveTypes: GraphQLObjectType[]
|
|
54
|
-
objectTypes: GraphQLObjectType[]
|
|
55
|
-
interfaceTypes: GraphQLInterfaceType[]
|
|
56
|
-
unionTypes: GraphQLUnionType[]
|
|
57
|
-
}
|
|
@@ -1,178 +0,0 @@
|
|
|
1
|
-
import { QueriesMutationsGeneratorService } from './queries-mutations-generator.service'
|
|
2
|
-
import {
|
|
3
|
-
IExecutableSchemaDefinition,
|
|
4
|
-
makeExecutableSchema,
|
|
5
|
-
} from '@graphql-tools/schema'
|
|
6
|
-
import { SchemaAnalyzerService } from './schema-analyzer.service'
|
|
7
|
-
import { InputTypeGeneratorService } from './input-type-generator.service'
|
|
8
|
-
import { SchemaRootTypeGeneratorService } from './schema-root-type-generator.service'
|
|
9
|
-
import { printSchemaWithDirectives } from '@graphql-tools/utils'
|
|
10
|
-
import { UnionTypeResolverGenerator } from './resolver-generators/union-type-resolver-generator'
|
|
11
|
-
import { ApolloContext } from '../app/api.service'
|
|
12
|
-
import { GraphQLFieldResolver, GraphQLTypeResolver } from 'graphql'
|
|
13
|
-
import { SchemaValidator } from './schema-validator'
|
|
14
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
15
|
-
import { ObjectTypeFieldDefaultValueResolverGenerator } from './resolver-generators/object-type-field-default-value-resolver-generator'
|
|
16
|
-
|
|
17
|
-
export class SchemaGeneratorService {
|
|
18
|
-
constructor(
|
|
19
|
-
private readonly queriesMutationsGenerator: QueriesMutationsGeneratorService,
|
|
20
|
-
private readonly schemaAnalyzer: SchemaAnalyzerService,
|
|
21
|
-
private readonly inputTypeGenerator: InputTypeGeneratorService,
|
|
22
|
-
private readonly schemaRootTypeGenerator: SchemaRootTypeGeneratorService,
|
|
23
|
-
private readonly unionTypeResolverGenerator: UnionTypeResolverGenerator,
|
|
24
|
-
private readonly objectTypeFieldDefaultValueResolverGenerator: ObjectTypeFieldDefaultValueResolverGenerator,
|
|
25
|
-
private readonly schemaValidator: SchemaValidator,
|
|
26
|
-
) {}
|
|
27
|
-
|
|
28
|
-
public async generateSchema(
|
|
29
|
-
context: ApolloContext,
|
|
30
|
-
): Promise<IExecutableSchemaDefinition> {
|
|
31
|
-
const originalSchemaString = await context.gitAdapter.getSchema(
|
|
32
|
-
context.getCurrentRef(),
|
|
33
|
-
)
|
|
34
|
-
const schema = makeExecutableSchema({
|
|
35
|
-
typeDefs: originalSchemaString,
|
|
36
|
-
})
|
|
37
|
-
|
|
38
|
-
const validationResult = this.schemaValidator.getValidationResult(schema)
|
|
39
|
-
if (validationResult.length > 0) {
|
|
40
|
-
throw new Error(validationResult.join('\n'))
|
|
41
|
-
}
|
|
42
|
-
const schemaAnalyzerResult = this.schemaAnalyzer.analyzeSchema(schema)
|
|
43
|
-
|
|
44
|
-
const filteredOriginalSchemaString =
|
|
45
|
-
printSchemaWithDirectives(schema) + '\n'
|
|
46
|
-
|
|
47
|
-
const generatedIdInputTypeStrings =
|
|
48
|
-
this.inputTypeGenerator.generateIdInputTypeStrings(schemaAnalyzerResult)
|
|
49
|
-
|
|
50
|
-
const generatedQueriesMutations =
|
|
51
|
-
this.queriesMutationsGenerator.generateFromAnalyzedSchema(
|
|
52
|
-
schemaAnalyzerResult.entryDirectiveTypes,
|
|
53
|
-
)
|
|
54
|
-
const generatedTypeNameQuery =
|
|
55
|
-
this.queriesMutationsGenerator.generateTypeNameQuery()
|
|
56
|
-
|
|
57
|
-
const generatedEntryReferenceResolvers: Record<
|
|
58
|
-
string,
|
|
59
|
-
Record<
|
|
60
|
-
string,
|
|
61
|
-
GraphQLFieldResolver<
|
|
62
|
-
Record<string, any>,
|
|
63
|
-
ApolloContext,
|
|
64
|
-
any,
|
|
65
|
-
Promise<EntryData | EntryData[] | null>
|
|
66
|
-
>
|
|
67
|
-
>
|
|
68
|
-
> = {}
|
|
69
|
-
|
|
70
|
-
const generatedObjectInputTypeStrings =
|
|
71
|
-
this.inputTypeGenerator.generateObjectInputTypeStrings(
|
|
72
|
-
schemaAnalyzerResult.objectTypes,
|
|
73
|
-
)
|
|
74
|
-
|
|
75
|
-
const generatedUnionInputTypeStrings =
|
|
76
|
-
this.inputTypeGenerator.generateUnionInputTypeStrings(
|
|
77
|
-
schemaAnalyzerResult.unionTypes,
|
|
78
|
-
)
|
|
79
|
-
|
|
80
|
-
const generatedSchemaRootTypeStrings =
|
|
81
|
-
this.schemaRootTypeGenerator.generateSchemaRootTypeStrings(
|
|
82
|
-
generatedQueriesMutations,
|
|
83
|
-
generatedTypeNameQuery,
|
|
84
|
-
)
|
|
85
|
-
|
|
86
|
-
const generatedSchemaString =
|
|
87
|
-
'schema {\n query: Query\n mutation: Mutation\n}\n\n' +
|
|
88
|
-
generatedSchemaRootTypeStrings +
|
|
89
|
-
'\n' +
|
|
90
|
-
'type ListMetadata {\n' +
|
|
91
|
-
' count: Int!\n' +
|
|
92
|
-
'}\n'
|
|
93
|
-
|
|
94
|
-
const generatedUnionTypeResolvers: Record<string, UnionTypeResolver> = {}
|
|
95
|
-
for (const unionType of schemaAnalyzerResult.unionTypes) {
|
|
96
|
-
generatedUnionTypeResolvers[unionType.name] = {
|
|
97
|
-
__resolveType: this.unionTypeResolverGenerator.createResolver(),
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
const generatedObjectTypeFieldDefaultValueResolvers =
|
|
101
|
-
this.objectTypeFieldDefaultValueResolverGenerator.createResolver(schema)
|
|
102
|
-
|
|
103
|
-
const generatedQueryResolvers: Record<
|
|
104
|
-
string,
|
|
105
|
-
GraphQLFieldResolver<any, ApolloContext>
|
|
106
|
-
> = {}
|
|
107
|
-
const generatedMutationResolvers: Record<
|
|
108
|
-
string,
|
|
109
|
-
GraphQLFieldResolver<any, ApolloContext>
|
|
110
|
-
> = {}
|
|
111
|
-
|
|
112
|
-
for (const element of generatedQueriesMutations) {
|
|
113
|
-
generatedQueryResolvers[element.queryAll.name] = element.queryAll.resolver
|
|
114
|
-
generatedQueryResolvers[element.queryAllMeta.name] =
|
|
115
|
-
element.queryAllMeta.resolver
|
|
116
|
-
generatedQueryResolvers[element.queryById.name] =
|
|
117
|
-
element.queryById.resolver
|
|
118
|
-
generatedMutationResolvers[element.createMutation.name] =
|
|
119
|
-
element.createMutation.resolver
|
|
120
|
-
generatedMutationResolvers[element.updateMutation.name] =
|
|
121
|
-
element.updateMutation.resolver
|
|
122
|
-
generatedMutationResolvers[element.deleteMutation.name] =
|
|
123
|
-
element.deleteMutation.resolver
|
|
124
|
-
}
|
|
125
|
-
generatedQueryResolvers[generatedTypeNameQuery.name] =
|
|
126
|
-
generatedTypeNameQuery.resolver
|
|
127
|
-
|
|
128
|
-
const allGeneratedResolvers: Record<
|
|
129
|
-
string,
|
|
130
|
-
Record<
|
|
131
|
-
string,
|
|
132
|
-
| GraphQLFieldResolver<any, ApolloContext>
|
|
133
|
-
| GraphQLTypeResolver<any, ApolloContext>
|
|
134
|
-
>
|
|
135
|
-
> = {
|
|
136
|
-
Query: generatedQueryResolvers,
|
|
137
|
-
Mutation: generatedMutationResolvers,
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
|
|
141
|
-
allGeneratedResolvers[typeName] = {
|
|
142
|
-
...(allGeneratedResolvers[typeName] ?? {}),
|
|
143
|
-
...generatedUnionTypeResolvers[typeName],
|
|
144
|
-
}
|
|
145
|
-
}
|
|
146
|
-
for (const typeName of Object.keys(
|
|
147
|
-
generatedObjectTypeFieldDefaultValueResolvers,
|
|
148
|
-
)) {
|
|
149
|
-
allGeneratedResolvers[typeName] = {
|
|
150
|
-
...(allGeneratedResolvers[typeName] ?? {}),
|
|
151
|
-
...generatedObjectTypeFieldDefaultValueResolvers[typeName],
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
|
|
155
|
-
allGeneratedResolvers[typeName] = {
|
|
156
|
-
...(allGeneratedResolvers[typeName] ?? {}),
|
|
157
|
-
...generatedEntryReferenceResolvers[typeName],
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
|
|
161
|
-
const typeDefs = [
|
|
162
|
-
filteredOriginalSchemaString,
|
|
163
|
-
generatedSchemaString,
|
|
164
|
-
generatedIdInputTypeStrings.join('\n'),
|
|
165
|
-
generatedObjectInputTypeStrings.join('\n'),
|
|
166
|
-
generatedUnionInputTypeStrings.join('\n'),
|
|
167
|
-
].filter((typeDef) => typeDef.length > 0)
|
|
168
|
-
|
|
169
|
-
return {
|
|
170
|
-
typeDefs: typeDefs,
|
|
171
|
-
resolvers: allGeneratedResolvers,
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
interface UnionTypeResolver {
|
|
177
|
-
__resolveType: GraphQLTypeResolver<any, ApolloContext>
|
|
178
|
-
}
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
IGeneratedQuery,
|
|
3
|
-
IGeneratedSchema,
|
|
4
|
-
} from './queries-mutations-generator.service'
|
|
5
|
-
|
|
6
|
-
export class SchemaRootTypeGeneratorService {
|
|
7
|
-
public generateSchemaRootTypeStrings(
|
|
8
|
-
generatedSchemas: IGeneratedSchema[],
|
|
9
|
-
typeQuery: IGeneratedQuery<Promise<string>>,
|
|
10
|
-
): string {
|
|
11
|
-
return (
|
|
12
|
-
`type Query {\n` +
|
|
13
|
-
generatedSchemas
|
|
14
|
-
.map((generated) => ' ' + generated.queryAll.schemaString)
|
|
15
|
-
.join('\n') +
|
|
16
|
-
'\n' +
|
|
17
|
-
generatedSchemas
|
|
18
|
-
.map((generated) => ' ' + generated.queryAllMeta.schemaString)
|
|
19
|
-
.join('\n') +
|
|
20
|
-
'\n' +
|
|
21
|
-
generatedSchemas
|
|
22
|
-
.map((generated) => ' ' + generated.queryById.schemaString)
|
|
23
|
-
.join('\n') +
|
|
24
|
-
'\n' +
|
|
25
|
-
` ${typeQuery.schemaString}` +
|
|
26
|
-
'\n' +
|
|
27
|
-
'}\n\n' +
|
|
28
|
-
'type Mutation {\n' +
|
|
29
|
-
generatedSchemas
|
|
30
|
-
.map((generated) => ' ' + generated.createMutation.schemaString)
|
|
31
|
-
.join('\n') +
|
|
32
|
-
'\n' +
|
|
33
|
-
generatedSchemas
|
|
34
|
-
.map((generated) => ' ' + generated.updateMutation.schemaString)
|
|
35
|
-
.join('\n') +
|
|
36
|
-
'\n' +
|
|
37
|
-
generatedSchemas
|
|
38
|
-
.map((generated) => ' ' + generated.deleteMutation.schemaString)
|
|
39
|
-
.join('\n') +
|
|
40
|
-
'\n' +
|
|
41
|
-
'}\n'
|
|
42
|
-
)
|
|
43
|
-
}
|
|
44
|
-
}
|