@commitspark/graphql-api 0.90.0 → 1.0.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +16 -0
- package/README.md +8 -9
- 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/errors.js +32 -0
- package/dist/cjs/graphql/errors.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 +70 -0
- package/dist/cjs/graphql/queries-mutations-generator.js.map +1 -0
- package/dist/cjs/graphql/resolvers/field-resolvers/entry-reference-resolver.js +26 -0
- 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 +93 -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 +74 -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 +52 -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 +57 -0
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/mutation-update-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-count-all-resolver-generator.js → resolvers/query-mutation-resolvers/query-every-resolver.js} +10 -15
- package/dist/cjs/graphql/resolvers/query-mutation-resolvers/query-every-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 +100 -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 +115 -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 +19 -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 +10 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/persistence/persistence.js +63 -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/errors.js +28 -0
- package/dist/esm/graphql/errors.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 +66 -0
- package/dist/esm/graphql/queries-mutations-generator.js.map +1 -0
- package/dist/esm/graphql/resolvers/field-resolvers/entry-reference-resolver.js +13 -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 +80 -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 +67 -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 +48 -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 +60 -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-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-every-resolver.js +8 -0
- package/dist/esm/graphql/resolvers/query-mutation-resolvers/query-every-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 +94 -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 +108 -108
- 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 +17 -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 +8 -5
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/persistence/persistence.js +40 -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/errors.d.ts +20 -0
- package/dist/types/graphql/errors.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-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-every-resolver.d.ts +5 -0
- package/dist/types/graphql/resolvers/query-mutation-resolvers/query-every-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 +9 -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 +10 -2
- package/src/client.ts +114 -0
- package/src/graphql/apollo-config-factory.ts +17 -0
- package/src/graphql/errors.ts +43 -0
- package/src/graphql/input-type-generator.ts +126 -0
- package/src/graphql/queries-mutations-generator.ts +138 -0
- package/src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts +29 -0
- package/src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts +125 -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 +116 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts +85 -0
- package/src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts +119 -0
- package/src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts +20 -0
- package/src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts +21 -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 +166 -0
- package/src/graphql/schema-root-type-generator.ts +35 -0
- package/src/graphql/schema-utils/entry-reference-util.ts +175 -167
- package/src/graphql/schema-utils/entry-type-util.ts +25 -28
- package/src/graphql/schema-utils/union-type-util.ts +26 -15
- package/src/graphql/schema-validator.ts +29 -31
- package/src/index.ts +27 -5
- package/src/persistence/persistence.ts +70 -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 +0 -27
- 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
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { createApolloConfig } from './graphql/apollo-config-factory';
|
|
2
|
+
import { generateSchema } from './graphql/schema-generator';
|
|
3
|
+
import { ApolloServer, } from '@apollo/server';
|
|
4
|
+
export const postGraphQL = async (gitAdapter, ref, request) => {
|
|
5
|
+
let currentRef = await gitAdapter.getLatestCommitHash(ref);
|
|
6
|
+
const context = {
|
|
7
|
+
branch: ref,
|
|
8
|
+
gitAdapter: gitAdapter,
|
|
9
|
+
getCurrentRef() {
|
|
10
|
+
return currentRef;
|
|
11
|
+
},
|
|
12
|
+
setCurrentRef(refArg) {
|
|
13
|
+
currentRef = refArg;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
const apolloDriverConfig = await createApolloConfig(context);
|
|
17
|
+
const apolloServer = new ApolloServer({
|
|
18
|
+
...apolloDriverConfig,
|
|
19
|
+
});
|
|
20
|
+
const result = await apolloServer.executeOperation(request, {
|
|
21
|
+
contextValue: context,
|
|
22
|
+
});
|
|
23
|
+
await apolloServer.stop();
|
|
24
|
+
return {
|
|
25
|
+
ref: context.getCurrentRef(),
|
|
26
|
+
data: result.body.kind === 'single' ? result.body.singleResult.data : undefined,
|
|
27
|
+
errors: result.body.kind === 'single'
|
|
28
|
+
? result.body.singleResult.errors
|
|
29
|
+
: undefined,
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
export const getSchema = async (gitAdapter, ref) => {
|
|
33
|
+
let currentRef = await gitAdapter.getLatestCommitHash(ref);
|
|
34
|
+
const context = {
|
|
35
|
+
branch: ref,
|
|
36
|
+
gitAdapter: gitAdapter,
|
|
37
|
+
getCurrentRef() {
|
|
38
|
+
return currentRef;
|
|
39
|
+
},
|
|
40
|
+
setCurrentRef(refArg) {
|
|
41
|
+
currentRef = refArg;
|
|
42
|
+
},
|
|
43
|
+
};
|
|
44
|
+
const typeDefinitionStrings = (await generateSchema(context)).typeDefs;
|
|
45
|
+
if (!Array.isArray(typeDefinitionStrings)) {
|
|
46
|
+
throw new Error('Expected array of typeDefinition strings.');
|
|
47
|
+
}
|
|
48
|
+
return {
|
|
49
|
+
ref: context.getCurrentRef(),
|
|
50
|
+
data: typeDefinitionStrings.join('\n'),
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
//# sourceMappingURL=client.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,iCAAiC,CAAA;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAO3D,OAAO,EACL,YAAY,GAGb,MAAM,gBAAgB,CAAA;AAWvB,MAAM,CAAC,MAAM,WAAW,GAAG,KAAK,EAI9B,UAAsB,EACtB,GAAW,EACX,OAAyD,EACjB,EAAE;IAC1C,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,kBAAkB,GACtB,MAAM,kBAAkB,CAAC,OAAO,CAAC,CAAA;IAEnC,MAAM,YAAY,GAAG,IAAI,YAAY,CAAgB;QACnD,GAAG,kBAAkB;KACtB,CAAC,CAAA;IAEF,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAChD,OAAO,EACP;QACE,YAAY,EAAE,OAAO;KACtB,CACF,CAAA;IAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAA;IAEzB,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EACF,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS;QAC3E,MAAM,EACJ,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,QAAQ;YAC3B,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,MAAM;YACjC,CAAC,CAAC,SAAS;KAChB,CAAA;AACH,CAAC,CAAA;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,UAAsB,EACtB,GAAW,EACc,EAAE;IAC3B,IAAI,UAAU,GAAG,MAAM,UAAU,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAA;IAC1D,MAAM,OAAO,GAAkB;QAC7B,MAAM,EAAE,GAAG;QACX,UAAU,EAAE,UAAU;QACtB,aAAa;YACX,OAAO,UAAU,CAAA;QACnB,CAAC;QACD,aAAa,CAAC,MAAc;YAC1B,UAAU,GAAG,MAAM,CAAA;QACrB,CAAC;KACF,CAAA;IAED,MAAM,qBAAqB,GAAG,CAAC,MAAM,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAA;IACtE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,qBAAqB,CAAC,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAA;IAC9D,CAAC;IAED,OAAO;QACL,GAAG,EAAE,OAAO,CAAC,aAAa,EAAE;QAC5B,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC,IAAI,CAAC;KACvC,CAAA;AACH,CAAC,CAAA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { makeExecutableSchema } from '@graphql-tools/schema';
|
|
2
|
+
import { generateSchema } from './schema-generator';
|
|
3
|
+
import { ApolloServerPluginUsageReportingDisabled } from '@apollo/server/plugin/disabled';
|
|
4
|
+
export async function createApolloConfig(context) {
|
|
5
|
+
const schemaDefinition = await generateSchema(context);
|
|
6
|
+
const schema = makeExecutableSchema(schemaDefinition);
|
|
7
|
+
return {
|
|
8
|
+
schema: schema,
|
|
9
|
+
plugins: [ApolloServerPluginUsageReportingDisabled()],
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=apollo-config-factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"apollo-config-factory.js","sourceRoot":"","sources":["../../../src/graphql/apollo-config-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAA;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAGnD,OAAO,EAAE,wCAAwC,EAAE,MAAM,gCAAgC,CAAA;AAEzF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,OAAsB;IAEtB,MAAM,gBAAgB,GAAG,MAAM,cAAc,CAAC,OAAO,CAAC,CAAA;IACtD,MAAM,MAAM,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,CAAA;IAErD,OAAO;QACL,MAAM,EAAE,MAAM;QACd,OAAO,EAAE,CAAC,wCAAwC,EAAE,CAAC;KAChB,CAAA;AACzC,CAAC"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { GraphQLError } from 'graphql';
|
|
2
|
+
export var ErrorCode;
|
|
3
|
+
(function (ErrorCode) {
|
|
4
|
+
ErrorCode["BAD_USER_INPUT"] = "BAD_USER_INPUT";
|
|
5
|
+
ErrorCode["NOT_FOUND"] = "NOT_FOUND";
|
|
6
|
+
ErrorCode["BAD_REPOSITORY_DATA"] = "BAD_REPOSITORY_DATA";
|
|
7
|
+
ErrorCode["SCHEMA_DATA_MISMATCH"] = "SCHEMA_DATA_MISMATCH";
|
|
8
|
+
ErrorCode["BAD_SCHEMA"] = "BAD_SCHEMA";
|
|
9
|
+
ErrorCode["INTERNAL_ERROR"] = "INTERNAL_ERROR";
|
|
10
|
+
ErrorCode["IN_USE"] = "IN_USE";
|
|
11
|
+
})(ErrorCode || (ErrorCode = {}));
|
|
12
|
+
export const createError = (message, code, metaData) => {
|
|
13
|
+
const serializedFieldValue = typeof metaData.fieldValue === 'object' ||
|
|
14
|
+
Array.isArray(metaData.fieldValue)
|
|
15
|
+
? JSON.stringify(metaData.fieldValue)
|
|
16
|
+
: metaData.fieldValue;
|
|
17
|
+
const updatedMetaData = { ...metaData };
|
|
18
|
+
if (serializedFieldValue !== undefined) {
|
|
19
|
+
updatedMetaData.fieldValue = serializedFieldValue;
|
|
20
|
+
}
|
|
21
|
+
return new GraphQLError(message, {
|
|
22
|
+
extensions: {
|
|
23
|
+
code: code,
|
|
24
|
+
commitspark: updatedMetaData,
|
|
25
|
+
},
|
|
26
|
+
});
|
|
27
|
+
};
|
|
28
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../../src/graphql/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAEtC,MAAM,CAAN,IAAY,SAQX;AARD,WAAY,SAAS;IACnB,8CAAiC,CAAA;IACjC,oCAAuB,CAAA;IACvB,wDAA2C,CAAA;IAC3C,0DAA6C,CAAA;IAC7C,sCAAyB,CAAA;IACzB,8CAAiC,CAAA;IACjC,8BAAiB,CAAA;AACnB,CAAC,EARW,SAAS,KAAT,SAAS,QAQpB;AAWD,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,OAAe,EACf,IAAe,EACf,QAAuB,EACT,EAAE;IAChB,MAAM,oBAAoB,GACxB,OAAO,QAAQ,CAAC,UAAU,KAAK,QAAQ;QACvC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;QAChC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;QACrC,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAA;IACzB,MAAM,eAAe,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAA;IACvC,IAAI,oBAAoB,KAAK,SAAS,EAAE,CAAC;QACvC,eAAe,CAAC,UAAU,GAAG,oBAAoB,CAAA;IACnD,CAAC;IAED,OAAO,IAAI,YAAY,CAAC,OAAO,EAAE;QAC/B,UAAU,EAAE;YACV,IAAI,EAAE,IAAI;YACV,WAAW,EAAE,eAAe;SAC7B;KACF,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { isInterfaceType, isListType, isNonNullType, isObjectType, isScalarType, isUnionType, } from 'graphql';
|
|
2
|
+
import { buildsOnTypeWithEntryDirective, hasEntryDirective, } from './schema-utils/entry-type-util';
|
|
3
|
+
function generateFieldInputTypeString(type) {
|
|
4
|
+
if (isListType(type)) {
|
|
5
|
+
return `[${generateFieldInputTypeString(type.ofType)}]`;
|
|
6
|
+
}
|
|
7
|
+
else if (isNonNullType(type)) {
|
|
8
|
+
return `${generateFieldInputTypeString(type.ofType)}!`;
|
|
9
|
+
}
|
|
10
|
+
else if (isObjectType(type)) {
|
|
11
|
+
if (hasEntryDirective(type)) {
|
|
12
|
+
return `${type.name}IdInput`;
|
|
13
|
+
}
|
|
14
|
+
else {
|
|
15
|
+
return `${type.name}Input`;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
else if (isInterfaceType(type)) {
|
|
19
|
+
// TODO
|
|
20
|
+
return '';
|
|
21
|
+
}
|
|
22
|
+
else if (isUnionType(type)) {
|
|
23
|
+
if (buildsOnTypeWithEntryDirective(type)) {
|
|
24
|
+
return `${type.name}IdInput`;
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
return `${type.name}Input`;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
return type.name;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function generateIdInputTypeStrings(schemaAnalyzerResult) {
|
|
35
|
+
let typesWithIdField = [];
|
|
36
|
+
typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.entryDirectiveTypes);
|
|
37
|
+
typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.interfaceTypes);
|
|
38
|
+
typesWithIdField = typesWithIdField.concat(schemaAnalyzerResult.unionTypes);
|
|
39
|
+
return typesWithIdField.map((type) => {
|
|
40
|
+
return `input ${type.name}IdInput {\n` + ' id: ID!\n' + '}\n';
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
export function generateObjectInputTypeStrings(objectTypes) {
|
|
44
|
+
return objectTypes.map((objectType) => {
|
|
45
|
+
const name = objectType.name;
|
|
46
|
+
const inputTypeName = `${name}Input`;
|
|
47
|
+
let inputType = `input ${inputTypeName} {\n`;
|
|
48
|
+
let inputTypeFieldStrings = '';
|
|
49
|
+
for (const fieldsKey in objectType.getFields()) {
|
|
50
|
+
const field = objectType.getFields()[fieldsKey];
|
|
51
|
+
if ((isNonNullType(field.type) &&
|
|
52
|
+
isScalarType(field.type.ofType) &&
|
|
53
|
+
field.type.ofType.name === 'ID') ||
|
|
54
|
+
(isScalarType(field.type) && field.type.name === 'ID')) {
|
|
55
|
+
continue;
|
|
56
|
+
}
|
|
57
|
+
const inputTypeString = generateFieldInputTypeString(field.type);
|
|
58
|
+
inputTypeFieldStrings += ` ${field.name}: ${inputTypeString}\n`;
|
|
59
|
+
}
|
|
60
|
+
if (inputTypeFieldStrings.length > 0) {
|
|
61
|
+
inputType += `${inputTypeFieldStrings}`;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
// generate a dummy field as empty input types are not permitted
|
|
65
|
+
inputType += ' _: Boolean\n';
|
|
66
|
+
}
|
|
67
|
+
inputType += '}\n';
|
|
68
|
+
return inputType;
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
export function generateUnionInputTypeStrings(unionTypes) {
|
|
72
|
+
const typeStrings = unionTypes.map((unionType) => {
|
|
73
|
+
if (buildsOnTypeWithEntryDirective(unionType)) {
|
|
74
|
+
return '';
|
|
75
|
+
}
|
|
76
|
+
// see https://github.com/graphql/graphql-spec/pull/825
|
|
77
|
+
let unionInputType = `input ${unionType.name}Input @oneOf {\n`;
|
|
78
|
+
for (const innerType of unionType.getTypes()) {
|
|
79
|
+
unionInputType += ` ${innerType.name}: ${innerType.name}Input\n`;
|
|
80
|
+
}
|
|
81
|
+
unionInputType += '}\n';
|
|
82
|
+
return unionInputType;
|
|
83
|
+
});
|
|
84
|
+
if (typeStrings.join('').length > 0) {
|
|
85
|
+
typeStrings.push('directive @oneOf on INPUT_OBJECT\n');
|
|
86
|
+
}
|
|
87
|
+
return typeStrings;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=input-type-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/input-type-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { queryEveryResolver } from './resolvers/query-mutation-resolvers/query-every-resolver';
|
|
2
|
+
import { queryByIdResolver } from './resolvers/query-mutation-resolvers/query-by-id-resolver';
|
|
3
|
+
import { mutationCreateResolver } from './resolvers/query-mutation-resolvers/mutation-create-resolver';
|
|
4
|
+
import { mutationUpdateResolver } from './resolvers/query-mutation-resolvers/mutation-update-resolver';
|
|
5
|
+
import { mutationDeleteResolver } from './resolvers/query-mutation-resolvers/mutation-delete-resolver';
|
|
6
|
+
import { queryTypeByIdResolver } from './resolvers/query-mutation-resolvers/query-type-by-id-resolver';
|
|
7
|
+
export function generateQueriesAndMutations(entryDirectiveTypes) {
|
|
8
|
+
return entryDirectiveTypes.map((objectType) => {
|
|
9
|
+
const typeName = objectType.name;
|
|
10
|
+
// The semantics of `every` aren't a perfect replacement of `all` but this way we don't need to do non-trivial
|
|
11
|
+
// pluralization of user-provided typeName
|
|
12
|
+
const queryEveryName = `every${typeName}`;
|
|
13
|
+
const queryEveryString = `${queryEveryName}: [${objectType.name}!]`;
|
|
14
|
+
const queryEveryResolverFunc = (source, args, context, info) => queryEveryResolver(source, args, { ...context, type: objectType }, info);
|
|
15
|
+
const queryByIdName = typeName;
|
|
16
|
+
const queryByIdString = `${queryByIdName}(id: ID!): ${objectType.name}`;
|
|
17
|
+
const queryByIdResolverFunc = (source, args, context, info) => queryByIdResolver(source, args, { ...context, type: objectType }, info);
|
|
18
|
+
const inputTypeName = `${typeName}Input`;
|
|
19
|
+
const createMutationName = `create${typeName}`;
|
|
20
|
+
const createMutationString = `${createMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`;
|
|
21
|
+
const createMutationResolver = (source, args, context, info) => mutationCreateResolver(source, args, { ...context, type: objectType }, info);
|
|
22
|
+
const updateMutationName = `update${typeName}`;
|
|
23
|
+
const updateMutationString = `${updateMutationName}(id: ID!, data: ${inputTypeName}!, commitMessage: String): ${typeName}`;
|
|
24
|
+
const updateMutationResolver = (source, args, context, info) => mutationUpdateResolver(source, args, { ...context, type: objectType }, info);
|
|
25
|
+
const deleteMutationName = `delete${typeName}`;
|
|
26
|
+
const deleteMutationString = `${deleteMutationName}(id: ID!, commitMessage: String): ID`;
|
|
27
|
+
const deleteMutationResolver = (source, args, context, info) => mutationDeleteResolver(source, args, { ...context, type: objectType }, info);
|
|
28
|
+
return {
|
|
29
|
+
queryEvery: {
|
|
30
|
+
name: queryEveryName,
|
|
31
|
+
schemaString: queryEveryString,
|
|
32
|
+
resolver: queryEveryResolverFunc,
|
|
33
|
+
},
|
|
34
|
+
queryById: {
|
|
35
|
+
name: queryByIdName,
|
|
36
|
+
schemaString: queryByIdString,
|
|
37
|
+
resolver: queryByIdResolverFunc,
|
|
38
|
+
},
|
|
39
|
+
createMutation: {
|
|
40
|
+
name: createMutationName,
|
|
41
|
+
schemaString: createMutationString,
|
|
42
|
+
resolver: createMutationResolver,
|
|
43
|
+
},
|
|
44
|
+
updateMutation: {
|
|
45
|
+
name: updateMutationName,
|
|
46
|
+
schemaString: updateMutationString,
|
|
47
|
+
resolver: updateMutationResolver,
|
|
48
|
+
},
|
|
49
|
+
deleteMutation: {
|
|
50
|
+
name: deleteMutationName,
|
|
51
|
+
schemaString: deleteMutationString,
|
|
52
|
+
resolver: deleteMutationResolver,
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
export function generateTypeNameQuery() {
|
|
58
|
+
const entryTypeQueryName = '_typeName';
|
|
59
|
+
const entryTypeQueryString = `${entryTypeQueryName}(id: ID!): String!`;
|
|
60
|
+
return {
|
|
61
|
+
name: entryTypeQueryName,
|
|
62
|
+
schemaString: entryTypeQueryString,
|
|
63
|
+
resolver: queryTypeByIdResolver,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=queries-mutations-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"queries-mutations-generator.js","sourceRoot":"","sources":["../../../src/graphql/queries-mutations-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { isNamedType } from 'graphql';
|
|
2
|
+
import { findById } from '../../../persistence/persistence';
|
|
3
|
+
import { createError, ErrorCode } from '../../errors';
|
|
4
|
+
export const resolveEntryReference = async (fieldValue, args, context, info) => {
|
|
5
|
+
if (!isNamedType(context.currentType)) {
|
|
6
|
+
throw createError(`Expected context.currentType type to be a named type.`, ErrorCode.INTERNAL_ERROR, {
|
|
7
|
+
fieldValue: fieldValue,
|
|
8
|
+
});
|
|
9
|
+
}
|
|
10
|
+
const entry = await findById(context.gitAdapter, context.getCurrentRef(), fieldValue.id);
|
|
11
|
+
return { ...entry.data, id: entry.id };
|
|
12
|
+
};
|
|
13
|
+
//# sourceMappingURL=entry-reference-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-reference-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/entry-reference-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAsB,WAAW,EAAE,MAAM,SAAS,CAAA;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAA;AAC3D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,qBAAqB,GAAuB,KAAK,EAC5D,UAAe,EACf,IAAS,EACT,OAA6B,EAC7B,IAAwB,EACxB,EAAE;IACF,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC;QACtC,MAAM,WAAW,CACf,uDAAuD,EACvD,SAAS,CAAC,cAAc,EACxB;YACE,UAAU,EAAE,UAAU;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,QAAQ,CAC1B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,UAAU,CAAC,EAAE,CACd,CAAA;IAED,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import { isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
import { buildsOnTypeWithEntryDirective, hasEntryDirective, } from '../../schema-utils/entry-type-util';
|
|
3
|
+
import { resolveEntryReference } from './entry-reference-resolver';
|
|
4
|
+
import { resolveUnionValue } from './union-value-resolver';
|
|
5
|
+
import { createError, ErrorCode } from '../../errors';
|
|
6
|
+
export const resolveFieldDefaultValue = async (fieldValue, args, context, info) => {
|
|
7
|
+
if (isNonNullType(context.currentType)) {
|
|
8
|
+
return resolveFieldDefaultValue(fieldValue, args, {
|
|
9
|
+
gitAdapter: context.gitAdapter,
|
|
10
|
+
getCurrentRef: context.getCurrentRef,
|
|
11
|
+
currentType: context.currentType.ofType,
|
|
12
|
+
hasNonNullParent: true,
|
|
13
|
+
}, info);
|
|
14
|
+
}
|
|
15
|
+
else if (isListType(context.currentType)) {
|
|
16
|
+
if (fieldValue === undefined || fieldValue === null) {
|
|
17
|
+
if (context.hasNonNullParent) {
|
|
18
|
+
return new Promise((resolve) => resolve([]));
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
return new Promise((resolve) => resolve(null));
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
if (!Array.isArray(fieldValue)) {
|
|
25
|
+
throw createError(`Expected array while resolving value for field "${info.fieldName}".`, ErrorCode.SCHEMA_DATA_MISMATCH, {
|
|
26
|
+
fieldName: info.fieldName,
|
|
27
|
+
fieldValue: fieldValue,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const resultPromises = [];
|
|
31
|
+
for (const item of fieldValue) {
|
|
32
|
+
const resultPromise = resolveFieldDefaultValue(item, args, {
|
|
33
|
+
gitAdapter: context.gitAdapter,
|
|
34
|
+
getCurrentRef: context.getCurrentRef,
|
|
35
|
+
currentType: context.currentType.ofType,
|
|
36
|
+
hasNonNullParent: context.hasNonNullParent,
|
|
37
|
+
}, info);
|
|
38
|
+
resultPromises.push(resultPromise);
|
|
39
|
+
}
|
|
40
|
+
return Promise.all(resultPromises);
|
|
41
|
+
}
|
|
42
|
+
else if (isUnionType(context.currentType)) {
|
|
43
|
+
if (fieldValue === undefined || fieldValue === null) {
|
|
44
|
+
if (context.hasNonNullParent) {
|
|
45
|
+
throw createError(`Cannot generate a default value for NonNull field "${info.parentType.name}.${info.fieldName}" because it is a union field of type "${info.returnType.ofType.name}". Set a value in your repository data or remove the NonNull declaration in your schema.`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
46
|
+
typeName: info.parentType.name,
|
|
47
|
+
fieldName: info.fieldName,
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else {
|
|
51
|
+
return new Promise((resolve) => resolve(null));
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
if (buildsOnTypeWithEntryDirective(context.currentType)) {
|
|
55
|
+
return resolveEntryReference(fieldValue, args, context, info);
|
|
56
|
+
}
|
|
57
|
+
return resolveUnionValue(fieldValue, args, context, info);
|
|
58
|
+
}
|
|
59
|
+
else if (isObjectType(context.currentType)) {
|
|
60
|
+
if (fieldValue === undefined || fieldValue === null) {
|
|
61
|
+
if (context.hasNonNullParent) {
|
|
62
|
+
throw createError(`Cannot generate a default value for NonNull field "${info.fieldName}" of type ` +
|
|
63
|
+
`"${info.parentType.name}". Set a value in your repository data or remove the NonNull ` +
|
|
64
|
+
`declaration in your schema.`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
65
|
+
typeName: info.parentType.name,
|
|
66
|
+
fieldName: info.fieldName,
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
return new Promise((resolve) => resolve(null));
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
if (hasEntryDirective(context.currentType)) {
|
|
74
|
+
return resolveEntryReference(fieldValue, args, context, info);
|
|
75
|
+
}
|
|
76
|
+
return fieldValue;
|
|
77
|
+
}
|
|
78
|
+
return fieldValue;
|
|
79
|
+
};
|
|
80
|
+
//# sourceMappingURL=field-default-value-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-default-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/field-default-value-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { getUnionTypeNameFromFieldValue, getUnionValue, } from '../../schema-utils/union-type-util';
|
|
2
|
+
export const resolveUnionValue = async (fieldValue) => {
|
|
3
|
+
const typeName = getUnionTypeNameFromFieldValue(fieldValue);
|
|
4
|
+
const unionValue = getUnionValue(fieldValue);
|
|
5
|
+
// We replace the helper type name field that holds our field's actual data
|
|
6
|
+
// with this actual data and add a `__typename` field, so that our output data
|
|
7
|
+
// corresponds to the output schema provided by the user (i.e. there is
|
|
8
|
+
// no additional nesting level there).
|
|
9
|
+
const res = {
|
|
10
|
+
...unionValue,
|
|
11
|
+
__typename: typeName,
|
|
12
|
+
};
|
|
13
|
+
return new Promise((resolve) => resolve(res));
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=union-value-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-value-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/field-resolvers/union-value-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,8BAA8B,EAC9B,aAAa,GACd,MAAM,oCAAoC,CAAA;AAE3C,MAAM,CAAC,MAAM,iBAAiB,GAAuB,KAAK,EACxD,UAAe,EAC6C,EAAE;IAC9D,MAAM,QAAQ,GAAG,8BAA8B,CAAC,UAAU,CAAC,CAAA;IAC3D,MAAM,UAAU,GAAG,aAAa,CAAC,UAAU,CAAC,CAAA;IAE5C,2EAA2E;IAC3E,8EAA8E;IAC9E,uEAAuE;IACvE,sCAAsC;IACtC,MAAM,GAAG,GAAc;QACrB,GAAG,UAAU;QACb,UAAU,EAAE,QAAQ;KACrB,CAAA;IAED,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
import { resolveFieldDefaultValue } from './field-resolvers/field-default-value-resolver';
|
|
3
|
+
function requiresCustomDefaultValueResolver(type) {
|
|
4
|
+
if (isNonNullType(type)) {
|
|
5
|
+
return requiresCustomDefaultValueResolver(type.ofType);
|
|
6
|
+
}
|
|
7
|
+
else if (isListType(type)) {
|
|
8
|
+
return true;
|
|
9
|
+
}
|
|
10
|
+
else if (isUnionType(type)) {
|
|
11
|
+
return true;
|
|
12
|
+
}
|
|
13
|
+
else if (isObjectType(type)) {
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
return false;
|
|
17
|
+
}
|
|
18
|
+
function getFieldsForCustomDefaultValueResolver(objectType) {
|
|
19
|
+
const fields = [];
|
|
20
|
+
for (const fieldsKey in objectType.getFields()) {
|
|
21
|
+
const field = objectType.getFields()[fieldsKey];
|
|
22
|
+
if (requiresCustomDefaultValueResolver(field.type)) {
|
|
23
|
+
fields.push(field);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return fields;
|
|
27
|
+
}
|
|
28
|
+
export function createObjectTypeFieldResolvers(schema) {
|
|
29
|
+
const fieldResolversByType = {};
|
|
30
|
+
for (const typeName of Object.keys(schema.getTypeMap())) {
|
|
31
|
+
const type = schema.getType(typeName);
|
|
32
|
+
if (!isObjectType(type) || type.name.startsWith('__')) {
|
|
33
|
+
continue;
|
|
34
|
+
}
|
|
35
|
+
const fieldsForCustomDefaultValueResolver = getFieldsForCustomDefaultValueResolver(type);
|
|
36
|
+
const fieldResolversByFieldName = {};
|
|
37
|
+
for (const field of fieldsForCustomDefaultValueResolver) {
|
|
38
|
+
fieldResolversByFieldName[field.name] = (obj, args, context, info) => resolveFieldDefaultValue(field.name in obj ? obj[field.name] : undefined, args, {
|
|
39
|
+
currentType: field.type,
|
|
40
|
+
gitAdapter: context.gitAdapter,
|
|
41
|
+
getCurrentRef: context.getCurrentRef,
|
|
42
|
+
}, info);
|
|
43
|
+
}
|
|
44
|
+
if (Object.keys(fieldResolversByFieldName).length > 0) {
|
|
45
|
+
fieldResolversByType[typeName] = fieldResolversByFieldName;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return fieldResolversByType;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=object-type-field-default-value-resolver-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"object-type-field-default-value-resolver-generator.js","sourceRoot":"","sources":["../../../../src/graphql/resolvers/object-type-field-default-value-resolver-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAML,UAAU,EACV,aAAa,EACb,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAGhB,OAAO,EAAE,wBAAwB,EAAE,MAAM,gDAAgD,CAAA;AAGzF,SAAS,kCAAkC,CAAC,IAAuB;IACjE,IAAI,aAAa,CAAC,IAAI,CAAC,EAAE,CAAC;QACxB,OAAO,kCAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACxD,CAAC;SAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC5B,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,OAAO,IAAI,CAAA;IACb,CAAC;SAAM,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;QAC9B,OAAO,IAAI,CAAA;IACb,CAAC;IACD,OAAO,KAAK,CAAA;AACd,CAAC;AAED,SAAS,sCAAsC,CAC7C,UAA6B;IAE7B,MAAM,MAAM,GAAG,EAAE,CAAA;IACjB,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,SAAS,EAAE,EAAE,CAAC;QAC/C,MAAM,KAAK,GAA2B,UAAU,CAAC,SAAS,EAAE,CAAC,SAAS,CAAC,CAAA;QACvE,IAAI,kCAAkC,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;YACnD,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QACpB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAYD,MAAM,UAAU,8BAA8B,CAC5C,MAAqB;IAErB,MAAM,oBAAoB,GAAyC,EAAE,CAAA;IACrE,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACrC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACtD,SAAQ;QACV,CAAC;QACD,MAAM,mCAAmC,GACvC,sCAAsC,CAAC,IAAI,CAAC,CAAA;QAE9C,MAAM,yBAAyB,GAAyB,EAAE,CAAA;QAC1D,KAAK,MAAM,KAAK,IAAI,mCAAmC,EAAE,CAAC;YACxD,yBAAyB,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CACtC,GAAG,EACH,IAAI,EACJ,OAAO,EACP,IAAI,EACwD,EAAE,CAC9D,wBAAwB,CACtB,KAAK,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,EAC/C,IAAI,EACJ;gBACE,WAAW,EAAE,KAAK,CAAC,IAAI;gBACvB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,aAAa,EAAE,OAAO,CAAC,aAAa;aACrC,EACD,IAAI,CACL,CAAA;QACL,CAAC;QAED,IAAI,MAAM,CAAC,IAAI,CAAC,yBAAyB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtD,oBAAoB,CAAC,QAAQ,CAAC,GAAG,yBAAyB,CAAA;QAC5D,CAAC;IACH,CAAC;IAED,OAAO,oBAAoB,CAAA;AAC7B,CAAC"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { findById, findByTypeId } from '../../../persistence/persistence';
|
|
2
|
+
import { isObjectType } from 'graphql';
|
|
3
|
+
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util';
|
|
4
|
+
import { ENTRY_ID_INVALID_CHARACTERS, } from '@commitspark/git-adapter';
|
|
5
|
+
import { createError, ErrorCode } from '../../errors';
|
|
6
|
+
export const mutationCreateResolver = async (source, args, context, info) => {
|
|
7
|
+
if (!isObjectType(context.type)) {
|
|
8
|
+
throw createError(`Entry of type "${context.type.name}" cannot be created as is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
9
|
+
}
|
|
10
|
+
const idValidationResult = args.id.match(ENTRY_ID_INVALID_CHARACTERS);
|
|
11
|
+
if (idValidationResult) {
|
|
12
|
+
throw createError(`Field "id" contains invalid characters "${idValidationResult.join(', ')}".`, ErrorCode.BAD_USER_INPUT, {
|
|
13
|
+
argumentName: 'id',
|
|
14
|
+
argumentValue: args.id,
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
let existingEntry;
|
|
18
|
+
try {
|
|
19
|
+
existingEntry = await findById(context.gitAdapter, context.getCurrentRef(), args.id);
|
|
20
|
+
}
|
|
21
|
+
catch (_) {
|
|
22
|
+
/* empty */
|
|
23
|
+
}
|
|
24
|
+
if (existingEntry) {
|
|
25
|
+
throw createError(`An entry with id "${args.id}" already exists.`, ErrorCode.BAD_USER_INPUT, {
|
|
26
|
+
argumentName: 'id',
|
|
27
|
+
argumentValue: args.id,
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
const referencedEntryIds = await getReferencedEntryIds(context.type, context, null, info.returnType, args.data);
|
|
31
|
+
const referencedEntryUpdates = [];
|
|
32
|
+
for (const referencedEntryId of referencedEntryIds) {
|
|
33
|
+
const referencedEntry = await findById(context.gitAdapter, context.getCurrentRef(), referencedEntryId);
|
|
34
|
+
const newReferencedEntryIds = [
|
|
35
|
+
...(referencedEntry.metadata.referencedBy ?? []),
|
|
36
|
+
args.id,
|
|
37
|
+
].sort();
|
|
38
|
+
const newReferencedEntryDraft = {
|
|
39
|
+
...referencedEntry,
|
|
40
|
+
metadata: {
|
|
41
|
+
...referencedEntry.metadata,
|
|
42
|
+
referencedBy: newReferencedEntryIds,
|
|
43
|
+
},
|
|
44
|
+
deletion: false,
|
|
45
|
+
};
|
|
46
|
+
referencedEntryUpdates.push(newReferencedEntryDraft);
|
|
47
|
+
}
|
|
48
|
+
const newEntryDraft = {
|
|
49
|
+
id: args.id,
|
|
50
|
+
metadata: {
|
|
51
|
+
type: context.type.name,
|
|
52
|
+
referencedBy: [],
|
|
53
|
+
},
|
|
54
|
+
data: args.data,
|
|
55
|
+
deletion: false,
|
|
56
|
+
};
|
|
57
|
+
const commit = await context.gitAdapter.createCommit({
|
|
58
|
+
ref: context.branch,
|
|
59
|
+
parentSha: context.getCurrentRef(),
|
|
60
|
+
entries: [newEntryDraft, ...referencedEntryUpdates],
|
|
61
|
+
message: args.commitMessage,
|
|
62
|
+
});
|
|
63
|
+
context.setCurrentRef(commit.ref);
|
|
64
|
+
const newEntry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
65
|
+
return { ...newEntry.data, id: newEntry.id };
|
|
66
|
+
};
|
|
67
|
+
//# sourceMappingURL=mutation-create-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-create-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-create-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { findById, findByTypeId } from '../../../persistence/persistence';
|
|
2
|
+
import { getReferencedEntryIds } from '../../schema-utils/entry-reference-util';
|
|
3
|
+
import { isObjectType } from 'graphql';
|
|
4
|
+
import { createError, ErrorCode } from '../../errors';
|
|
5
|
+
export const mutationDeleteResolver = async (source, args, context, info) => {
|
|
6
|
+
const entry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
7
|
+
if (entry.metadata.referencedBy && entry.metadata.referencedBy.length > 0) {
|
|
8
|
+
const otherIds = entry.metadata.referencedBy
|
|
9
|
+
.map((referenceId) => `"${referenceId}"`)
|
|
10
|
+
.join(', ');
|
|
11
|
+
throw createError(`Entry with ID "${args.id}" is still referenced by entries [${otherIds}].`, ErrorCode.IN_USE, {
|
|
12
|
+
argumentName: 'id',
|
|
13
|
+
argumentValue: args.id,
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
const entryType = info.schema.getType(context.type.name);
|
|
17
|
+
if (!isObjectType(entryType)) {
|
|
18
|
+
throw createError(`Type "${context.type.name}" is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
19
|
+
}
|
|
20
|
+
const referencedEntryIds = await getReferencedEntryIds(entryType, context, null, entryType, entry.data);
|
|
21
|
+
const referencedEntryUpdates = [];
|
|
22
|
+
for (const referencedEntryId of referencedEntryIds) {
|
|
23
|
+
const noLongerReferencedEntry = await findById(context.gitAdapter, context.getCurrentRef(), referencedEntryId);
|
|
24
|
+
referencedEntryUpdates.push({
|
|
25
|
+
...noLongerReferencedEntry,
|
|
26
|
+
metadata: {
|
|
27
|
+
...noLongerReferencedEntry.metadata,
|
|
28
|
+
referencedBy: noLongerReferencedEntry.metadata.referencedBy?.filter((entryId) => entryId !== args.id),
|
|
29
|
+
},
|
|
30
|
+
deletion: false,
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
const commit = await context.gitAdapter.createCommit({
|
|
34
|
+
ref: context.branch,
|
|
35
|
+
parentSha: context.getCurrentRef(),
|
|
36
|
+
entries: [
|
|
37
|
+
{
|
|
38
|
+
...entry,
|
|
39
|
+
deletion: true,
|
|
40
|
+
},
|
|
41
|
+
...referencedEntryUpdates,
|
|
42
|
+
],
|
|
43
|
+
message: args.commitMessage,
|
|
44
|
+
});
|
|
45
|
+
context.setCurrentRef(commit.ref);
|
|
46
|
+
return args.id;
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=mutation-delete-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-delete-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-delete-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAEzE,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAA;AAC/E,OAAO,EAAwB,YAAY,EAAE,MAAM,SAAS,CAAA;AAE5D,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAErD,MAAM,CAAC,MAAM,sBAAsB,GAK/B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxC,MAAM,KAAK,GAAU,MAAM,YAAY,CACrC,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,IAAI,CAAC,EAAE,CACR,CAAA;IAED,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,IAAI,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC1E,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY;aACzC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,GAAG,CAAC;aACxC,IAAI,CAAC,IAAI,CAAC,CAAA;QACb,MAAM,WAAW,CACf,kBAAkB,IAAI,CAAC,EAAE,qCAAqC,QAAQ,IAAI,EAC1E,SAAS,CAAC,MAAM,EAChB;YACE,YAAY,EAAE,IAAI;YAClB,aAAa,EAAE,IAAI,CAAC,EAAE;SACvB,CACF,CAAA;IACH,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IACxD,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,CAAC;QAC7B,MAAM,WAAW,CACf,SAAS,OAAO,CAAC,IAAI,CAAC,IAAI,yBAAyB,EACnD,SAAS,CAAC,cAAc,EACxB,EAAE,CACH,CAAA;IACH,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,qBAAqB,CACpD,SAAS,EACT,OAAO,EACP,IAAI,EACJ,SAAS,EACT,KAAK,CAAC,IAAI,CACX,CAAA;IACD,MAAM,sBAAsB,GAAiB,EAAE,CAAA;IAC/C,KAAK,MAAM,iBAAiB,IAAI,kBAAkB,EAAE,CAAC;QACnD,MAAM,uBAAuB,GAAG,MAAM,QAAQ,CAC5C,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,iBAAiB,CAClB,CAAA;QACD,sBAAsB,CAAC,IAAI,CAAC;YAC1B,GAAG,uBAAuB;YAC1B,QAAQ,EAAE;gBACR,GAAG,uBAAuB,CAAC,QAAQ;gBACnC,YAAY,EAAE,uBAAuB,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,CACjE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC,EAAE,CACjC;aACF;YACD,QAAQ,EAAE,KAAK;SAChB,CAAC,CAAA;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,YAAY,CAAC;QACnD,GAAG,EAAE,OAAO,CAAC,MAAM;QACnB,SAAS,EAAE,OAAO,CAAC,aAAa,EAAE;QAClC,OAAO,EAAE;YACP;gBACE,GAAG,KAAK;gBACR,QAAQ,EAAE,IAAI;aACf;YACD,GAAG,sBAAsB;SAC1B;QACD,OAAO,EAAE,IAAI,CAAC,aAAa;KAC5B,CAAC,CAAA;IACF,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAEjC,OAAO,IAAI,CAAC,EAAE,CAAA;AAChB,CAAC,CAAA"}
|