@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,60 @@
|
|
|
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
|
+
function mergeData(existingEntryData, updateData) {
|
|
6
|
+
return {
|
|
7
|
+
...existingEntryData,
|
|
8
|
+
...updateData,
|
|
9
|
+
};
|
|
10
|
+
}
|
|
11
|
+
export const mutationUpdateResolver = async (source, args, context, info) => {
|
|
12
|
+
if (!isObjectType(context.type)) {
|
|
13
|
+
throw createError(`Type "${context.type.name}" cannot be mutated as is not an ObjectType.`, ErrorCode.INTERNAL_ERROR, {});
|
|
14
|
+
}
|
|
15
|
+
const existingEntry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
16
|
+
const existingReferencedEntryIds = await getReferencedEntryIds(context.type, context, null, info.returnType, existingEntry.data);
|
|
17
|
+
const mergedData = mergeData(existingEntry.data ?? null, args.data);
|
|
18
|
+
const updatedReferencedEntryIds = await getReferencedEntryIds(context.type, context, null, info.returnType, mergedData);
|
|
19
|
+
const noLongerReferencedIds = existingReferencedEntryIds.filter((entryId) => !updatedReferencedEntryIds.includes(entryId));
|
|
20
|
+
const newlyReferencedIds = updatedReferencedEntryIds.filter((entryId) => !existingReferencedEntryIds.includes(entryId));
|
|
21
|
+
const referencedEntryUpdates = [];
|
|
22
|
+
for (const noLongerReferencedEntryId of noLongerReferencedIds) {
|
|
23
|
+
const noLongerReferencedEntry = await findById(context.gitAdapter, context.getCurrentRef(), noLongerReferencedEntryId);
|
|
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
|
+
for (const newlyReferencedEntryId of newlyReferencedIds) {
|
|
34
|
+
const newlyReferencedEntry = await findById(context.gitAdapter, context.getCurrentRef(), newlyReferencedEntryId);
|
|
35
|
+
const updatedReferenceList = newlyReferencedEntry.metadata.referencedBy ?? [];
|
|
36
|
+
updatedReferenceList.push(args.id);
|
|
37
|
+
updatedReferenceList.sort();
|
|
38
|
+
referencedEntryUpdates.push({
|
|
39
|
+
...newlyReferencedEntry,
|
|
40
|
+
metadata: {
|
|
41
|
+
...newlyReferencedEntry.metadata,
|
|
42
|
+
referencedBy: updatedReferenceList,
|
|
43
|
+
},
|
|
44
|
+
deletion: false,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
const commit = await context.gitAdapter.createCommit({
|
|
48
|
+
ref: context.branch,
|
|
49
|
+
parentSha: context.getCurrentRef(),
|
|
50
|
+
entries: [
|
|
51
|
+
{ ...existingEntry, data: mergedData, deletion: false },
|
|
52
|
+
...referencedEntryUpdates,
|
|
53
|
+
],
|
|
54
|
+
message: args.commitMessage,
|
|
55
|
+
});
|
|
56
|
+
context.setCurrentRef(commit.ref);
|
|
57
|
+
const updatedEntry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
58
|
+
return { ...updatedEntry.data, id: updatedEntry.id };
|
|
59
|
+
};
|
|
60
|
+
//# sourceMappingURL=mutation-update-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mutation-update-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/mutation-update-resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { findByTypeId } from '../../../persistence/persistence';
|
|
2
|
+
export const queryByIdResolver = async (obj, args, context, info) => {
|
|
3
|
+
const entry = await findByTypeId(context.gitAdapter, context.getCurrentRef(), context.type.name, args.id);
|
|
4
|
+
return { ...entry.data, id: entry.id };
|
|
5
|
+
};
|
|
6
|
+
//# sourceMappingURL=query-by-id-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-by-id-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-by-id-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAA;AAI/D,MAAM,CAAC,MAAM,iBAAiB,GAK1B,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrC,MAAM,KAAK,GAAG,MAAM,YAAY,CAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,EACjB,IAAI,CAAC,EAAE,CACR,CAAA;IAED,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;AACxC,CAAC,CAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { findByType } from '../../../persistence/persistence';
|
|
2
|
+
export const queryEveryResolver = async (obj, args, context, info) => {
|
|
3
|
+
const entries = await findByType(context.gitAdapter, context.getCurrentRef(), context.type.name);
|
|
4
|
+
return entries.map((entry) => {
|
|
5
|
+
return { ...entry.data, id: entry.id };
|
|
6
|
+
});
|
|
7
|
+
};
|
|
8
|
+
//# sourceMappingURL=query-every-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-every-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-every-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAA;AAI7D,MAAM,CAAC,MAAM,kBAAkB,GAK3B,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACrC,MAAM,OAAO,GAAG,MAAM,UAAU,CAC9B,OAAO,CAAC,UAAU,EAClB,OAAO,CAAC,aAAa,EAAE,EACvB,OAAO,CAAC,IAAI,CAAC,IAAI,CAClB,CAAA;IAED,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE;QAC3B,OAAO,EAAE,GAAG,KAAK,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,CAAA;IACxC,CAAC,CAAC,CAAA;AACJ,CAAC,CAAA"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { getTypeById } from '../../../persistence/persistence';
|
|
2
|
+
export const queryTypeByIdResolver = async (source, args, context, info) => {
|
|
3
|
+
return getTypeById(context.gitAdapter, context.getCurrentRef(), args.id);
|
|
4
|
+
};
|
|
5
|
+
//# sourceMappingURL=query-type-by-id-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-type-by-id-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/query-type-by-id-resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAI9D,MAAM,CAAC,MAAM,qBAAqB,GAK9B,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;IACxC,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,EAAE,CAAC,CAAA;AAC1E,CAAC,CAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { getTypeById } from '../../../persistence/persistence';
|
|
2
|
+
import { buildsOnTypeWithEntryDirective } from '../../schema-utils/entry-type-util';
|
|
3
|
+
export const unionTypeResolver = async (obj, context, info, abstractType) => {
|
|
4
|
+
if (buildsOnTypeWithEntryDirective(abstractType)) {
|
|
5
|
+
return getTypeById(context.gitAdapter, context.getCurrentRef(), obj.id);
|
|
6
|
+
}
|
|
7
|
+
else {
|
|
8
|
+
// We have injected an internal `__typename` field into the data of fields pointing to a non-entry union
|
|
9
|
+
// in UnionValueResolver. This artificial field holds the type information we need here.
|
|
10
|
+
return obj.__typename;
|
|
11
|
+
}
|
|
12
|
+
// TODO same for interface type: https://www.apollographql.com/docs/apollo-server/data/resolvers/#resolving-unions-and-interfaces
|
|
13
|
+
};
|
|
14
|
+
//# sourceMappingURL=union-type-resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"union-type-resolver.js","sourceRoot":"","sources":["../../../../../src/graphql/resolvers/query-mutation-resolvers/union-type-resolver.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAA;AAE9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,oCAAoC,CAAA;AAEnF,MAAM,CAAC,MAAM,iBAAiB,GAG1B,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE;IAC7C,IAAI,8BAA8B,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,OAAO,WAAW,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,aAAa,EAAE,EAAE,GAAG,CAAC,EAAE,CAAC,CAAA;IACzE,CAAC;SAAM,CAAC;QACN,wGAAwG;QACxG,wFAAwF;QACxF,OAAO,GAAG,CAAC,UAAU,CAAA;IACvB,CAAC;IAED,iIAAiI;AACnI,CAAC,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/graphql/resolvers/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { isInterfaceType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
import { getDirective } from '@graphql-tools/utils';
|
|
3
|
+
export function analyzeSchema(schema) {
|
|
4
|
+
const result = {
|
|
5
|
+
entryDirectiveTypes: [],
|
|
6
|
+
objectTypes: [],
|
|
7
|
+
interfaceTypes: [],
|
|
8
|
+
unionTypes: [],
|
|
9
|
+
};
|
|
10
|
+
const typeMap = schema.getTypeMap();
|
|
11
|
+
for (const [key, type] of Object.entries(typeMap)) {
|
|
12
|
+
if (key.startsWith('__')) {
|
|
13
|
+
continue;
|
|
14
|
+
}
|
|
15
|
+
if (isObjectType(type)) {
|
|
16
|
+
const objectType = type;
|
|
17
|
+
result.objectTypes.push(objectType);
|
|
18
|
+
const entityDirective = getDirective(schema, objectType, 'Entry')?.[0];
|
|
19
|
+
if (entityDirective) {
|
|
20
|
+
result.entryDirectiveTypes.push(objectType);
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
if (isInterfaceType(type)) {
|
|
24
|
+
const interfaceType = type;
|
|
25
|
+
result.interfaceTypes.push(interfaceType);
|
|
26
|
+
}
|
|
27
|
+
if (isUnionType(type)) {
|
|
28
|
+
const unionType = type;
|
|
29
|
+
result.unionTypes.push(unionType);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return result;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=schema-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-analyzer.js","sourceRoot":"","sources":["../../../src/graphql/schema-analyzer.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,EACf,YAAY,EACZ,WAAW,GACZ,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAEnD,MAAM,UAAU,aAAa,CAAC,MAAqB;IACjD,MAAM,MAAM,GAAyB;QACnC,mBAAmB,EAAE,EAAE;QACvB,WAAW,EAAE,EAAE;QACf,cAAc,EAAE,EAAE;QAClB,UAAU,EAAE,EAAE;KACf,CAAA;IAED,MAAM,OAAO,GAAG,MAAM,CAAC,UAAU,EAAE,CAAA;IAEnC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YACzB,SAAQ;QACV,CAAC;QAED,IAAI,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC;YACvB,MAAM,UAAU,GAAG,IAAyB,CAAA;YAC5C,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YACnC,MAAM,eAAe,GAAG,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;YACtE,IAAI,eAAe,EAAE,CAAC;gBACpB,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;YAC7C,CAAC;QACH,CAAC;QAED,IAAI,eAAe,CAAC,IAAI,CAAC,EAAE,CAAC;YAC1B,MAAM,aAAa,GAAG,IAA4B,CAAA;YAClD,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;QAC3C,CAAC;QAED,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;YACtB,MAAM,SAAS,GAAG,IAAwB,CAAA;YAC1C,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACnC,CAAC;IACH,CAAC;IAED,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
import { generateQueriesAndMutations, generateTypeNameQuery, } from './queries-mutations-generator';
|
|
2
|
+
import { makeExecutableSchema, } from '@graphql-tools/schema';
|
|
3
|
+
import { analyzeSchema } from './schema-analyzer';
|
|
4
|
+
import { generateIdInputTypeStrings, generateObjectInputTypeStrings, generateUnionInputTypeStrings, } from './input-type-generator';
|
|
5
|
+
import { generateSchemaRootTypeStrings } from './schema-root-type-generator';
|
|
6
|
+
import { printSchemaWithDirectives } from '@graphql-tools/utils';
|
|
7
|
+
import { unionTypeResolver } from './resolvers/query-mutation-resolvers/union-type-resolver';
|
|
8
|
+
import { getValidationResult } from './schema-validator';
|
|
9
|
+
import { createObjectTypeFieldResolvers } from './resolvers/object-type-field-default-value-resolver-generator';
|
|
10
|
+
import { createError, ErrorCode } from './errors';
|
|
11
|
+
export async function generateSchema(context) {
|
|
12
|
+
const originalSchemaString = await context.gitAdapter.getSchema(context.getCurrentRef());
|
|
13
|
+
const schema = makeExecutableSchema({
|
|
14
|
+
typeDefs: originalSchemaString,
|
|
15
|
+
});
|
|
16
|
+
const validationResult = getValidationResult(schema);
|
|
17
|
+
if (validationResult.length > 0) {
|
|
18
|
+
throw createError(`Invalid schema.`, ErrorCode.BAD_SCHEMA, {
|
|
19
|
+
schema: printSchemaWithDirectives(schema),
|
|
20
|
+
argumentValue: validationResult.join('\n'),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
const schemaAnalyzerResult = analyzeSchema(schema);
|
|
24
|
+
const filteredOriginalSchemaString = printSchemaWithDirectives(schema) + '\n';
|
|
25
|
+
const generatedIdInputTypeStrings = generateIdInputTypeStrings(schemaAnalyzerResult);
|
|
26
|
+
const generatedQueriesMutations = generateQueriesAndMutations(schemaAnalyzerResult.entryDirectiveTypes);
|
|
27
|
+
const generatedTypeNameQuery = generateTypeNameQuery();
|
|
28
|
+
const generatedEntryReferenceResolvers = {};
|
|
29
|
+
const generatedObjectInputTypeStrings = generateObjectInputTypeStrings(schemaAnalyzerResult.objectTypes);
|
|
30
|
+
const generatedUnionInputTypeStrings = generateUnionInputTypeStrings(schemaAnalyzerResult.unionTypes);
|
|
31
|
+
const generatedSchemaRootTypeStrings = generateSchemaRootTypeStrings(generatedQueriesMutations, generatedTypeNameQuery);
|
|
32
|
+
const generatedSchemaString = `schema {
|
|
33
|
+
query: Query
|
|
34
|
+
mutation: Mutation
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
${generatedSchemaRootTypeStrings}`;
|
|
38
|
+
const generatedUnionTypeResolvers = {};
|
|
39
|
+
for (const unionType of schemaAnalyzerResult.unionTypes) {
|
|
40
|
+
generatedUnionTypeResolvers[unionType.name] = {
|
|
41
|
+
__resolveType: unionTypeResolver,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const generatedObjectTypeFieldResolvers = createObjectTypeFieldResolvers(schema);
|
|
45
|
+
const generatedQueryResolvers = {};
|
|
46
|
+
const generatedMutationResolvers = {};
|
|
47
|
+
for (const element of generatedQueriesMutations) {
|
|
48
|
+
generatedQueryResolvers[element.queryEvery.name] =
|
|
49
|
+
element.queryEvery.resolver;
|
|
50
|
+
generatedQueryResolvers[element.queryById.name] = element.queryById.resolver;
|
|
51
|
+
generatedMutationResolvers[element.createMutation.name] =
|
|
52
|
+
element.createMutation.resolver;
|
|
53
|
+
generatedMutationResolvers[element.updateMutation.name] =
|
|
54
|
+
element.updateMutation.resolver;
|
|
55
|
+
generatedMutationResolvers[element.deleteMutation.name] =
|
|
56
|
+
element.deleteMutation.resolver;
|
|
57
|
+
}
|
|
58
|
+
generatedQueryResolvers[generatedTypeNameQuery.name] =
|
|
59
|
+
generatedTypeNameQuery.resolver;
|
|
60
|
+
const allGeneratedResolvers = {
|
|
61
|
+
Query: generatedQueryResolvers,
|
|
62
|
+
Mutation: generatedMutationResolvers,
|
|
63
|
+
};
|
|
64
|
+
for (const typeName of Object.keys(generatedUnionTypeResolvers)) {
|
|
65
|
+
allGeneratedResolvers[typeName] = {
|
|
66
|
+
...(allGeneratedResolvers[typeName] ?? {}),
|
|
67
|
+
...generatedUnionTypeResolvers[typeName],
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
for (const typeName of Object.keys(generatedObjectTypeFieldResolvers)) {
|
|
71
|
+
allGeneratedResolvers[typeName] = {
|
|
72
|
+
...(allGeneratedResolvers[typeName] ?? {}),
|
|
73
|
+
...generatedObjectTypeFieldResolvers[typeName],
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
for (const typeName of Object.keys(generatedEntryReferenceResolvers)) {
|
|
77
|
+
allGeneratedResolvers[typeName] = {
|
|
78
|
+
...(allGeneratedResolvers[typeName] ?? {}),
|
|
79
|
+
...generatedEntryReferenceResolvers[typeName],
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
const typeDefs = [
|
|
83
|
+
filteredOriginalSchemaString,
|
|
84
|
+
generatedSchemaString,
|
|
85
|
+
generatedIdInputTypeStrings.join('\n'),
|
|
86
|
+
generatedObjectInputTypeStrings.join('\n'),
|
|
87
|
+
generatedUnionInputTypeStrings.join('\n'),
|
|
88
|
+
].filter((typeDef) => typeDef.length > 0);
|
|
89
|
+
return {
|
|
90
|
+
typeDefs: typeDefs,
|
|
91
|
+
resolvers: allGeneratedResolvers,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
//# sourceMappingURL=schema-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,qBAAqB,GACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAEL,oBAAoB,GACrB,MAAM,uBAAuB,CAAA;AAC9B,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAA;AACjD,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,6BAA6B,GAC9B,MAAM,wBAAwB,CAAA;AAC/B,OAAO,EAAE,6BAA6B,EAAE,MAAM,8BAA8B,CAAA;AAC5E,OAAO,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAA;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,0DAA0D,CAAA;AAG5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAA;AAExD,OAAO,EAAE,8BAA8B,EAAE,MAAM,gEAAgE,CAAA;AAC/G,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAEjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,OAAsB;IAEtB,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,SAAS,CAC7D,OAAO,CAAC,aAAa,EAAE,CACxB,CAAA;IACD,MAAM,MAAM,GAAG,oBAAoB,CAAC;QAClC,QAAQ,EAAE,oBAAoB;KAC/B,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAA;IACpD,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAChC,MAAM,WAAW,CAAC,iBAAiB,EAAE,SAAS,CAAC,UAAU,EAAE;YACzD,MAAM,EAAE,yBAAyB,CAAC,MAAM,CAAC;YACzC,aAAa,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;SAC3C,CAAC,CAAA;IACJ,CAAC;IACD,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAAC,CAAA;IAElD,MAAM,4BAA4B,GAAG,yBAAyB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAA;IAE7E,MAAM,2BAA2B,GAC/B,0BAA0B,CAAC,oBAAoB,CAAC,CAAA;IAElD,MAAM,yBAAyB,GAAG,2BAA2B,CAC3D,oBAAoB,CAAC,mBAAmB,CACzC,CAAA;IACD,MAAM,sBAAsB,GAAG,qBAAqB,EAAE,CAAA;IAEtD,MAAM,gCAAgC,GAWlC,EAAE,CAAA;IAEN,MAAM,+BAA+B,GAAG,8BAA8B,CACpE,oBAAoB,CAAC,WAAW,CACjC,CAAA;IAED,MAAM,8BAA8B,GAAG,6BAA6B,CAClE,oBAAoB,CAAC,UAAU,CAChC,CAAA;IAED,MAAM,8BAA8B,GAAG,6BAA6B,CAClE,yBAAyB,EACzB,sBAAsB,CACvB,CAAA;IAED,MAAM,qBAAqB,GAAG;;;;;EAK9B,8BAA8B,EAAE,CAAA;IAEhC,MAAM,2BAA2B,GAAsC,EAAE,CAAA;IACzE,KAAK,MAAM,SAAS,IAAI,oBAAoB,CAAC,UAAU,EAAE,CAAC;QACxD,2BAA2B,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG;YAC5C,aAAa,EAAE,iBAAiB;SACjC,CAAA;IACH,CAAC;IACD,MAAM,iCAAiC,GACrC,8BAA8B,CAAC,MAAM,CAAC,CAAA;IAExC,MAAM,uBAAuB,GAGzB,EAAE,CAAA;IACN,MAAM,0BAA0B,GAG5B,EAAE,CAAA;IAEN,KAAK,MAAM,OAAO,IAAI,yBAAyB,EAAE,CAAC;QAChD,uBAAuB,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC;YAC9C,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAA;QAC7B,uBAAuB,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAA;QAC5E,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;QACjC,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;QACjC,0BAA0B,CAAC,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC;YACrD,OAAO,CAAC,cAAc,CAAC,QAAQ,CAAA;IACnC,CAAC;IACD,uBAAuB,CAAC,sBAAsB,CAAC,IAAI,CAAC;QAClD,sBAAsB,CAAC,QAAQ,CAAA;IAEjC,MAAM,qBAAqB,GAOvB;QACF,KAAK,EAAE,uBAAuB;QAC9B,QAAQ,EAAE,0BAA0B;KACrC,CAAA;IAED,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,2BAA2B,CAAC,EAAE,CAAC;QAChE,qBAAqB,CAAC,QAAQ,CAAC,GAAG;YAChC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1C,GAAG,2BAA2B,CAAC,QAAQ,CAAC;SACzC,CAAA;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,iCAAiC,CAAC,EAAE,CAAC;QACtE,qBAAqB,CAAC,QAAQ,CAAC,GAAG;YAChC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1C,GAAG,iCAAiC,CAAC,QAAQ,CAAC;SAC/C,CAAA;IACH,CAAC;IACD,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,IAAI,CAAC,gCAAgC,CAAC,EAAE,CAAC;QACrE,qBAAqB,CAAC,QAAQ,CAAC,GAAG;YAChC,GAAG,CAAC,qBAAqB,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;YAC1C,GAAG,gCAAgC,CAAC,QAAQ,CAAC;SAC9C,CAAA;IACH,CAAC;IAED,MAAM,QAAQ,GAAG;QACf,4BAA4B;QAC5B,qBAAqB;QACrB,2BAA2B,CAAC,IAAI,CAAC,IAAI,CAAC;QACtC,+BAA+B,CAAC,IAAI,CAAC,IAAI,CAAC;QAC1C,8BAA8B,CAAC,IAAI,CAAC,IAAI,CAAC;KAC1C,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAEzC,OAAO;QACL,QAAQ,EAAE,QAAQ;QAClB,SAAS,EAAE,qBAAqB;KACjC,CAAA;AACH,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export function generateSchemaRootTypeStrings(generatedSchemas, typeQuery) {
|
|
2
|
+
return (`type Query {\n` +
|
|
3
|
+
generatedSchemas
|
|
4
|
+
.map((generated) => ' ' + generated.queryEvery.schemaString)
|
|
5
|
+
.join('\n') +
|
|
6
|
+
'\n' +
|
|
7
|
+
generatedSchemas
|
|
8
|
+
.map((generated) => ' ' + generated.queryById.schemaString)
|
|
9
|
+
.join('\n') +
|
|
10
|
+
'\n' +
|
|
11
|
+
` ${typeQuery.schemaString}` +
|
|
12
|
+
'\n' +
|
|
13
|
+
'}\n\n' +
|
|
14
|
+
'type Mutation {\n' +
|
|
15
|
+
generatedSchemas
|
|
16
|
+
.map((generated) => ' ' + generated.createMutation.schemaString)
|
|
17
|
+
.join('\n') +
|
|
18
|
+
'\n' +
|
|
19
|
+
generatedSchemas
|
|
20
|
+
.map((generated) => ' ' + generated.updateMutation.schemaString)
|
|
21
|
+
.join('\n') +
|
|
22
|
+
'\n' +
|
|
23
|
+
generatedSchemas
|
|
24
|
+
.map((generated) => ' ' + generated.deleteMutation.schemaString)
|
|
25
|
+
.join('\n') +
|
|
26
|
+
'\n' +
|
|
27
|
+
'}\n');
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=schema-root-type-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schema-root-type-generator.js","sourceRoot":"","sources":["../../../src/graphql/schema-root-type-generator.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,6BAA6B,CAC3C,gBAAmC,EACnC,SAA0C;IAE1C,OAAO,CACL,gBAAgB;QAChB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,UAAU,CAAC,YAAY,CAAC;aAC5D,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,SAAS,CAAC,YAAY,CAAC;aAC3D,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,KAAK,SAAS,CAAC,YAAY,EAAE;QAC7B,IAAI;QACJ,OAAO;QACP,mBAAmB;QACnB,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,gBAAgB;aACb,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,GAAG,SAAS,CAAC,cAAc,CAAC,YAAY,CAAC;aAChE,IAAI,CAAC,IAAI,CAAC;QACb,IAAI;QACJ,KAAK,CACN,CAAA;AACH,CAAC"}
|
|
@@ -1,124 +1,124 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
this.unionTypeUtil = unionTypeUtil;
|
|
1
|
+
import { isListType, isNonNullType, isObjectType, isUnionType, } from 'graphql';
|
|
2
|
+
import { getTypeById } from '../../persistence/persistence';
|
|
3
|
+
import { getUnionTypeNameFromFieldValue, getUnionValue, } from './union-type-util';
|
|
4
|
+
import { hasEntryDirective, isUnionOfEntryTypes } from './entry-type-util';
|
|
5
|
+
import { createError, ErrorCode } from '../errors';
|
|
6
|
+
function isPermittedReferenceType(referencedTypeName, fieldType) {
|
|
7
|
+
if (isNonNullType(fieldType)) {
|
|
8
|
+
return isPermittedReferenceType(referencedTypeName, fieldType.ofType);
|
|
10
9
|
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
else if (isListType(fieldType)) {
|
|
11
|
+
return isPermittedReferenceType(referencedTypeName, fieldType.ofType);
|
|
12
|
+
}
|
|
13
|
+
else if (isUnionType(fieldType)) {
|
|
14
|
+
return fieldType
|
|
15
|
+
.getTypes()
|
|
16
|
+
.map((concreteType) => concreteType.name)
|
|
17
|
+
.includes(referencedTypeName);
|
|
18
|
+
}
|
|
19
|
+
else if (isObjectType(fieldType)) {
|
|
20
|
+
return fieldType.name === referencedTypeName;
|
|
21
|
+
}
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
async function validateReference(context, fieldName, fieldType, fieldValue) {
|
|
25
|
+
if (isNonNullType(fieldType)) {
|
|
26
|
+
await validateReference(context, fieldName, fieldType.ofType, fieldValue);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
else if (isListType(fieldType)) {
|
|
30
|
+
if (!Array.isArray(fieldValue)) {
|
|
31
|
+
throw createError(`Expected array while validation references for field "${fieldName}".`, ErrorCode.SCHEMA_DATA_MISMATCH, {
|
|
32
|
+
fieldName: fieldName,
|
|
33
|
+
fieldValue: fieldValue,
|
|
34
|
+
});
|
|
14
35
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
for (const element of data) {
|
|
18
|
-
referencedEntryIds = [
|
|
19
|
-
...referencedEntryIds,
|
|
20
|
-
...(await this.getReferencedEntryIds(rootType, context, fieldName, type.ofType, element)),
|
|
21
|
-
];
|
|
22
|
-
}
|
|
23
|
-
// deduplicate
|
|
24
|
-
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
25
|
-
return referencedEntryIds;
|
|
36
|
+
for (const fieldListElement of fieldValue) {
|
|
37
|
+
await validateReference(context, fieldName, fieldType.ofType, fieldListElement);
|
|
26
38
|
}
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
.find((type) => type.name === unionTypeName);
|
|
36
|
-
if (!unionType) {
|
|
37
|
-
throw new Error(`Type "${unionTypeName}" found in field data is not a valid type for union type "${type.name}".`);
|
|
38
|
-
}
|
|
39
|
-
const unionValue = this.unionTypeUtil.getUnionValue(data);
|
|
40
|
-
return this.getReferencedEntryIds(rootType, context, fieldName, unionType, unionValue);
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
41
|
+
else if (isUnionType(fieldType) || isObjectType(fieldType)) {
|
|
42
|
+
if (!('id' in fieldValue)) {
|
|
43
|
+
throw createError(`Expected key "id" in data while validating reference for field "${fieldName}".`, ErrorCode.SCHEMA_DATA_MISMATCH, {
|
|
44
|
+
fieldName: fieldName,
|
|
45
|
+
fieldValue: fieldValue,
|
|
46
|
+
});
|
|
41
47
|
}
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
return [data.id];
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
let referencedEntryIds = [];
|
|
50
|
-
for (const [fieldsKey, field] of Object.entries(type.getFields())) {
|
|
51
|
-
const fieldValue = data[fieldsKey] ?? undefined;
|
|
52
|
-
if (fieldValue !== undefined) {
|
|
53
|
-
const nestedResult = await this.getReferencedEntryIds(rootType, context, fieldsKey, field.type, fieldValue);
|
|
54
|
-
referencedEntryIds = [...referencedEntryIds, ...nestedResult];
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
// deduplicate
|
|
58
|
-
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
59
|
-
return referencedEntryIds;
|
|
60
|
-
}
|
|
48
|
+
const referencedId = fieldValue.id;
|
|
49
|
+
let referencedTypeName;
|
|
50
|
+
try {
|
|
51
|
+
referencedTypeName = await getTypeById(context.gitAdapter, context.getCurrentRef(), referencedId);
|
|
61
52
|
}
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
return;
|
|
53
|
+
catch (error) {
|
|
54
|
+
throw createError(`Failed to resolve entry reference "${referencedId}".`, ErrorCode.BAD_USER_INPUT, {
|
|
55
|
+
fieldName: fieldName,
|
|
56
|
+
fieldValue: referencedId,
|
|
57
|
+
});
|
|
68
58
|
}
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
await this.validateReference(context, fieldName, fieldType.ofType, fieldListElement);
|
|
75
|
-
}
|
|
76
|
-
return;
|
|
59
|
+
if (!isPermittedReferenceType(referencedTypeName, fieldType)) {
|
|
60
|
+
throw createError(`Reference with ID "${referencedId}" points to entry of incompatible type "${referencedTypeName}".`, ErrorCode.BAD_USER_INPUT, {
|
|
61
|
+
fieldName: fieldName,
|
|
62
|
+
fieldValue: referencedId,
|
|
63
|
+
});
|
|
77
64
|
}
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
fieldName: fieldName,
|
|
92
|
-
},
|
|
93
|
-
});
|
|
94
|
-
}
|
|
95
|
-
if (!this.isPermittedReferenceType(referencedTypeName, fieldType)) {
|
|
96
|
-
throw new GraphQLError(`Reference with id "${referencedId}" points to entry of incompatible type`, {
|
|
97
|
-
extensions: {
|
|
98
|
-
code: 'BAD_USER_INPUT',
|
|
99
|
-
fieldName: fieldName,
|
|
100
|
-
},
|
|
101
|
-
});
|
|
102
|
-
}
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
export async function getReferencedEntryIds(rootType, context, fieldName, type, data) {
|
|
68
|
+
if (isNonNullType(type)) {
|
|
69
|
+
return getReferencedEntryIds(rootType, context, fieldName, type.ofType, data);
|
|
70
|
+
}
|
|
71
|
+
else if (isListType(type)) {
|
|
72
|
+
let referencedEntryIds = [];
|
|
73
|
+
for (const element of data) {
|
|
74
|
+
referencedEntryIds = [
|
|
75
|
+
...referencedEntryIds,
|
|
76
|
+
...(await getReferencedEntryIds(rootType, context, fieldName, type.ofType, element)),
|
|
77
|
+
];
|
|
103
78
|
}
|
|
79
|
+
// deduplicate
|
|
80
|
+
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
81
|
+
return referencedEntryIds;
|
|
104
82
|
}
|
|
105
|
-
|
|
106
|
-
if (
|
|
107
|
-
|
|
83
|
+
else if (isUnionType(type)) {
|
|
84
|
+
if (isUnionOfEntryTypes(type)) {
|
|
85
|
+
await validateReference(context, '', type, data);
|
|
86
|
+
return [data.id];
|
|
108
87
|
}
|
|
109
|
-
|
|
110
|
-
|
|
88
|
+
const requestedUnionTypeName = getUnionTypeNameFromFieldValue(data);
|
|
89
|
+
const concreteFieldUnionType = type
|
|
90
|
+
.getTypes()
|
|
91
|
+
.find((concreteFieldType) => concreteFieldType.name === requestedUnionTypeName);
|
|
92
|
+
if (!concreteFieldUnionType) {
|
|
93
|
+
throw createError(`Type "${requestedUnionTypeName}" found in field data is not a valid type for ` +
|
|
94
|
+
`union type "${type.name}".`, ErrorCode.BAD_REPOSITORY_DATA, {
|
|
95
|
+
typeName: type.name,
|
|
96
|
+
fieldName: fieldName ? fieldName : undefined,
|
|
97
|
+
fieldValue: data,
|
|
98
|
+
});
|
|
111
99
|
}
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
100
|
+
const unionValue = getUnionValue(data);
|
|
101
|
+
return getReferencedEntryIds(rootType, context, fieldName, concreteFieldUnionType, unionValue);
|
|
102
|
+
}
|
|
103
|
+
else if (isObjectType(type)) {
|
|
104
|
+
if (type.name !== rootType.name && hasEntryDirective(type)) {
|
|
105
|
+
await validateReference(context, fieldName ?? '', type, data);
|
|
106
|
+
return [data.id];
|
|
117
107
|
}
|
|
118
|
-
else
|
|
119
|
-
|
|
108
|
+
else {
|
|
109
|
+
let referencedEntryIds = [];
|
|
110
|
+
for (const [fieldsKey, field] of Object.entries(type.getFields())) {
|
|
111
|
+
const fieldValue = data[fieldsKey] ?? undefined;
|
|
112
|
+
if (fieldValue !== undefined) {
|
|
113
|
+
const nestedResult = await getReferencedEntryIds(rootType, context, fieldsKey, field.type, fieldValue);
|
|
114
|
+
referencedEntryIds = [...referencedEntryIds, ...nestedResult];
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
// deduplicate
|
|
118
|
+
referencedEntryIds = [...new Set(referencedEntryIds)];
|
|
119
|
+
return referencedEntryIds;
|
|
120
120
|
}
|
|
121
|
-
return false;
|
|
122
121
|
}
|
|
122
|
+
return [];
|
|
123
123
|
}
|
|
124
124
|
//# sourceMappingURL=entry-reference-util.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"entry-reference-util.js","sourceRoot":"","sources":["../../../../src/graphql/schema-utils/entry-reference-util.ts"],"names":[],"mappings":"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"}
|