@commitspark/graphql-api 0.81.2 → 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 +16 -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 +2 -2
- 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,152 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
FieldResolver,
|
|
3
|
-
FieldResolverContext,
|
|
4
|
-
ResolvedEntryData,
|
|
5
|
-
} from './fieldResolver'
|
|
6
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
7
|
-
import {
|
|
8
|
-
GraphQLFieldResolver,
|
|
9
|
-
GraphQLNonNull,
|
|
10
|
-
GraphQLOutputType,
|
|
11
|
-
GraphQLResolveInfo,
|
|
12
|
-
GraphQLUnionType,
|
|
13
|
-
isListType,
|
|
14
|
-
isNonNullType,
|
|
15
|
-
isObjectType,
|
|
16
|
-
isUnionType,
|
|
17
|
-
} from 'graphql'
|
|
18
|
-
import { EntryTypeUtil } from '../schema-utils/entry-type-util'
|
|
19
|
-
import { UnionValueResolver } from './union-value-resolver'
|
|
20
|
-
import { EntryReferenceResolver } from './entry-reference-resolver'
|
|
21
|
-
|
|
22
|
-
export class FieldDefaultValueResolver implements FieldResolver<any> {
|
|
23
|
-
resolve: GraphQLFieldResolver<
|
|
24
|
-
any,
|
|
25
|
-
FieldResolverContext,
|
|
26
|
-
any,
|
|
27
|
-
Promise<ResolvedEntryData<EntryData | EntryData[] | null>>
|
|
28
|
-
>
|
|
29
|
-
|
|
30
|
-
constructor(
|
|
31
|
-
private readonly entryTypeUtil: EntryTypeUtil,
|
|
32
|
-
private readonly unionValueResolver: UnionValueResolver,
|
|
33
|
-
private readonly entryReferenceResolver: EntryReferenceResolver,
|
|
34
|
-
) {
|
|
35
|
-
this.resolve = (
|
|
36
|
-
fieldValue,
|
|
37
|
-
args,
|
|
38
|
-
context,
|
|
39
|
-
info,
|
|
40
|
-
): Promise<ResolvedEntryData<EntryData | EntryData[] | null>> =>
|
|
41
|
-
this.resolveFieldValue(
|
|
42
|
-
fieldValue,
|
|
43
|
-
args,
|
|
44
|
-
context,
|
|
45
|
-
info,
|
|
46
|
-
info.returnType,
|
|
47
|
-
false,
|
|
48
|
-
)
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
private resolveFieldValue(
|
|
52
|
-
fieldValue: any,
|
|
53
|
-
args: any,
|
|
54
|
-
context: FieldResolverContext,
|
|
55
|
-
info: GraphQLResolveInfo,
|
|
56
|
-
currentType: GraphQLOutputType,
|
|
57
|
-
hasNonNullParent: boolean,
|
|
58
|
-
): Promise<ResolvedEntryData<EntryData | EntryData[] | null>> {
|
|
59
|
-
if (isNonNullType(currentType)) {
|
|
60
|
-
return this.resolveFieldValue(
|
|
61
|
-
fieldValue,
|
|
62
|
-
args,
|
|
63
|
-
{
|
|
64
|
-
gitAdapter: context.gitAdapter,
|
|
65
|
-
getCurrentRef: context.getCurrentRef,
|
|
66
|
-
},
|
|
67
|
-
info,
|
|
68
|
-
currentType.ofType,
|
|
69
|
-
true,
|
|
70
|
-
)
|
|
71
|
-
} else if (isListType(currentType)) {
|
|
72
|
-
if (fieldValue === undefined || fieldValue === null) {
|
|
73
|
-
if (hasNonNullParent) {
|
|
74
|
-
return new Promise((resolve) => resolve([]))
|
|
75
|
-
} else {
|
|
76
|
-
return new Promise((resolve) => resolve(null))
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
|
|
80
|
-
if (!Array.isArray(fieldValue)) {
|
|
81
|
-
throw new Error(
|
|
82
|
-
`Expected array while resolving value for field "${info.fieldName}".`,
|
|
83
|
-
)
|
|
84
|
-
}
|
|
85
|
-
|
|
86
|
-
const resultPromises = []
|
|
87
|
-
for (const item of fieldValue) {
|
|
88
|
-
const resultPromise = this.resolveFieldValue(
|
|
89
|
-
item,
|
|
90
|
-
args,
|
|
91
|
-
{
|
|
92
|
-
gitAdapter: context.gitAdapter,
|
|
93
|
-
getCurrentRef: context.getCurrentRef,
|
|
94
|
-
},
|
|
95
|
-
info,
|
|
96
|
-
currentType.ofType,
|
|
97
|
-
hasNonNullParent,
|
|
98
|
-
)
|
|
99
|
-
resultPromises.push(resultPromise)
|
|
100
|
-
}
|
|
101
|
-
return Promise.all(resultPromises)
|
|
102
|
-
} else if (isUnionType(currentType)) {
|
|
103
|
-
if (fieldValue === undefined || fieldValue === null) {
|
|
104
|
-
if (hasNonNullParent) {
|
|
105
|
-
throw new Error(
|
|
106
|
-
`Cannot generate a default value for NonNull field "${
|
|
107
|
-
info.parentType.name
|
|
108
|
-
}.${info.fieldName}" because it is a union field of type "${
|
|
109
|
-
(info.returnType as GraphQLNonNull<GraphQLUnionType>).ofType.name
|
|
110
|
-
}".`,
|
|
111
|
-
)
|
|
112
|
-
} else {
|
|
113
|
-
return new Promise((resolve) => resolve(null))
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
|
|
117
|
-
if (this.entryTypeUtil.buildsOnTypeWithEntryDirective(currentType)) {
|
|
118
|
-
return this.entryReferenceResolver.resolve(
|
|
119
|
-
fieldValue,
|
|
120
|
-
args,
|
|
121
|
-
context,
|
|
122
|
-
info,
|
|
123
|
-
)
|
|
124
|
-
}
|
|
125
|
-
|
|
126
|
-
return this.unionValueResolver.resolve(fieldValue, args, context, info)
|
|
127
|
-
} else if (isObjectType(currentType)) {
|
|
128
|
-
if (fieldValue === undefined || fieldValue === null) {
|
|
129
|
-
if (hasNonNullParent) {
|
|
130
|
-
throw new Error(
|
|
131
|
-
`Cannot generate a default value for NonNull field "${info.fieldName}" of type "${info.parentType.name}".`,
|
|
132
|
-
)
|
|
133
|
-
} else {
|
|
134
|
-
return new Promise((resolve) => resolve(null))
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
|
|
138
|
-
if (this.entryTypeUtil.hasEntryDirective(currentType)) {
|
|
139
|
-
return this.entryReferenceResolver.resolve(
|
|
140
|
-
fieldValue,
|
|
141
|
-
args,
|
|
142
|
-
context,
|
|
143
|
-
info,
|
|
144
|
-
)
|
|
145
|
-
}
|
|
146
|
-
|
|
147
|
-
return fieldValue
|
|
148
|
-
}
|
|
149
|
-
|
|
150
|
-
return fieldValue
|
|
151
|
-
}
|
|
152
|
-
}
|
|
@@ -1,46 +0,0 @@
|
|
|
1
|
-
import { GraphQLFieldResolver } from 'graphql/type/definition'
|
|
2
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
3
|
-
import {
|
|
4
|
-
FieldResolver,
|
|
5
|
-
FieldResolverContext,
|
|
6
|
-
ResolvedEntryData,
|
|
7
|
-
} from './fieldResolver'
|
|
8
|
-
import { UnionTypeUtil } from '../schema-utils/union-type-util'
|
|
9
|
-
|
|
10
|
-
export class UnionValueResolver implements FieldResolver<any> {
|
|
11
|
-
resolve: GraphQLFieldResolver<
|
|
12
|
-
any,
|
|
13
|
-
FieldResolverContext,
|
|
14
|
-
any,
|
|
15
|
-
Promise<ResolvedEntryData<EntryData | EntryData[] | null>>
|
|
16
|
-
>
|
|
17
|
-
|
|
18
|
-
constructor(private readonly unionTypeUtil: UnionTypeUtil) {
|
|
19
|
-
this.resolve = (
|
|
20
|
-
fieldValue,
|
|
21
|
-
args,
|
|
22
|
-
context,
|
|
23
|
-
info,
|
|
24
|
-
): Promise<ResolvedEntryData<EntryData | EntryData[] | null>> =>
|
|
25
|
-
this.resolveFieldValue(fieldValue)
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
private resolveFieldValue(
|
|
29
|
-
fieldValue: any,
|
|
30
|
-
): Promise<ResolvedEntryData<EntryData | EntryData[] | null>> {
|
|
31
|
-
const typeName =
|
|
32
|
-
this.unionTypeUtil.getUnionTypeNameFromFieldValue(fieldValue)
|
|
33
|
-
const unionValue = this.unionTypeUtil.getUnionValue(fieldValue)
|
|
34
|
-
|
|
35
|
-
// We replace the helper type name field that holds our field's actual data
|
|
36
|
-
// with this actual data and add a `__typename` field, so that our output data
|
|
37
|
-
// corresponds to the output schema provided by the user (i.e. there is
|
|
38
|
-
// no additional nesting level there).
|
|
39
|
-
const res: EntryData = {
|
|
40
|
-
...unionValue,
|
|
41
|
-
__typename: typeName,
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
return new Promise((resolve) => resolve(res))
|
|
45
|
-
}
|
|
46
|
-
}
|
|
@@ -1,127 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
GraphQLEnumType,
|
|
3
|
-
GraphQLInputObjectType,
|
|
4
|
-
GraphQLInterfaceType,
|
|
5
|
-
GraphQLNullableType,
|
|
6
|
-
GraphQLObjectType,
|
|
7
|
-
GraphQLScalarType,
|
|
8
|
-
GraphQLUnionType,
|
|
9
|
-
isInterfaceType,
|
|
10
|
-
isListType,
|
|
11
|
-
isNonNullType,
|
|
12
|
-
isObjectType,
|
|
13
|
-
isScalarType,
|
|
14
|
-
isUnionType,
|
|
15
|
-
} from 'graphql'
|
|
16
|
-
import { ISchemaAnalyzerResult } from './schema-analyzer.service'
|
|
17
|
-
import { EntryTypeUtil } from './schema-utils/entry-type-util'
|
|
18
|
-
|
|
19
|
-
export class InputTypeGeneratorService {
|
|
20
|
-
constructor(private readonly entryTypeUtil: EntryTypeUtil) {}
|
|
21
|
-
|
|
22
|
-
public generateFieldInputTypeString(type: GraphQLNullableType): string {
|
|
23
|
-
if (isListType(type)) {
|
|
24
|
-
return `[${this.generateFieldInputTypeString(type.ofType)}]`
|
|
25
|
-
} else if (isNonNullType(type)) {
|
|
26
|
-
return `${this.generateFieldInputTypeString(type.ofType)}!`
|
|
27
|
-
} else if (isObjectType(type)) {
|
|
28
|
-
if (this.entryTypeUtil.hasEntryDirective(type)) {
|
|
29
|
-
return `${type.name}IdInput`
|
|
30
|
-
} else {
|
|
31
|
-
return `${type.name}Input`
|
|
32
|
-
}
|
|
33
|
-
} else if (isInterfaceType(type)) {
|
|
34
|
-
// TODO
|
|
35
|
-
return ''
|
|
36
|
-
} else if (isUnionType(type)) {
|
|
37
|
-
if (this.entryTypeUtil.buildsOnTypeWithEntryDirective(type)) {
|
|
38
|
-
return `${type.name}IdInput`
|
|
39
|
-
} else {
|
|
40
|
-
return `${type.name}Input`
|
|
41
|
-
}
|
|
42
|
-
} else {
|
|
43
|
-
return (
|
|
44
|
-
type as GraphQLScalarType | GraphQLEnumType | GraphQLInputObjectType
|
|
45
|
-
).name
|
|
46
|
-
}
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
public generateIdInputTypeStrings(
|
|
50
|
-
schemaAnalyzerResult: ISchemaAnalyzerResult,
|
|
51
|
-
): string[] {
|
|
52
|
-
let typesWithIdField: (
|
|
53
|
-
| GraphQLObjectType
|
|
54
|
-
| GraphQLInterfaceType
|
|
55
|
-
| GraphQLUnionType
|
|
56
|
-
)[] = []
|
|
57
|
-
typesWithIdField = typesWithIdField.concat(
|
|
58
|
-
schemaAnalyzerResult.entryDirectiveTypes,
|
|
59
|
-
)
|
|
60
|
-
typesWithIdField = typesWithIdField.concat(
|
|
61
|
-
schemaAnalyzerResult.interfaceTypes,
|
|
62
|
-
)
|
|
63
|
-
typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.unionTypes)
|
|
64
|
-
|
|
65
|
-
return typesWithIdField.map((type): string => {
|
|
66
|
-
return `input ${type.name}IdInput {\n` + ' id: ID!\n' + '}\n'
|
|
67
|
-
})
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
public generateObjectInputTypeStrings(
|
|
71
|
-
objectTypes: GraphQLObjectType[],
|
|
72
|
-
): string[] {
|
|
73
|
-
return objectTypes.map((objectType): string => {
|
|
74
|
-
const name = objectType.name
|
|
75
|
-
const inputTypeName = `${name}Input`
|
|
76
|
-
let inputType = `input ${inputTypeName} {\n`
|
|
77
|
-
let inputTypeFieldStrings = ''
|
|
78
|
-
for (const fieldsKey in objectType.getFields()) {
|
|
79
|
-
const field = objectType.getFields()[fieldsKey]
|
|
80
|
-
if (
|
|
81
|
-
(isNonNullType(field.type) &&
|
|
82
|
-
isScalarType(field.type.ofType) &&
|
|
83
|
-
field.type.ofType.name === 'ID') ||
|
|
84
|
-
(isScalarType(field.type) && field.type.name === 'ID')
|
|
85
|
-
) {
|
|
86
|
-
continue
|
|
87
|
-
}
|
|
88
|
-
const inputTypeString = this.generateFieldInputTypeString(field.type)
|
|
89
|
-
inputTypeFieldStrings += ` ${field.name}: ${inputTypeString}\n`
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
if (inputTypeFieldStrings.length > 0) {
|
|
93
|
-
inputType += `${inputTypeFieldStrings}`
|
|
94
|
-
} else {
|
|
95
|
-
// generate a dummy field as empty input types are not permitted
|
|
96
|
-
inputType += ' _: Boolean\n'
|
|
97
|
-
}
|
|
98
|
-
inputType += '}\n'
|
|
99
|
-
|
|
100
|
-
return inputType
|
|
101
|
-
})
|
|
102
|
-
}
|
|
103
|
-
|
|
104
|
-
public generateUnionInputTypeStrings(
|
|
105
|
-
unionTypes: GraphQLUnionType[],
|
|
106
|
-
): string[] {
|
|
107
|
-
const typeStrings = unionTypes.map((unionType): string => {
|
|
108
|
-
if (this.entryTypeUtil.buildsOnTypeWithEntryDirective(unionType)) {
|
|
109
|
-
return ''
|
|
110
|
-
}
|
|
111
|
-
|
|
112
|
-
// see https://github.com/graphql/graphql-spec/pull/825
|
|
113
|
-
let unionInputType = `input ${unionType.name}Input @oneOf {\n`
|
|
114
|
-
for (const innerType of unionType.getTypes()) {
|
|
115
|
-
unionInputType += ` ${innerType.name}: ${innerType.name}Input\n`
|
|
116
|
-
}
|
|
117
|
-
unionInputType += '}\n'
|
|
118
|
-
return unionInputType
|
|
119
|
-
})
|
|
120
|
-
|
|
121
|
-
if (typeStrings.join('').length > 0) {
|
|
122
|
-
typeStrings.push('directive @oneOf on INPUT_OBJECT\n')
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
return typeStrings
|
|
126
|
-
}
|
|
127
|
-
}
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
import { EntryData } from '@commitspark/git-adapter'
|
|
2
|
-
import { ApolloContext } from '../app/api.service'
|
|
3
|
-
import { GraphQLFieldResolver, GraphQLObjectType } from 'graphql'
|
|
4
|
-
import { QueryAllResolverGenerator } from './resolver-generators/query-all-resolver-generator'
|
|
5
|
-
import { QueryByIdResolverGenerator } from './resolver-generators/query-by-id-resolver-generator'
|
|
6
|
-
import { MutationCreateResolverGenerator } from './resolver-generators/mutation-create-resolver-generator'
|
|
7
|
-
import { MutationUpdateResolverGenerator } from './resolver-generators/mutation-update-resolver-generator'
|
|
8
|
-
import { MutationDeleteResolverGenerator } from './resolver-generators/mutation-delete-resolver-generator'
|
|
9
|
-
import { QueryCountAllResolverGenerator } from './resolver-generators/query-count-all-resolver-generator'
|
|
10
|
-
import { QueryTypeByIdResolverGenerator } from './resolver-generators/query-type-by-id-resolver-generator'
|
|
11
|
-
|
|
12
|
-
export class QueriesMutationsGeneratorService {
|
|
13
|
-
constructor(
|
|
14
|
-
private readonly queryAllResolverGenerator: QueryAllResolverGenerator,
|
|
15
|
-
private readonly queryByIdResolverGenerator: QueryByIdResolverGenerator,
|
|
16
|
-
private readonly queryCountAllResolverGenerator: QueryCountAllResolverGenerator,
|
|
17
|
-
private readonly queryTypeByIdResolverGenerator: QueryTypeByIdResolverGenerator,
|
|
18
|
-
private readonly mutationCreateResolverGenerator: MutationCreateResolverGenerator,
|
|
19
|
-
private readonly mutationUpdateResolverGenerator: MutationUpdateResolverGenerator,
|
|
20
|
-
private readonly mutationDeleteResolverGenerator: MutationDeleteResolverGenerator,
|
|
21
|
-
) {}
|
|
22
|
-
|
|
23
|
-
public generateFromAnalyzedSchema(
|
|
24
|
-
entryDirectiveTypes: GraphQLObjectType[],
|
|
25
|
-
): IGeneratedSchema[] {
|
|
26
|
-
return entryDirectiveTypes.map((objectType): IGeneratedSchema => {
|
|
27
|
-
const typeName = objectType.name
|
|
28
|
-
|
|
29
|
-
const queryAllName = `all${typeName}s`
|
|
30
|
-
const queryAllString = `${queryAllName}: [${objectType.name}!]`
|
|
31
|
-
const queryAllResolver: GraphQLFieldResolver<
|
|
32
|
-
any,
|
|
33
|
-
ApolloContext,
|
|
34
|
-
any,
|
|
35
|
-
Promise<EntryData[]>
|
|
36
|
-
> = this.queryAllResolverGenerator.createResolver(typeName)
|
|
37
|
-
|
|
38
|
-
const queryAllMetaName = `_${queryAllName}Meta`
|
|
39
|
-
const queryAllMetaString = `${queryAllMetaName}: ListMetadata`
|
|
40
|
-
const queryAllMetaResolver: GraphQLFieldResolver<
|
|
41
|
-
any,
|
|
42
|
-
ApolloContext,
|
|
43
|
-
any,
|
|
44
|
-
Promise<TypeCount>
|
|
45
|
-
> = this.queryCountAllResolverGenerator.createResolver(typeName)
|
|
46
|
-
|
|
47
|
-
const queryByIdName = typeName
|
|
48
|
-
const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`
|
|
49
|
-
const queryByIdResolver: GraphQLFieldResolver<
|
|
50
|
-
any,
|
|
51
|
-
ApolloContext,
|
|
52
|
-
any,
|
|
53
|
-
Promise<EntryData>
|
|
54
|
-
> = this.queryByIdResolverGenerator.createResolver(typeName)
|
|
55
|
-
|
|
56
|
-
const inputTypeName = `${typeName}Input`
|
|
57
|
-
const createMutationName = `create${typeName}`
|
|
58
|
-
const createMutationString = `${createMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`
|
|
59
|
-
const createMutationResolver: GraphQLFieldResolver<
|
|
60
|
-
any,
|
|
61
|
-
ApolloContext,
|
|
62
|
-
any,
|
|
63
|
-
Promise<EntryData>
|
|
64
|
-
> = this.mutationCreateResolverGenerator.createResolver(typeName)
|
|
65
|
-
|
|
66
|
-
const updateMutationName = `update${typeName}`
|
|
67
|
-
const updateMutationString = `${updateMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`
|
|
68
|
-
const updateMutationResolver: GraphQLFieldResolver<
|
|
69
|
-
any,
|
|
70
|
-
ApolloContext,
|
|
71
|
-
any,
|
|
72
|
-
Promise<EntryData>
|
|
73
|
-
> = this.mutationUpdateResolverGenerator.createResolver(typeName)
|
|
74
|
-
|
|
75
|
-
const deleteMutationName = `delete${typeName}`
|
|
76
|
-
const deleteMutationString = `${deleteMutationName}(id: ID!, commitMessage: String): ID`
|
|
77
|
-
const deleteMutationResolver: GraphQLFieldResolver<
|
|
78
|
-
any,
|
|
79
|
-
ApolloContext,
|
|
80
|
-
any,
|
|
81
|
-
Promise<EntryData>
|
|
82
|
-
> = this.mutationDeleteResolverGenerator.createResolver(typeName)
|
|
83
|
-
|
|
84
|
-
return {
|
|
85
|
-
queryAll: {
|
|
86
|
-
name: queryAllName,
|
|
87
|
-
schemaString: queryAllString,
|
|
88
|
-
resolver: queryAllResolver,
|
|
89
|
-
},
|
|
90
|
-
queryAllMeta: {
|
|
91
|
-
name: queryAllMetaName,
|
|
92
|
-
schemaString: queryAllMetaString,
|
|
93
|
-
resolver: queryAllMetaResolver,
|
|
94
|
-
},
|
|
95
|
-
queryById: {
|
|
96
|
-
name: queryByIdName,
|
|
97
|
-
schemaString: queryByIdString,
|
|
98
|
-
resolver: queryByIdResolver,
|
|
99
|
-
},
|
|
100
|
-
createMutation: {
|
|
101
|
-
name: createMutationName,
|
|
102
|
-
schemaString: createMutationString,
|
|
103
|
-
resolver: createMutationResolver,
|
|
104
|
-
},
|
|
105
|
-
updateMutation: {
|
|
106
|
-
name: updateMutationName,
|
|
107
|
-
schemaString: updateMutationString,
|
|
108
|
-
resolver: updateMutationResolver,
|
|
109
|
-
},
|
|
110
|
-
deleteMutation: {
|
|
111
|
-
name: deleteMutationName,
|
|
112
|
-
schemaString: deleteMutationString,
|
|
113
|
-
resolver: deleteMutationResolver,
|
|
114
|
-
},
|
|
115
|
-
}
|
|
116
|
-
})
|
|
117
|
-
}
|
|
118
|
-
|
|
119
|
-
public generateTypeNameQuery(): IGeneratedQuery<Promise<string>> {
|
|
120
|
-
const entryTypeQueryName = '_typeName'
|
|
121
|
-
const entryTypeQueryString = `${entryTypeQueryName}(id: ID!): String!`
|
|
122
|
-
const entryTypeQueryResolver: GraphQLFieldResolver<
|
|
123
|
-
any,
|
|
124
|
-
ApolloContext,
|
|
125
|
-
any,
|
|
126
|
-
Promise<string>
|
|
127
|
-
> = this.queryTypeByIdResolverGenerator.createResolver()
|
|
128
|
-
|
|
129
|
-
return {
|
|
130
|
-
name: entryTypeQueryName,
|
|
131
|
-
schemaString: entryTypeQueryString,
|
|
132
|
-
resolver: entryTypeQueryResolver,
|
|
133
|
-
}
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
export interface IGeneratedSchema {
|
|
138
|
-
queryAll: IGeneratedQuery<Promise<EntryData[]>>
|
|
139
|
-
queryAllMeta: IGeneratedQuery<Promise<TypeCount>>
|
|
140
|
-
queryById: IGeneratedQuery<Promise<EntryData>>
|
|
141
|
-
createMutation: IGeneratedQuery<Promise<EntryData>>
|
|
142
|
-
updateMutation: IGeneratedQuery<Promise<EntryData>>
|
|
143
|
-
deleteMutation: IGeneratedQuery<Promise<EntryData>>
|
|
144
|
-
}
|
|
145
|
-
|
|
146
|
-
export interface IGeneratedQuery<T> {
|
|
147
|
-
name: string
|
|
148
|
-
schemaString: string
|
|
149
|
-
resolver: GraphQLFieldResolver<any, ApolloContext, any, T>
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
export type TypeCount = {
|
|
153
|
-
count: number
|
|
154
|
-
}
|
|
@@ -1,120 +0,0 @@
|
|
|
1
|
-
import { ApolloContext } from '../../app/api.service'
|
|
2
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
3
|
-
import { GraphQLError, GraphQLFieldResolver, isObjectType } from 'graphql'
|
|
4
|
-
import { EntryReferenceUtil } from '../schema-utils/entry-reference-util'
|
|
5
|
-
import {
|
|
6
|
-
ENTRY_ID_INVALID_CHARACTERS,
|
|
7
|
-
EntryData,
|
|
8
|
-
EntryDraft,
|
|
9
|
-
} from '@commitspark/git-adapter'
|
|
10
|
-
|
|
11
|
-
export class MutationCreateResolverGenerator {
|
|
12
|
-
constructor(
|
|
13
|
-
private readonly persistence: PersistenceService,
|
|
14
|
-
private readonly entryReferenceUtil: EntryReferenceUtil,
|
|
15
|
-
) {}
|
|
16
|
-
|
|
17
|
-
public createResolver(
|
|
18
|
-
typeName: string,
|
|
19
|
-
): GraphQLFieldResolver<any, ApolloContext, any, Promise<EntryData>> {
|
|
20
|
-
return async (
|
|
21
|
-
source,
|
|
22
|
-
args,
|
|
23
|
-
context: ApolloContext,
|
|
24
|
-
info,
|
|
25
|
-
): Promise<EntryData> => {
|
|
26
|
-
if (!isObjectType(info.returnType)) {
|
|
27
|
-
throw new Error('Expected to create an ObjectType')
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
const idValidationResult = args.id.match(ENTRY_ID_INVALID_CHARACTERS)
|
|
31
|
-
if (idValidationResult) {
|
|
32
|
-
throw new GraphQLError(
|
|
33
|
-
`"id" contains invalid characters "${idValidationResult.join(', ')}"`,
|
|
34
|
-
{
|
|
35
|
-
extensions: {
|
|
36
|
-
code: 'BAD_USER_INPUT',
|
|
37
|
-
argumentName: 'id',
|
|
38
|
-
},
|
|
39
|
-
},
|
|
40
|
-
)
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
let existingEntry
|
|
44
|
-
try {
|
|
45
|
-
existingEntry = await this.persistence.findById(
|
|
46
|
-
context.gitAdapter,
|
|
47
|
-
context.getCurrentRef(),
|
|
48
|
-
args.id,
|
|
49
|
-
)
|
|
50
|
-
} catch (_) {
|
|
51
|
-
/* empty */
|
|
52
|
-
}
|
|
53
|
-
if (existingEntry) {
|
|
54
|
-
throw new GraphQLError(`An entry with id "${args.id}" already exists`, {
|
|
55
|
-
extensions: {
|
|
56
|
-
code: 'BAD_USER_INPUT',
|
|
57
|
-
argumentName: 'id',
|
|
58
|
-
},
|
|
59
|
-
})
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
const referencedEntryIds =
|
|
63
|
-
await this.entryReferenceUtil.getReferencedEntryIds(
|
|
64
|
-
info.returnType,
|
|
65
|
-
context,
|
|
66
|
-
null,
|
|
67
|
-
info.returnType,
|
|
68
|
-
args.data,
|
|
69
|
-
)
|
|
70
|
-
|
|
71
|
-
const referencedEntryUpdates: EntryDraft[] = []
|
|
72
|
-
for (const referencedEntryId of referencedEntryIds) {
|
|
73
|
-
const referencedEntry = await this.persistence.findById(
|
|
74
|
-
context.gitAdapter,
|
|
75
|
-
context.getCurrentRef(),
|
|
76
|
-
referencedEntryId,
|
|
77
|
-
)
|
|
78
|
-
const newReferencedEntryIds: string[] = [
|
|
79
|
-
...(referencedEntry.metadata.referencedBy ?? []),
|
|
80
|
-
args.id,
|
|
81
|
-
].sort()
|
|
82
|
-
const newReferencedEntryDraft: EntryDraft = {
|
|
83
|
-
...referencedEntry,
|
|
84
|
-
metadata: {
|
|
85
|
-
...referencedEntry.metadata,
|
|
86
|
-
referencedBy: newReferencedEntryIds,
|
|
87
|
-
},
|
|
88
|
-
deletion: false,
|
|
89
|
-
}
|
|
90
|
-
referencedEntryUpdates.push(newReferencedEntryDraft)
|
|
91
|
-
}
|
|
92
|
-
|
|
93
|
-
const newEntryDraft: EntryDraft = {
|
|
94
|
-
id: args.id,
|
|
95
|
-
metadata: {
|
|
96
|
-
type: typeName,
|
|
97
|
-
referencedBy: [],
|
|
98
|
-
},
|
|
99
|
-
data: args.data,
|
|
100
|
-
deletion: false,
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
const commit = await context.gitAdapter.createCommit({
|
|
104
|
-
ref: context.branch,
|
|
105
|
-
parentSha: context.getCurrentRef(),
|
|
106
|
-
entries: [newEntryDraft, ...referencedEntryUpdates],
|
|
107
|
-
message: args.commitMessage,
|
|
108
|
-
})
|
|
109
|
-
context.setCurrentRef(commit.ref)
|
|
110
|
-
|
|
111
|
-
const newEntry = await this.persistence.findByTypeId(
|
|
112
|
-
context.gitAdapter,
|
|
113
|
-
context.getCurrentRef(),
|
|
114
|
-
typeName,
|
|
115
|
-
args.id,
|
|
116
|
-
)
|
|
117
|
-
return { ...newEntry.data, id: newEntry.id }
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
@@ -1,96 +0,0 @@
|
|
|
1
|
-
import { PersistenceService } from '../../persistence/persistence.service'
|
|
2
|
-
import { ApolloContext } from '../../app/api.service'
|
|
3
|
-
import { Entry, EntryData, EntryDraft } from '@commitspark/git-adapter'
|
|
4
|
-
import { EntryReferenceUtil } from '../schema-utils/entry-reference-util'
|
|
5
|
-
import { GraphQLError, GraphQLFieldResolver, isObjectType } from 'graphql'
|
|
6
|
-
|
|
7
|
-
export class MutationDeleteResolverGenerator {
|
|
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
|
-
const entry: Entry = await this.persistence.findByTypeId(
|
|
23
|
-
context.gitAdapter,
|
|
24
|
-
context.getCurrentRef(),
|
|
25
|
-
typeName,
|
|
26
|
-
args.id,
|
|
27
|
-
)
|
|
28
|
-
|
|
29
|
-
if (
|
|
30
|
-
entry.metadata.referencedBy &&
|
|
31
|
-
entry.metadata.referencedBy.length > 0
|
|
32
|
-
) {
|
|
33
|
-
const otherIds = entry.metadata.referencedBy
|
|
34
|
-
.map((referenceId) => `"${referenceId}"`)
|
|
35
|
-
.join(', ')
|
|
36
|
-
throw new GraphQLError(
|
|
37
|
-
`Entry with id "${args.id}" is referenced by other entries: [${otherIds}]`,
|
|
38
|
-
{
|
|
39
|
-
extensions: {
|
|
40
|
-
code: 'IN_USE',
|
|
41
|
-
argumentName: 'id',
|
|
42
|
-
},
|
|
43
|
-
},
|
|
44
|
-
)
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
const entryType = info.schema.getType(typeName)
|
|
48
|
-
if (!isObjectType(entryType)) {
|
|
49
|
-
throw new Error('Expected to delete an ObjectType')
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
const referencedEntryIds =
|
|
53
|
-
await this.entryReferenceUtil.getReferencedEntryIds(
|
|
54
|
-
entryType,
|
|
55
|
-
context,
|
|
56
|
-
null,
|
|
57
|
-
entryType,
|
|
58
|
-
entry.data,
|
|
59
|
-
)
|
|
60
|
-
const referencedEntryUpdates: EntryDraft[] = []
|
|
61
|
-
for (const referencedEntryId of referencedEntryIds) {
|
|
62
|
-
const noLongerReferencedEntry = await this.persistence.findById(
|
|
63
|
-
context.gitAdapter,
|
|
64
|
-
context.getCurrentRef(),
|
|
65
|
-
referencedEntryId,
|
|
66
|
-
)
|
|
67
|
-
referencedEntryUpdates.push({
|
|
68
|
-
...noLongerReferencedEntry,
|
|
69
|
-
metadata: {
|
|
70
|
-
...noLongerReferencedEntry.metadata,
|
|
71
|
-
referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter(
|
|
72
|
-
(entryId) => entryId !== args.id,
|
|
73
|
-
),
|
|
74
|
-
},
|
|
75
|
-
deletion: false,
|
|
76
|
-
})
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const commit = await context.gitAdapter.createCommit({
|
|
80
|
-
ref: context.branch,
|
|
81
|
-
parentSha: context.getCurrentRef(),
|
|
82
|
-
entries: [
|
|
83
|
-
{
|
|
84
|
-
...entry,
|
|
85
|
-
deletion: true,
|
|
86
|
-
},
|
|
87
|
-
...referencedEntryUpdates,
|
|
88
|
-
],
|
|
89
|
-
message: args.commitMessage,
|
|
90
|
-
})
|
|
91
|
-
context.setCurrentRef(commit.ref)
|
|
92
|
-
|
|
93
|
-
return args.id
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|