@ptc-org/nestjs-query-graphql 0.30.1 → 1.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +149 -149
- package/README.md +4 -4
- package/package.json +7 -6
- package/src/auth/authorizer.d.ts +26 -0
- package/src/auth/authorizer.js +12 -0
- package/src/auth/authorizer.js.map +1 -0
- package/src/auth/default-crud.authorizer.d.ts +6 -0
- package/src/auth/default-crud.authorizer.js +74 -0
- package/src/auth/default-crud.authorizer.js.map +1 -0
- package/src/auth/index.d.ts +3 -0
- package/src/auth/index.js +7 -0
- package/src/auth/index.js.map +1 -0
- package/src/auth/tokens.d.ts +3 -0
- package/src/auth/tokens.js +8 -0
- package/src/auth/tokens.js.map +1 -0
- package/src/common/dto.utils.d.ts +15 -0
- package/src/common/dto.utils.js +32 -0
- package/src/common/dto.utils.js.map +1 -0
- package/src/common/external.utils.d.ts +10 -0
- package/src/common/external.utils.js +33 -0
- package/src/common/external.utils.js.map +1 -0
- package/src/common/index.d.ts +4 -0
- package/src/common/index.js +11 -0
- package/src/common/index.js.map +1 -0
- package/src/common/object.utils.d.ts +1 -0
- package/src/common/object.utils.js +14 -0
- package/src/common/object.utils.js.map +1 -0
- package/src/common/resolver.utils.d.ts +2 -0
- package/src/common/resolver.utils.js +19 -0
- package/src/common/resolver.utils.js.map +1 -0
- package/src/decorators/aggregate-query-param.decorator.d.ts +1 -0
- package/src/decorators/aggregate-query-param.decorator.js +21 -0
- package/src/decorators/aggregate-query-param.decorator.js.map +1 -0
- package/src/decorators/authorize-filter.decorator.d.ts +6 -0
- package/src/decorators/authorize-filter.decorator.js +67 -0
- package/src/decorators/authorize-filter.decorator.js.map +1 -0
- package/src/decorators/authorizer.decorator.d.ts +5 -0
- package/src/decorators/authorizer.decorator.js +24 -0
- package/src/decorators/authorizer.decorator.js.map +1 -0
- package/src/decorators/constants.d.ts +8 -0
- package/src/decorators/constants.js +12 -0
- package/src/decorators/constants.js.map +1 -0
- package/src/decorators/decorator.utils.d.ts +3 -0
- package/src/decorators/decorator.utils.js +21 -0
- package/src/decorators/decorator.utils.js.map +1 -0
- package/src/decorators/filterable-field.decorator.d.ts +47 -0
- package/src/decorators/filterable-field.decorator.js +53 -0
- package/src/decorators/filterable-field.decorator.js.map +1 -0
- package/src/decorators/hook-args.decorator.d.ts +3 -0
- package/src/decorators/hook-args.decorator.js +43 -0
- package/src/decorators/hook-args.decorator.js.map +1 -0
- package/src/decorators/hook.decorator.d.ts +13 -0
- package/src/decorators/hook.decorator.js +31 -0
- package/src/decorators/hook.decorator.js.map +1 -0
- package/src/decorators/id-field.decorator.d.ts +32 -0
- package/src/decorators/id-field.decorator.js +48 -0
- package/src/decorators/id-field.decorator.js.map +1 -0
- package/src/decorators/index.d.ts +21 -0
- package/src/decorators/index.js +39 -0
- package/src/decorators/index.js.map +1 -0
- package/src/decorators/inject-authorizer.decorator.d.ts +2 -0
- package/src/decorators/inject-authorizer.decorator.js +8 -0
- package/src/decorators/inject-authorizer.decorator.js.map +1 -0
- package/src/decorators/inject-custom-authorizer.decorator.d.ts +2 -0
- package/src/decorators/inject-custom-authorizer.decorator.js +8 -0
- package/src/decorators/inject-custom-authorizer.decorator.js.map +1 -0
- package/src/decorators/inject-pub-sub.decorator.d.ts +1 -0
- package/src/decorators/inject-pub-sub.decorator.js +8 -0
- package/src/decorators/inject-pub-sub.decorator.js.map +1 -0
- package/src/decorators/key-set.decorator.d.ts +3 -0
- package/src/decorators/key-set.decorator.js +13 -0
- package/src/decorators/key-set.decorator.js.map +1 -0
- package/src/decorators/query-options.decorator.d.ts +5 -0
- package/src/decorators/query-options.decorator.js +16 -0
- package/src/decorators/query-options.decorator.js.map +1 -0
- package/src/decorators/reference.decorator.d.ts +8 -0
- package/src/decorators/reference.decorator.js +36 -0
- package/src/decorators/reference.decorator.js.map +1 -0
- package/src/decorators/relation.decorator.d.ts +16 -0
- package/src/decorators/relation.decorator.js +53 -0
- package/src/decorators/relation.decorator.js.map +1 -0
- package/src/decorators/resolver-field.decorator.d.ts +11 -0
- package/src/decorators/resolver-field.decorator.js +22 -0
- package/src/decorators/resolver-field.decorator.js.map +1 -0
- package/src/decorators/resolver-method.decorator.d.ts +34 -0
- package/src/decorators/resolver-method.decorator.js +35 -0
- package/src/decorators/resolver-method.decorator.js.map +1 -0
- package/src/decorators/resolver-mutation.decorator.d.ts +10 -0
- package/src/decorators/resolver-mutation.decorator.js +21 -0
- package/src/decorators/resolver-mutation.decorator.js.map +1 -0
- package/src/decorators/resolver-query.decorator.d.ts +13 -0
- package/src/decorators/resolver-query.decorator.js +21 -0
- package/src/decorators/resolver-query.decorator.js.map +1 -0
- package/src/decorators/resolver-subscription.decorator.d.ts +7 -0
- package/src/decorators/resolver-subscription.decorator.js +18 -0
- package/src/decorators/resolver-subscription.decorator.js.map +1 -0
- package/src/decorators/skip-if.decorator.d.ts +8 -0
- package/src/decorators/skip-if.decorator.js +18 -0
- package/src/decorators/skip-if.decorator.js.map +1 -0
- package/src/federation/index.d.ts +1 -0
- package/src/federation/index.js +3 -0
- package/src/federation/index.js.map +1 -0
- package/src/federation/representation.type.d.ts +3 -0
- package/src/federation/representation.type.js +3 -0
- package/src/federation/representation.type.js.map +1 -0
- package/src/hooks/default.hook.d.ts +3 -0
- package/src/hooks/default.hook.js +13 -0
- package/src/hooks/default.hook.js.map +1 -0
- package/src/hooks/hooks.d.ts +14 -0
- package/src/hooks/hooks.js +8 -0
- package/src/hooks/hooks.js.map +1 -0
- package/src/hooks/index.d.ts +4 -0
- package/src/hooks/index.js +10 -0
- package/src/hooks/index.js.map +1 -0
- package/src/hooks/tokens.d.ts +3 -0
- package/src/hooks/tokens.js +6 -0
- package/src/hooks/tokens.js.map +1 -0
- package/src/hooks/types.d.ts +10 -0
- package/src/hooks/types.js +15 -0
- package/src/hooks/types.js.map +1 -0
- package/src/index.d.ts +11 -0
- package/src/index.js.map +1 -0
- package/src/interceptors/authorizer.interceptor.d.ts +7 -0
- package/src/interceptors/authorizer.interceptor.js +33 -0
- package/src/interceptors/authorizer.interceptor.js.map +1 -0
- package/src/interceptors/hook.interceptor.d.ts +7 -0
- package/src/interceptors/hook.interceptor.js +44 -0
- package/src/interceptors/hook.interceptor.js.map +1 -0
- package/src/interceptors/index.d.ts +2 -0
- package/src/interceptors/index.js +6 -0
- package/src/interceptors/index.js.map +1 -0
- package/src/loader/aggregate-relations.loader.d.ts +16 -0
- package/src/loader/aggregate-relations.loader.js +43 -0
- package/src/loader/aggregate-relations.loader.js.map +1 -0
- package/src/loader/count-relations.loader.d.ts +15 -0
- package/src/loader/count-relations.loader.js +42 -0
- package/src/loader/count-relations.loader.js.map +1 -0
- package/src/loader/dataloader.factory.d.ts +9 -0
- package/src/loader/dataloader.factory.js +27 -0
- package/src/loader/dataloader.factory.js.map +1 -0
- package/src/loader/find-relations.loader.d.ts +14 -0
- package/src/loader/find-relations.loader.js +42 -0
- package/src/loader/find-relations.loader.js.map +1 -0
- package/src/loader/index.d.ts +5 -0
- package/src/loader/index.js +9 -0
- package/src/loader/index.js.map +1 -0
- package/src/loader/query-relations.loader.d.ts +15 -0
- package/src/loader/query-relations.loader.js +43 -0
- package/src/loader/query-relations.loader.js.map +1 -0
- package/src/loader/relations.loader.d.ts +4 -0
- package/src/loader/relations.loader.js +3 -0
- package/src/loader/relations.loader.js.map +1 -0
- package/src/module.d.ts +31 -0
- package/src/module.js +55 -0
- package/src/module.js.map +1 -0
- package/src/providers/authorizer.provider.d.ts +3 -0
- package/src/providers/authorizer.provider.js +31 -0
- package/src/providers/authorizer.provider.js.map +1 -0
- package/src/providers/hook.provider.d.ts +5 -0
- package/src/providers/hook.provider.js +33 -0
- package/src/providers/hook.provider.js.map +1 -0
- package/src/providers/index.d.ts +3 -0
- package/src/providers/index.js +7 -0
- package/src/providers/index.js.map +1 -0
- package/src/providers/resolver.provider.d.ts +26 -0
- package/src/providers/resolver.provider.js +112 -0
- package/src/providers/resolver.provider.js.map +1 -0
- package/src/resolvers/aggregate.resolver.d.ts +16 -0
- package/src/resolvers/aggregate.resolver.js +56 -0
- package/src/resolvers/aggregate.resolver.js.map +1 -0
- package/src/resolvers/create.resolver.d.ts +57 -0
- package/src/resolvers/create.resolver.js +190 -0
- package/src/resolvers/create.resolver.js.map +1 -0
- package/src/resolvers/crud.resolver.d.ts +52 -0
- package/src/resolvers/crud.resolver.js +68 -0
- package/src/resolvers/crud.resolver.js.map +1 -0
- package/src/resolvers/delete.resolver.d.ts +32 -0
- package/src/resolvers/delete.resolver.js +186 -0
- package/src/resolvers/delete.resolver.js.map +1 -0
- package/src/resolvers/federation/federation.resolver.d.ts +4 -0
- package/src/resolvers/federation/federation.resolver.js +8 -0
- package/src/resolvers/federation/federation.resolver.js.map +1 -0
- package/src/resolvers/federation/index.d.ts +1 -0
- package/src/resolvers/federation/index.js +6 -0
- package/src/resolvers/federation/index.js.map +1 -0
- package/src/resolvers/helpers.d.ts +6 -0
- package/src/resolvers/helpers.js +38 -0
- package/src/resolvers/helpers.js.map +1 -0
- package/src/resolvers/index.d.ts +9 -0
- package/src/resolvers/index.js +20 -0
- package/src/resolvers/index.js.map +1 -0
- package/src/resolvers/read.resolver.d.ts +18 -0
- package/src/resolvers/read.resolver.js +75 -0
- package/src/resolvers/read.resolver.js.map +1 -0
- package/src/resolvers/reference.resolver.d.ts +11 -0
- package/src/resolvers/reference.resolver.js +41 -0
- package/src/resolvers/reference.resolver.js.map +1 -0
- package/src/resolvers/relations/aggregate-relations.resolver.d.ts +11 -0
- package/src/resolvers/relations/aggregate-relations.resolver.js +76 -0
- package/src/resolvers/relations/aggregate-relations.resolver.js.map +1 -0
- package/src/resolvers/relations/helpers.d.ts +4 -0
- package/src/resolvers/relations/helpers.js +10 -0
- package/src/resolvers/relations/helpers.js.map +1 -0
- package/src/resolvers/relations/index.d.ts +7 -0
- package/src/resolvers/relations/index.js +16 -0
- package/src/resolvers/relations/index.js.map +1 -0
- package/src/resolvers/relations/read-relations.resolver.d.ts +8 -0
- package/src/resolvers/relations/read-relations.resolver.js +114 -0
- package/src/resolvers/relations/read-relations.resolver.js.map +1 -0
- package/src/resolvers/relations/references-relation.resolver.d.ts +5 -0
- package/src/resolvers/relations/references-relation.resolver.js +55 -0
- package/src/resolvers/relations/references-relation.resolver.js.map +1 -0
- package/src/resolvers/relations/relations.interface.d.ts +78 -0
- package/src/resolvers/relations/relations.interface.js +3 -0
- package/src/resolvers/relations/relations.interface.js.map +1 -0
- package/src/resolvers/relations/relations.resolver.d.ts +8 -0
- package/src/resolvers/relations/relations.resolver.js +22 -0
- package/src/resolvers/relations/relations.resolver.js.map +1 -0
- package/src/resolvers/relations/remove-relations.resolver.d.ts +5 -0
- package/src/resolvers/relations/remove-relations.resolver.js +107 -0
- package/src/resolvers/relations/remove-relations.resolver.js.map +1 -0
- package/src/resolvers/relations/update-relations.resolver.d.ts +5 -0
- package/src/resolvers/relations/update-relations.resolver.js +138 -0
- package/src/resolvers/relations/update-relations.resolver.js.map +1 -0
- package/src/resolvers/resolver.interface.d.ts +47 -0
- package/src/resolvers/resolver.interface.js +14 -0
- package/src/resolvers/resolver.interface.js.map +1 -0
- package/src/resolvers/update.resolver.d.ts +23 -0
- package/src/resolvers/update.resolver.js +198 -0
- package/src/resolvers/update.resolver.js.map +1 -0
- package/src/subscription/index.d.ts +14 -0
- package/src/subscription/index.js +32 -0
- package/src/subscription/index.js.map +1 -0
- package/src/subscription/pub-sub.interface.d.ts +6 -0
- package/src/subscription/pub-sub.interface.js +3 -0
- package/src/subscription/pub-sub.interface.js.map +1 -0
- package/src/types/aggregate/aggregate-args.type.d.ts +9 -0
- package/src/types/aggregate/aggregate-args.type.js +30 -0
- package/src/types/aggregate/aggregate-args.type.js.map +1 -0
- package/src/types/aggregate/aggregate-response.type.d.ts +5 -0
- package/src/types/aggregate/aggregate-response.type.js +96 -0
- package/src/types/aggregate/aggregate-response.type.js.map +1 -0
- package/src/types/aggregate/index.d.ts +2 -0
- package/src/types/aggregate/index.js +8 -0
- package/src/types/aggregate/index.js.map +1 -0
- package/src/types/connection/array-connection.type.d.ts +4 -0
- package/src/types/connection/array-connection.type.js +20 -0
- package/src/types/connection/array-connection.type.js.map +1 -0
- package/src/types/connection/cursor/cursor-connection.type.d.ts +4 -0
- package/src/types/connection/cursor/cursor-connection.type.js +72 -0
- package/src/types/connection/cursor/cursor-connection.type.js.map +1 -0
- package/src/types/connection/cursor/edge.type.d.ts +7 -0
- package/src/types/connection/cursor/edge.type.js +36 -0
- package/src/types/connection/cursor/edge.type.js.map +1 -0
- package/src/types/connection/cursor/index.d.ts +1 -0
- package/src/types/connection/cursor/index.js +5 -0
- package/src/types/connection/cursor/index.js.map +1 -0
- package/src/types/connection/cursor/page-info.type.d.ts +6 -0
- package/src/types/connection/cursor/page-info.type.js +49 -0
- package/src/types/connection/cursor/page-info.type.js.map +1 -0
- package/src/types/connection/cursor/pager/index.d.ts +7 -0
- package/src/types/connection/cursor/pager/index.js +16 -0
- package/src/types/connection/cursor/pager/index.js.map +1 -0
- package/src/types/connection/cursor/pager/interfaces.d.ts +12 -0
- package/src/types/connection/cursor/pager/interfaces.js +3 -0
- package/src/types/connection/cursor/pager/interfaces.js.map +1 -0
- package/src/types/connection/cursor/pager/pager.d.ts +15 -0
- package/src/types/connection/cursor/pager/pager.js +83 -0
- package/src/types/connection/cursor/pager/pager.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/helpers.d.ts +6 -0
- package/src/types/connection/cursor/pager/strategies/helpers.js +24 -0
- package/src/types/connection/cursor/pager/strategies/helpers.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/index.d.ts +4 -0
- package/src/types/connection/cursor/pager/strategies/index.js +8 -0
- package/src/types/connection/cursor/pager/strategies/index.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.d.ts +19 -0
- package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.js +123 -0
- package/src/types/connection/cursor/pager/strategies/keyset.pager-strategy.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.d.ts +15 -0
- package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.js +88 -0
- package/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.js.map +1 -0
- package/src/types/connection/cursor/pager/strategies/pager-strategy.d.ts +33 -0
- package/src/types/connection/cursor/pager/strategies/pager-strategy.js +3 -0
- package/src/types/connection/cursor/pager/strategies/pager-strategy.js.map +1 -0
- package/src/types/connection/index.d.ts +4 -0
- package/src/types/connection/index.js +10 -0
- package/src/types/connection/index.js.map +1 -0
- package/src/types/connection/interfaces.d.ts +60 -0
- package/src/types/connection/interfaces.js +3 -0
- package/src/types/connection/interfaces.js.map +1 -0
- package/src/types/connection/offset/index.d.ts +2 -0
- package/src/types/connection/offset/index.js +6 -0
- package/src/types/connection/offset/index.js.map +1 -0
- package/src/types/connection/offset/offset-connection.type.d.ts +4 -0
- package/src/types/connection/offset/offset-connection.type.js +68 -0
- package/src/types/connection/offset/offset-connection.type.js.map +1 -0
- package/src/types/connection/offset/offset-page-info.type.d.ts +5 -0
- package/src/types/connection/offset/offset-page-info.type.js +35 -0
- package/src/types/connection/offset/offset-page-info.type.js.map +1 -0
- package/src/types/connection/offset/pager/index.d.ts +4 -0
- package/src/types/connection/offset/pager/index.js +8 -0
- package/src/types/connection/offset/pager/index.js.map +1 -0
- package/src/types/connection/offset/pager/interfaces.d.ts +12 -0
- package/src/types/connection/offset/pager/interfaces.js +3 -0
- package/src/types/connection/offset/pager/interfaces.js.map +1 -0
- package/src/types/connection/offset/pager/pager.d.ts +12 -0
- package/src/types/connection/offset/pager/pager.js +62 -0
- package/src/types/connection/offset/pager/pager.js.map +1 -0
- package/src/types/create-many-input.type.d.ts +10 -0
- package/src/types/create-many-input.type.js +42 -0
- package/src/types/create-many-input.type.js.map +1 -0
- package/src/types/create-one-input.type.d.ts +11 -0
- package/src/types/create-one-input.type.js +42 -0
- package/src/types/create-one-input.type.js.map +1 -0
- package/src/types/cursor.scalar.d.ts +3 -0
- package/src/types/cursor.scalar.js +21 -0
- package/src/types/cursor.scalar.js.map +1 -0
- package/src/types/delete-many-input.type.d.ts +9 -0
- package/src/types/delete-many-input.type.js +31 -0
- package/src/types/delete-many-input.type.js.map +1 -0
- package/src/types/delete-many-reponse.type.d.ts +2 -0
- package/src/types/delete-many-reponse.type.js +25 -0
- package/src/types/delete-many-reponse.type.js.map +1 -0
- package/src/types/delete-one-input.type.d.ts +8 -0
- package/src/types/delete-one-input.type.js +27 -0
- package/src/types/delete-one-input.type.js.map +1 -0
- package/src/types/find-one-args.type.d.ts +8 -0
- package/src/types/find-one-args.type.js +27 -0
- package/src/types/find-one-args.type.js.map +1 -0
- package/src/types/index.d.ts +18 -0
- package/src/types/index.js +44 -0
- package/src/types/index.js.map +1 -0
- package/src/types/mutation-args.type.d.ts +5 -0
- package/src/types/mutation-args.type.js +24 -0
- package/src/types/mutation-args.type.js.map +1 -0
- package/src/types/query/field-comparison/boolean-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/boolean-field-comparison.type.js +35 -0
- package/src/types/query/field-comparison/boolean-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/date-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/date-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/date-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/field-comparison.factory.d.ts +11 -0
- package/src/types/query/field-comparison/field-comparison.factory.js +166 -0
- package/src/types/query/field-comparison/field-comparison.factory.js.map +1 -0
- package/src/types/query/field-comparison/float-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/float-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/float-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/index.d.ts +8 -0
- package/src/types/query/field-comparison/index.js +12 -0
- package/src/types/query/field-comparison/index.js.map +1 -0
- package/src/types/query/field-comparison/int-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/int-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/int-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/number-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/number-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/number-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/string-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/string-field-comparison.type.js +108 -0
- package/src/types/query/field-comparison/string-field-comparison.type.js.map +1 -0
- package/src/types/query/field-comparison/timestamp-field-comparison.type.d.ts +3 -0
- package/src/types/query/field-comparison/timestamp-field-comparison.type.js +112 -0
- package/src/types/query/field-comparison/timestamp-field-comparison.type.js.map +1 -0
- package/src/types/query/filter.type.d.ts +14 -0
- package/src/types/query/filter.type.js +103 -0
- package/src/types/query/filter.type.js.map +1 -0
- package/src/types/query/helpers.d.ts +1 -0
- package/src/types/query/helpers.js +6 -0
- package/src/types/query/helpers.js.map +1 -0
- package/src/types/query/index.d.ts +4 -0
- package/src/types/query/index.js +14 -0
- package/src/types/query/index.js.map +1 -0
- package/src/types/query/paging/constants.d.ts +5 -0
- package/src/types/query/paging/constants.js +10 -0
- package/src/types/query/paging/constants.js.map +1 -0
- package/src/types/query/paging/cursor-paging.type.d.ts +3 -0
- package/src/types/query/paging/cursor-paging.type.js +69 -0
- package/src/types/query/paging/cursor-paging.type.js.map +1 -0
- package/src/types/query/paging/index.d.ts +5 -0
- package/src/types/query/paging/index.js +12 -0
- package/src/types/query/paging/index.js.map +1 -0
- package/src/types/query/paging/interfaces.d.ts +13 -0
- package/src/types/query/paging/interfaces.js +3 -0
- package/src/types/query/paging/interfaces.js.map +1 -0
- package/src/types/query/paging/none-paging.type.d.ts +3 -0
- package/src/types/query/paging/none-paging.type.js +18 -0
- package/src/types/query/paging/none-paging.type.js.map +1 -0
- package/src/types/query/paging/offset-paging.type.d.ts +3 -0
- package/src/types/query/paging/offset-paging.type.js +43 -0
- package/src/types/query/paging/offset-paging.type.js.map +1 -0
- package/src/types/query/query-args/constants.d.ts +6 -0
- package/src/types/query/query-args/constants.js +10 -0
- package/src/types/query/query-args/constants.js.map +1 -0
- package/src/types/query/query-args/cursor-query-args.type.d.ts +5 -0
- package/src/types/query/query-args/cursor-query-args.type.js +61 -0
- package/src/types/query/query-args/cursor-query-args.type.js.map +1 -0
- package/src/types/query/query-args/index.d.ts +5 -0
- package/src/types/query/query-args/index.js +9 -0
- package/src/types/query/query-args/index.js.map +1 -0
- package/src/types/query/query-args/interfaces.d.ts +45 -0
- package/src/types/query/query-args/interfaces.js +3 -0
- package/src/types/query/query-args/interfaces.js.map +1 -0
- package/src/types/query/query-args/none-paging-query-args.type.d.ts +5 -0
- package/src/types/query/query-args/none-paging-query-args.type.js +49 -0
- package/src/types/query/query-args/none-paging-query-args.type.js.map +1 -0
- package/src/types/query/query-args/offset-query-args.type.d.ts +5 -0
- package/src/types/query/query-args/offset-query-args.type.js +60 -0
- package/src/types/query/query-args/offset-query-args.type.js.map +1 -0
- package/src/types/query/query-args.type.d.ts +8 -0
- package/src/types/query/query-args.type.js +33 -0
- package/src/types/query/query-args.type.js.map +1 -0
- package/src/types/query/sorting.type.d.ts +2 -0
- package/src/types/query/sorting.type.js +55 -0
- package/src/types/query/sorting.type.js.map +1 -0
- package/src/types/relation-input.type.d.ts +6 -0
- package/src/types/relation-input.type.js +30 -0
- package/src/types/relation-input.type.js.map +1 -0
- package/src/types/relations-input.type.d.ts +6 -0
- package/src/types/relations-input.type.js +31 -0
- package/src/types/relations-input.type.js.map +1 -0
- package/src/types/subscription-args.type.d.ts +5 -0
- package/src/types/subscription-args.type.js +24 -0
- package/src/types/subscription-args.type.js.map +1 -0
- package/src/types/subscription-filter-input.type.d.ts +9 -0
- package/src/types/subscription-filter-input.type.js +32 -0
- package/src/types/subscription-filter-input.type.js.map +1 -0
- package/src/types/type.errors.d.ts +5 -0
- package/src/types/type.errors.js +11 -0
- package/src/types/type.errors.js.map +1 -0
- package/src/types/update-many-input.type.d.ts +11 -0
- package/src/types/update-many-input.type.js +38 -0
- package/src/types/update-many-input.type.js.map +1 -0
- package/src/types/update-many-response.type.d.ts +2 -0
- package/src/types/update-many-response.type.js +25 -0
- package/src/types/update-many-response.type.js.map +1 -0
- package/src/types/update-one-input.type.d.ts +11 -0
- package/src/types/update-one-input.type.js +36 -0
- package/src/types/update-one-input.type.js.map +1 -0
- package/src/types/validators/cannot-use-with.validator.d.ts +6 -0
- package/src/types/validators/cannot-use-with.validator.js +21 -0
- package/src/types/validators/cannot-use-with.validator.js.map +1 -0
- package/src/types/validators/cannot-use-without.validator.d.ts +6 -0
- package/src/types/validators/cannot-use-without.validator.js +22 -0
- package/src/types/validators/cannot-use-without.validator.js.map +1 -0
- package/src/types/validators/index.d.ts +3 -0
- package/src/types/validators/index.js +7 -0
- package/src/types/validators/index.js.map +1 -0
- package/src/types/validators/is-undefined.validator.d.ts +3 -0
- package/src/types/validators/is-undefined.validator.js +11 -0
- package/src/types/validators/is-undefined.validator.js.map +1 -0
- package/src/types/validators/property-max.validator.d.ts +6 -0
- package/src/types/validators/property-max.validator.js +30 -0
- package/src/types/validators/property-max.validator.js.map +1 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateRelationsResolver = exports.ReferencesRelationsResolver = exports.RemoveRelationsResolver = exports.UpdateRelationsResolver = exports.ReadRelationsResolver = exports.Relatable = void 0;
|
|
4
|
+
var relations_resolver_1 = require("./relations.resolver");
|
|
5
|
+
Object.defineProperty(exports, "Relatable", { enumerable: true, get: function () { return relations_resolver_1.Relatable; } });
|
|
6
|
+
var read_relations_resolver_1 = require("./read-relations.resolver");
|
|
7
|
+
Object.defineProperty(exports, "ReadRelationsResolver", { enumerable: true, get: function () { return read_relations_resolver_1.ReadRelationsResolver; } });
|
|
8
|
+
var update_relations_resolver_1 = require("./update-relations.resolver");
|
|
9
|
+
Object.defineProperty(exports, "UpdateRelationsResolver", { enumerable: true, get: function () { return update_relations_resolver_1.UpdateRelationsResolver; } });
|
|
10
|
+
var remove_relations_resolver_1 = require("./remove-relations.resolver");
|
|
11
|
+
Object.defineProperty(exports, "RemoveRelationsResolver", { enumerable: true, get: function () { return remove_relations_resolver_1.RemoveRelationsResolver; } });
|
|
12
|
+
var references_relation_resolver_1 = require("./references-relation.resolver");
|
|
13
|
+
Object.defineProperty(exports, "ReferencesRelationsResolver", { enumerable: true, get: function () { return references_relation_resolver_1.ReferencesRelationsResolver; } });
|
|
14
|
+
var aggregate_relations_resolver_1 = require("./aggregate-relations.resolver");
|
|
15
|
+
Object.defineProperty(exports, "AggregateRelationsResolver", { enumerable: true, get: function () { return aggregate_relations_resolver_1.AggregateRelationsResolver; } });
|
|
16
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/index.ts"],"names":[],"mappings":";;;AAAA,2DAAiD;AAAxC,+GAAA,SAAS,OAAA;AAClB,qEAAkE;AAAzD,gIAAA,qBAAqB,OAAA;AAC9B,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAChC,yEAAsE;AAA7D,oIAAA,uBAAuB,OAAA;AAChC,+EAA6E;AAApE,2IAAA,2BAA2B,OAAA;AACpC,+EAA4E;AAAnE,0IAAA,0BAA0B,OAAA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { RelationsOpts } from './relations.interface';
|
|
4
|
+
export interface ReadRelationsResolverOpts extends RelationsOpts {
|
|
5
|
+
enableTotalCount?: boolean;
|
|
6
|
+
}
|
|
7
|
+
export declare const ReadRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: ReadRelationsResolverOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
|
|
8
|
+
export declare const ReadRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, relations: ReadRelationsResolverOpts) => Class<ServiceResolver<DTO, QS>>;
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReadRelationsResolver = exports.ReadRelationsMixin = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
6
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
7
|
+
const auth_1 = require("../../auth");
|
|
8
|
+
const common_1 = require("../../common");
|
|
9
|
+
const decorators_1 = require("../../decorators");
|
|
10
|
+
const interceptors_1 = require("../../interceptors");
|
|
11
|
+
const loader_1 = require("../../loader");
|
|
12
|
+
const types_1 = require("../../types");
|
|
13
|
+
const helpers_1 = require("../helpers");
|
|
14
|
+
const resolver_interface_1 = require("../resolver.interface");
|
|
15
|
+
const helpers_2 = require("./helpers");
|
|
16
|
+
const ReadOneRelationMixin = (DTOClass, relation) => (Base) => {
|
|
17
|
+
var _a;
|
|
18
|
+
if (relation.disableRead) {
|
|
19
|
+
return Base;
|
|
20
|
+
}
|
|
21
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
22
|
+
const relationDTO = relation.DTO;
|
|
23
|
+
const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
|
|
24
|
+
const relationName = relation.relationName ?? baseNameLower;
|
|
25
|
+
const loaderName = `load${baseName}For${DTOClass.name}`;
|
|
26
|
+
const findLoader = new loader_1.FindRelationsLoader(relationDTO, relationName);
|
|
27
|
+
let ReadOneMixin = class ReadOneMixin extends Base {
|
|
28
|
+
async [_a = `find${baseName}`](dto, context, authFilter) {
|
|
29
|
+
return loader_1.DataLoaderFactory.getOrCreateLoader(context, loaderName, findLoader.createLoader(this.service)).load({
|
|
30
|
+
dto,
|
|
31
|
+
filter: authFilter,
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
(0, tslib_1.__decorate)([
|
|
36
|
+
(0, decorators_1.ResolverField)(baseNameLower, () => relationDTO, { nullable: relation.nullable, complexity: relation.complexity, description: relation?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
|
|
37
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
|
|
38
|
+
(0, tslib_1.__param)(1, (0, graphql_1.Context)()),
|
|
39
|
+
(0, tslib_1.__param)(2, (0, decorators_1.RelationAuthorizerFilter)(baseNameLower, {
|
|
40
|
+
operationGroup: auth_1.OperationGroup.READ,
|
|
41
|
+
many: false,
|
|
42
|
+
})),
|
|
43
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
44
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Object, Object]),
|
|
45
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
46
|
+
], ReadOneMixin.prototype, _a, null);
|
|
47
|
+
ReadOneMixin = (0, tslib_1.__decorate)([
|
|
48
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
49
|
+
], ReadOneMixin);
|
|
50
|
+
return ReadOneMixin;
|
|
51
|
+
};
|
|
52
|
+
const ReadManyRelationMixin = (DTOClass, relation) => (Base) => {
|
|
53
|
+
var _a;
|
|
54
|
+
if (relation.disableRead) {
|
|
55
|
+
return Base;
|
|
56
|
+
}
|
|
57
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
58
|
+
const relationDTO = relation.DTO;
|
|
59
|
+
const dtoName = (0, common_1.getDTONames)(DTOClass).baseName;
|
|
60
|
+
const { pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
|
|
61
|
+
const relationName = relation.relationName ?? pluralBaseNameLower;
|
|
62
|
+
const relationLoaderName = `load${pluralBaseName}For${DTOClass.name}`;
|
|
63
|
+
const countRelationLoaderName = `count${pluralBaseName}For${DTOClass.name}`;
|
|
64
|
+
const queryLoader = new loader_1.QueryRelationsLoader(relationDTO, relationName);
|
|
65
|
+
const countLoader = new loader_1.CountRelationsLoader(relationDTO, relationName);
|
|
66
|
+
const connectionName = `${dtoName}${pluralBaseName}Connection`;
|
|
67
|
+
let RelationQA = class RelationQA extends (0, types_1.QueryArgsType)(relationDTO, {
|
|
68
|
+
...relation,
|
|
69
|
+
connectionName,
|
|
70
|
+
disableKeySetPagination: true,
|
|
71
|
+
}) {
|
|
72
|
+
};
|
|
73
|
+
RelationQA = (0, tslib_1.__decorate)([
|
|
74
|
+
(0, graphql_1.ArgsType)()
|
|
75
|
+
], RelationQA);
|
|
76
|
+
// disable keyset pagination for relations otherwise recursive paging will not work
|
|
77
|
+
const { ConnectionType: CT } = RelationQA;
|
|
78
|
+
let ReadManyMixin = class ReadManyMixin extends Base {
|
|
79
|
+
async [_a = `query${pluralBaseName}`](dto, q, context, relationFilter) {
|
|
80
|
+
const qa = await (0, helpers_1.transformAndValidate)(RelationQA, q);
|
|
81
|
+
const relationLoader = loader_1.DataLoaderFactory.getOrCreateLoader(context, relationLoaderName, queryLoader.createLoader(this.service));
|
|
82
|
+
const relationCountLoader = loader_1.DataLoaderFactory.getOrCreateLoader(context, countRelationLoaderName, countLoader.createLoader(this.service));
|
|
83
|
+
return CT.createFromPromise((query) => relationLoader.load({ dto, query }), (0, nestjs_query_core_1.mergeQuery)(qa, { filter: relationFilter }), (filter) => relationCountLoader.load({ dto, filter }));
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
(0, tslib_1.__decorate)([
|
|
87
|
+
(0, decorators_1.ResolverField)(pluralBaseNameLower, () => CT.resolveType, { nullable: relation.nullable, complexity: relation.complexity, description: relation?.description }, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
|
|
88
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
|
|
89
|
+
(0, tslib_1.__param)(1, (0, graphql_1.Args)()),
|
|
90
|
+
(0, tslib_1.__param)(2, (0, graphql_1.Context)()),
|
|
91
|
+
(0, tslib_1.__param)(3, (0, decorators_1.RelationAuthorizerFilter)(pluralBaseNameLower, {
|
|
92
|
+
operationGroup: auth_1.OperationGroup.READ,
|
|
93
|
+
many: true,
|
|
94
|
+
})),
|
|
95
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
96
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, RelationQA, Object, Object]),
|
|
97
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
98
|
+
], ReadManyMixin.prototype, _a, null);
|
|
99
|
+
ReadManyMixin = (0, tslib_1.__decorate)([
|
|
100
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
101
|
+
], ReadManyMixin);
|
|
102
|
+
return ReadManyMixin;
|
|
103
|
+
};
|
|
104
|
+
const ReadRelationsMixin = (DTOClass, relations) => (Base) => {
|
|
105
|
+
const { many, one, enableTotalCount } = relations;
|
|
106
|
+
const manyRelations = (0, helpers_2.flattenRelations)(many ?? {});
|
|
107
|
+
const oneRelations = (0, helpers_2.flattenRelations)(one ?? {});
|
|
108
|
+
const WithMany = manyRelations.reduce((RB, a) => ReadManyRelationMixin(DTOClass, { enableTotalCount, ...a })(RB), Base);
|
|
109
|
+
return oneRelations.reduce((RB, a) => ReadOneRelationMixin(DTOClass, a)(RB), WithMany);
|
|
110
|
+
};
|
|
111
|
+
exports.ReadRelationsMixin = ReadRelationsMixin;
|
|
112
|
+
const ReadRelationsResolver = (DTOClass, relations) => (0, exports.ReadRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
|
|
113
|
+
exports.ReadRelationsResolver = ReadRelationsResolver;
|
|
114
|
+
//# sourceMappingURL=read-relations.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"read-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/read-relations.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { ReferencesOpts } from './relations.interface';
|
|
4
|
+
export declare const ReferencesRelationMixin: <DTO>(DTOClass: Class<DTO>, references: ReferencesOpts<DTO>) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
|
|
5
|
+
export declare const ReferencesRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, references: ReferencesOpts<DTO>) => Class<ServiceResolver<DTO, QS>>;
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ReferencesRelationsResolver = exports.ReferencesRelationMixin = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
const common_1 = require("../../common");
|
|
7
|
+
const decorators_1 = require("../../decorators");
|
|
8
|
+
const resolver_interface_1 = require("../resolver.interface");
|
|
9
|
+
const helpers_1 = require("./helpers");
|
|
10
|
+
const pluckFields = (dto, fieldMap) => {
|
|
11
|
+
const partial = {};
|
|
12
|
+
Object.keys(fieldMap).forEach((relationField) => {
|
|
13
|
+
const dtoField = fieldMap[relationField];
|
|
14
|
+
partial[relationField] = dto[dtoField];
|
|
15
|
+
});
|
|
16
|
+
return partial;
|
|
17
|
+
};
|
|
18
|
+
const allFieldsAreNull = (fields) => {
|
|
19
|
+
return Object.values(fields).reduce((previousNull, value) => previousNull && (value === null || value === undefined), true);
|
|
20
|
+
};
|
|
21
|
+
const ReferencesMixin = (DTOClass, reference) => (Base) => {
|
|
22
|
+
var _a;
|
|
23
|
+
const commonResolverOpts = (0, helpers_1.removeRelationOpts)(reference);
|
|
24
|
+
const relationDTO = reference.DTO;
|
|
25
|
+
const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: reference.dtoName });
|
|
26
|
+
let ReadOneMixin = class ReadOneMixin extends Base {
|
|
27
|
+
[_a = `${baseNameLower}Reference`](dto) {
|
|
28
|
+
const fields = pluckFields(dto, reference.keys);
|
|
29
|
+
if (allFieldsAreNull(fields)) {
|
|
30
|
+
return null;
|
|
31
|
+
}
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
33
|
+
return { __typename: baseName, ...fields };
|
|
34
|
+
}
|
|
35
|
+
};
|
|
36
|
+
(0, tslib_1.__decorate)([
|
|
37
|
+
(0, decorators_1.ResolverField)(baseNameLower, () => relationDTO, { nullable: reference.nullable, complexity: reference.complexity }, commonResolverOpts),
|
|
38
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Parent)()),
|
|
39
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
40
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object]),
|
|
41
|
+
(0, tslib_1.__metadata)("design:returntype", Object)
|
|
42
|
+
], ReadOneMixin.prototype, _a, null);
|
|
43
|
+
ReadOneMixin = (0, tslib_1.__decorate)([
|
|
44
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
45
|
+
], ReadOneMixin);
|
|
46
|
+
return ReadOneMixin;
|
|
47
|
+
};
|
|
48
|
+
const ReferencesRelationMixin = (DTOClass, references) => (Base) => {
|
|
49
|
+
const flattened = (0, helpers_1.flattenRelations)(references);
|
|
50
|
+
return flattened.reduce((RB, a) => ReferencesMixin(DTOClass, a)(RB), Base);
|
|
51
|
+
};
|
|
52
|
+
exports.ReferencesRelationMixin = ReferencesRelationMixin;
|
|
53
|
+
const ReferencesRelationsResolver = (DTOClass, references) => (0, exports.ReferencesRelationMixin)(DTOClass, references)(resolver_interface_1.BaseServiceResolver);
|
|
54
|
+
exports.ReferencesRelationsResolver = ReferencesRelationsResolver;
|
|
55
|
+
//# sourceMappingURL=references-relation.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"references-relation.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/references-relation.resolver.ts"],"names":[],"mappings":";;;;AACA,6CAAmD;AACnD,yCAA2C;AAC3C,iDAAiD;AAEjD,8DAA6E;AAC7E,uCAAiE;AAGjE,MAAM,WAAW,GAAG,CAAgB,GAAQ,EAAE,QAAuC,EAAqB,EAAE;IAC1G,MAAM,OAAO,GAA4B,EAAE,CAAC;IAC5C,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,EAAE;QAC9C,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAA+B,CAAC,CAAC;QAC3D,OAAO,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC,QAAqB,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IACH,OAAO,OAA4B,CAAC;AACtC,CAAC,CAAC;AAEF,MAAM,gBAAgB,GAAG,CAAW,MAAyB,EAAW,EAAE;IACxE,OAAO,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,MAAM,CACjC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,CAAC,EAChF,IAAI,CACL,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,eAAe,GACnB,CAAgB,QAAoB,EAAE,SAAmD,EAAE,EAAE,CAC7F,CAA6E,IAAO,EAAK,EAAE;;IACzF,MAAM,kBAAkB,GAAG,IAAA,4BAAkB,EAAC,SAAS,CAAC,CAAC;IACzD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,CAAC;IAClC,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,IAAA,oBAAW,EAAC,WAAW,EAAE,EAAE,OAAO,EAAE,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC;IAG7F,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAI;QAO7B,MAAC,GAAG,aAAa,WAAW,CAAC,CAAW,GAAQ;YAC9C,MAAM,MAAM,GAAG,WAAW,CAAgB,GAAG,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YAE/D,IAAI,gBAAgB,CAAC,MAAM,CAAC,EAAE;gBAC5B,OAAO,IAAI,CAAC;aACb;YAED,gEAAgE;YAChE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7C,CAAC;KACF,CAAA;IAVC;QANC,IAAA,0BAAa,EACZ,aAAa,EACb,GAAG,EAAE,CAAC,WAAW,EACjB,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,UAAU,EAAE,EAClE,kBAAkB,CACnB;QAC8B,wBAAA,IAAA,gBAAM,GAAE,CAAA;;;;wCAStC;IAhBG,YAAY;QADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OACzC,YAAY,CAiBjB;IACD,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AAEG,MAAM,uBAAuB,GAClC,CAAM,QAAoB,EAAE,UAA+B,EAAE,EAAE,CAC/D,CAA6E,IAAO,EAAK,EAAE;IACzF,MAAM,SAAS,GAAG,IAAA,0BAAgB,EAAC,UAAU,CAAC,CAAC;IAC/C,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;AAC7E,CAAC,CAAC;AALS,QAAA,uBAAuB,2BAKhC;AAEG,MAAM,2BAA2B,GAAG,CAIzC,QAAoB,EACpB,UAA+B,EACE,EAAE,CAAC,IAAA,+BAAuB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,wCAAmB,CAAC,CAAC;AAN5F,QAAA,2BAA2B,+BAMiE"}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { Complexity } from '@nestjs/graphql';
|
|
3
|
+
import { DTONamesOpts } from '../../common';
|
|
4
|
+
import { ResolverMethodOpts } from '../../decorators';
|
|
5
|
+
import { QueryArgsTypeOpts, ConnectionOptions } from '../../types';
|
|
6
|
+
import { AuthorizerOptions } from '../../auth';
|
|
7
|
+
export declare type ReferencesKeys<DTO, Reference> = {
|
|
8
|
+
[F in keyof Reference]?: keyof DTO;
|
|
9
|
+
};
|
|
10
|
+
export interface ResolverRelationReference<DTO, Reference> extends DTONamesOpts, ResolverMethodOpts {
|
|
11
|
+
/**
|
|
12
|
+
* The class type of the relation.
|
|
13
|
+
*/
|
|
14
|
+
DTO: Class<Reference>;
|
|
15
|
+
/**
|
|
16
|
+
* Keys
|
|
17
|
+
*/
|
|
18
|
+
keys: ReferencesKeys<DTO, Reference>;
|
|
19
|
+
/**
|
|
20
|
+
* Set to true if the relation is nullable
|
|
21
|
+
*/
|
|
22
|
+
nullable?: boolean;
|
|
23
|
+
complexity?: Complexity;
|
|
24
|
+
}
|
|
25
|
+
export declare type ResolverRelation<Relation> = {
|
|
26
|
+
/**
|
|
27
|
+
* The class type of the relation.
|
|
28
|
+
*/
|
|
29
|
+
DTO: Class<Relation>;
|
|
30
|
+
/**
|
|
31
|
+
* The name of the relation to use when fetching from the QueryService
|
|
32
|
+
*/
|
|
33
|
+
relationName?: string;
|
|
34
|
+
/**
|
|
35
|
+
* Set to true if the relation is nullable
|
|
36
|
+
*/
|
|
37
|
+
nullable?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Disable read relation graphql endpoints
|
|
40
|
+
*/
|
|
41
|
+
disableRead?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Disable update relation graphql endpoints
|
|
44
|
+
*/
|
|
45
|
+
disableUpdate?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Disable remove relation graphql endpoints
|
|
48
|
+
*/
|
|
49
|
+
disableRemove?: boolean;
|
|
50
|
+
/**
|
|
51
|
+
* Enable aggregation queries.
|
|
52
|
+
*/
|
|
53
|
+
enableAggregate?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Set to true if you should be able to filter on this relation.
|
|
56
|
+
*
|
|
57
|
+
* This will only work with relations defined through an ORM (typeorm or sequelize).
|
|
58
|
+
*/
|
|
59
|
+
allowFiltering?: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* Description of the relation.
|
|
62
|
+
*/
|
|
63
|
+
description?: string;
|
|
64
|
+
complexity?: Complexity;
|
|
65
|
+
auth?: AuthorizerOptions<Relation>;
|
|
66
|
+
} & DTONamesOpts & ResolverMethodOpts & QueryArgsTypeOpts<Relation> & Pick<ConnectionOptions, 'enableTotalCount'>;
|
|
67
|
+
export declare type RelationTypeMap<RT> = Record<string, RT>;
|
|
68
|
+
export declare type RelationsOpts = {
|
|
69
|
+
/**
|
|
70
|
+
* All relations that are a single record
|
|
71
|
+
*/
|
|
72
|
+
one?: RelationTypeMap<ResolverRelation<unknown>>;
|
|
73
|
+
/**
|
|
74
|
+
* All relations that have multiple records
|
|
75
|
+
*/
|
|
76
|
+
many?: RelationTypeMap<ResolverRelation<unknown>>;
|
|
77
|
+
};
|
|
78
|
+
export declare type ReferencesOpts<DTO> = RelationTypeMap<ResolverRelationReference<DTO, any>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.interface.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/relations.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { BaseResolverOptions } from '../../decorators/resolver-method.decorator';
|
|
4
|
+
export interface RelatableOpts extends BaseResolverOptions {
|
|
5
|
+
enableTotalCount?: boolean;
|
|
6
|
+
enableAggregate?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const Relatable: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts: RelatableOpts) => <B extends Class<ServiceResolver<DTO, QS>>>(Base: B) => B;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Relatable = void 0;
|
|
4
|
+
const aggregate_relations_resolver_1 = require("./aggregate-relations.resolver");
|
|
5
|
+
const read_relations_resolver_1 = require("./read-relations.resolver");
|
|
6
|
+
const references_relation_resolver_1 = require("./references-relation.resolver");
|
|
7
|
+
const remove_relations_resolver_1 = require("./remove-relations.resolver");
|
|
8
|
+
const update_relations_resolver_1 = require("./update-relations.resolver");
|
|
9
|
+
const decorators_1 = require("../../decorators");
|
|
10
|
+
const reference_decorator_1 = require("../../decorators/reference.decorator");
|
|
11
|
+
const Relatable = (DTOClass, opts) => (Base) => {
|
|
12
|
+
const { enableTotalCount, enableAggregate } = opts;
|
|
13
|
+
const relations = (0, decorators_1.getRelations)(DTOClass, opts);
|
|
14
|
+
const references = (0, reference_decorator_1.getReferences)(DTOClass, opts);
|
|
15
|
+
const referencesMixin = (0, references_relation_resolver_1.ReferencesRelationMixin)(DTOClass, references);
|
|
16
|
+
const aggregateRelationsMixin = (0, aggregate_relations_resolver_1.AggregateRelationsMixin)(DTOClass, { ...relations, enableAggregate });
|
|
17
|
+
const readRelationsMixin = (0, read_relations_resolver_1.ReadRelationsMixin)(DTOClass, { ...relations, enableTotalCount });
|
|
18
|
+
const updateRelationsMixin = (0, update_relations_resolver_1.UpdateRelationsMixin)(DTOClass, relations);
|
|
19
|
+
return referencesMixin(aggregateRelationsMixin(readRelationsMixin(updateRelationsMixin((0, remove_relations_resolver_1.RemoveRelationsMixin)(DTOClass, relations)(Base)))));
|
|
20
|
+
};
|
|
21
|
+
exports.Relatable = Relatable;
|
|
22
|
+
//# sourceMappingURL=relations.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/relations.resolver.ts"],"names":[],"mappings":";;;AAEA,iFAAyE;AACzE,uEAA+D;AAC/D,iFAAyE;AACzE,2EAAmE;AACnE,2EAAmE;AACnE,iDAAgD;AAChD,8EAAqE;AAQ9D,MAAM,SAAS,GACpB,CACE,QAAoB,EACpB,IAAmB,EACnB,EAAE,CACJ,CAA4C,IAAO,EAAK,EAAE;IACxD,MAAM,EAAE,gBAAgB,EAAE,eAAe,EAAE,GAAG,IAAI,CAAC;IACnD,MAAM,SAAS,GAAG,IAAA,yBAAY,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAC/C,MAAM,UAAU,GAAG,IAAA,mCAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAEjD,MAAM,eAAe,GAAG,IAAA,sDAAuB,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;IACtE,MAAM,uBAAuB,GAAG,IAAA,sDAAuB,EAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,eAAe,EAAE,CAAC,CAAC;IACrG,MAAM,kBAAkB,GAAG,IAAA,4CAAkB,EAAC,QAAQ,EAAE,EAAE,GAAG,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAC5F,MAAM,oBAAoB,GAAG,IAAA,gDAAoB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;IAEvE,OAAO,eAAe,CACpB,uBAAuB,CACrB,kBAAkB,CAAC,oBAAoB,CAAC,IAAA,gDAAoB,EAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAC1F,CACF,CAAC;AACJ,CAAC,CAAC;AApBS,QAAA,SAAS,aAoBlB"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { RelationsOpts } from './relations.interface';
|
|
4
|
+
export declare const RemoveRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: RelationsOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
|
|
5
|
+
export declare const RemoveRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, relations: RelationsOpts) => Class<ServiceResolver<DTO, QS>>;
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RemoveRelationsResolver = exports.RemoveRelationsMixin = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
const auth_1 = require("../../auth");
|
|
7
|
+
const common_1 = require("../../common");
|
|
8
|
+
const decorators_1 = require("../../decorators");
|
|
9
|
+
const interceptors_1 = require("../../interceptors");
|
|
10
|
+
const types_1 = require("../../types");
|
|
11
|
+
const helpers_1 = require("../helpers");
|
|
12
|
+
const resolver_interface_1 = require("../resolver.interface");
|
|
13
|
+
const helpers_2 = require("./helpers");
|
|
14
|
+
const RemoveOneRelationMixin = (DTOClass, relation) => (Base) => {
|
|
15
|
+
var _a;
|
|
16
|
+
if (relation.disableRemove) {
|
|
17
|
+
return Base;
|
|
18
|
+
}
|
|
19
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
20
|
+
const relationDTO = relation.DTO;
|
|
21
|
+
const dtoNames = (0, common_1.getDTONames)(DTOClass);
|
|
22
|
+
const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
|
|
23
|
+
const relationName = relation.relationName ?? baseNameLower;
|
|
24
|
+
let RIT = class RIT extends (0, types_1.RelationInputType)(DTOClass, relationDTO) {
|
|
25
|
+
};
|
|
26
|
+
RIT = (0, tslib_1.__decorate)([
|
|
27
|
+
(0, graphql_1.InputType)(`Remove${baseName}From${dtoNames.baseName}Input`)
|
|
28
|
+
], RIT);
|
|
29
|
+
let SetArgs = class SetArgs extends (0, types_1.MutationArgsType)(RIT) {
|
|
30
|
+
};
|
|
31
|
+
SetArgs = (0, tslib_1.__decorate)([
|
|
32
|
+
(0, graphql_1.ArgsType)()
|
|
33
|
+
], SetArgs);
|
|
34
|
+
let RemoveOneMixin = class RemoveOneMixin extends Base {
|
|
35
|
+
async [_a = `remove${baseName}From${dtoNames.baseName}`](setArgs, modifyRelationsFilter) {
|
|
36
|
+
const { input } = await (0, helpers_1.transformAndValidate)(SetArgs, setArgs);
|
|
37
|
+
return this.service.removeRelation(relationName, input.id, input.relationId, modifyRelationsFilter);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
(0, tslib_1.__decorate)([
|
|
41
|
+
(0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
|
|
42
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
43
|
+
(0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(baseNameLower, {
|
|
44
|
+
operationGroup: auth_1.OperationGroup.UPDATE,
|
|
45
|
+
many: false,
|
|
46
|
+
})),
|
|
47
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
48
|
+
(0, tslib_1.__metadata)("design:paramtypes", [SetArgs, Object]),
|
|
49
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
50
|
+
], RemoveOneMixin.prototype, _a, null);
|
|
51
|
+
RemoveOneMixin = (0, tslib_1.__decorate)([
|
|
52
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
53
|
+
], RemoveOneMixin);
|
|
54
|
+
return RemoveOneMixin;
|
|
55
|
+
};
|
|
56
|
+
const RemoveManyRelationsMixin = (DTOClass, relation) => (Base) => {
|
|
57
|
+
var _a;
|
|
58
|
+
if (relation.disableRemove) {
|
|
59
|
+
return Base;
|
|
60
|
+
}
|
|
61
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
62
|
+
const relationDTO = relation.DTO;
|
|
63
|
+
const dtoNames = (0, common_1.getDTONames)(DTOClass);
|
|
64
|
+
const { pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
|
|
65
|
+
const relationName = relation.relationName ?? pluralBaseNameLower;
|
|
66
|
+
let RIT = class RIT extends (0, types_1.RelationsInputType)(DTOClass, relationDTO) {
|
|
67
|
+
};
|
|
68
|
+
RIT = (0, tslib_1.__decorate)([
|
|
69
|
+
(0, graphql_1.InputType)(`Remove${pluralBaseName}From${dtoNames.baseName}Input`)
|
|
70
|
+
], RIT);
|
|
71
|
+
let AddArgs = class AddArgs extends (0, types_1.MutationArgsType)(RIT) {
|
|
72
|
+
};
|
|
73
|
+
AddArgs = (0, tslib_1.__decorate)([
|
|
74
|
+
(0, graphql_1.ArgsType)()
|
|
75
|
+
], AddArgs);
|
|
76
|
+
let Mixin = class Mixin extends Base {
|
|
77
|
+
async [_a = `remove${pluralBaseName}From${dtoNames.baseName}`](addArgs, modifyRelationsFilter) {
|
|
78
|
+
const { input } = await (0, helpers_1.transformAndValidate)(AddArgs, addArgs);
|
|
79
|
+
return this.service.removeRelations(relationName, input.id, input.relationIds, modifyRelationsFilter);
|
|
80
|
+
}
|
|
81
|
+
};
|
|
82
|
+
(0, tslib_1.__decorate)([
|
|
83
|
+
(0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }),
|
|
84
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
85
|
+
(0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(pluralBaseNameLower, {
|
|
86
|
+
operationGroup: auth_1.OperationGroup.UPDATE,
|
|
87
|
+
many: true,
|
|
88
|
+
})),
|
|
89
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
90
|
+
(0, tslib_1.__metadata)("design:paramtypes", [AddArgs, Object]),
|
|
91
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
92
|
+
], Mixin.prototype, _a, null);
|
|
93
|
+
Mixin = (0, tslib_1.__decorate)([
|
|
94
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
95
|
+
], Mixin);
|
|
96
|
+
return Mixin;
|
|
97
|
+
};
|
|
98
|
+
const RemoveRelationsMixin = (DTOClass, relations) => (Base) => {
|
|
99
|
+
const manyRelations = (0, helpers_2.flattenRelations)(relations.many ?? {});
|
|
100
|
+
const oneRelations = (0, helpers_2.flattenRelations)(relations.one ?? {});
|
|
101
|
+
const WithMany = manyRelations.reduce((RB, a) => RemoveManyRelationsMixin(DTOClass, a)(RB), Base);
|
|
102
|
+
return oneRelations.reduce((RB, a) => RemoveOneRelationMixin(DTOClass, a)(RB), WithMany);
|
|
103
|
+
};
|
|
104
|
+
exports.RemoveRelationsMixin = RemoveRelationsMixin;
|
|
105
|
+
const RemoveRelationsResolver = (DTOClass, relations) => (0, exports.RemoveRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
|
|
106
|
+
exports.RemoveRelationsResolver = RemoveRelationsResolver;
|
|
107
|
+
//# sourceMappingURL=remove-relations.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"remove-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/remove-relations.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Class, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ServiceResolver } from '../resolver.interface';
|
|
3
|
+
import { RelationsOpts } from './relations.interface';
|
|
4
|
+
export declare const UpdateRelationsMixin: <DTO>(DTOClass: Class<DTO>, relations: RelationsOpts) => <B extends Class<ServiceResolver<DTO, QueryService<DTO, unknown, unknown>>>>(Base: B) => B;
|
|
5
|
+
export declare const UpdateRelationsResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, relations: RelationsOpts) => Class<ServiceResolver<DTO, QS>>;
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.UpdateRelationsResolver = exports.UpdateRelationsMixin = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
const interceptors_1 = require("../../interceptors");
|
|
7
|
+
const common_1 = require("../../common");
|
|
8
|
+
const decorators_1 = require("../../decorators");
|
|
9
|
+
const types_1 = require("../../types");
|
|
10
|
+
const helpers_1 = require("../helpers");
|
|
11
|
+
const resolver_interface_1 = require("../resolver.interface");
|
|
12
|
+
const helpers_2 = require("./helpers");
|
|
13
|
+
const auth_1 = require("../../auth");
|
|
14
|
+
const UpdateOneRelationMixin = (DTOClass, relation) => (Base) => {
|
|
15
|
+
var _a;
|
|
16
|
+
if (relation.disableUpdate) {
|
|
17
|
+
return Base;
|
|
18
|
+
}
|
|
19
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
20
|
+
const relationDTO = relation.DTO;
|
|
21
|
+
const dtoNames = (0, common_1.getDTONames)(DTOClass);
|
|
22
|
+
const { baseNameLower, baseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
|
|
23
|
+
const relationName = relation.relationName ?? baseNameLower;
|
|
24
|
+
let RIT = class RIT extends (0, types_1.RelationInputType)(DTOClass, relationDTO) {
|
|
25
|
+
};
|
|
26
|
+
RIT = (0, tslib_1.__decorate)([
|
|
27
|
+
(0, graphql_1.InputType)(`Set${baseName}On${dtoNames.baseName}Input`)
|
|
28
|
+
], RIT);
|
|
29
|
+
let SetArgs = class SetArgs extends (0, types_1.MutationArgsType)(RIT) {
|
|
30
|
+
};
|
|
31
|
+
SetArgs = (0, tslib_1.__decorate)([
|
|
32
|
+
(0, graphql_1.ArgsType)()
|
|
33
|
+
], SetArgs);
|
|
34
|
+
let UpdateOneMixin = class UpdateOneMixin extends Base {
|
|
35
|
+
async [_a = `set${baseName}On${dtoNames.baseName}`](setArgs, modifyRelationsFilter) {
|
|
36
|
+
const { input } = await (0, helpers_1.transformAndValidate)(SetArgs, setArgs);
|
|
37
|
+
return this.service.setRelation(relationName, input.id, input.relationId, modifyRelationsFilter);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
(0, tslib_1.__decorate)([
|
|
41
|
+
(0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, {
|
|
42
|
+
interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
|
|
43
|
+
}),
|
|
44
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
45
|
+
(0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(baseNameLower, {
|
|
46
|
+
operationGroup: auth_1.OperationGroup.UPDATE,
|
|
47
|
+
many: false,
|
|
48
|
+
})),
|
|
49
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
50
|
+
(0, tslib_1.__metadata)("design:paramtypes", [SetArgs, Object]),
|
|
51
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
52
|
+
], UpdateOneMixin.prototype, _a, null);
|
|
53
|
+
UpdateOneMixin = (0, tslib_1.__decorate)([
|
|
54
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
55
|
+
], UpdateOneMixin);
|
|
56
|
+
return UpdateOneMixin;
|
|
57
|
+
};
|
|
58
|
+
const UpdateManyRelationMixin = (DTOClass, relation) => (Base) => {
|
|
59
|
+
var _a, _b;
|
|
60
|
+
if (relation.disableUpdate) {
|
|
61
|
+
return Base;
|
|
62
|
+
}
|
|
63
|
+
const commonResolverOpts = (0, helpers_2.removeRelationOpts)(relation);
|
|
64
|
+
const relationDTO = relation.DTO;
|
|
65
|
+
const dtoNames = (0, common_1.getDTONames)(DTOClass);
|
|
66
|
+
const { pluralBaseNameLower, pluralBaseName } = (0, common_1.getDTONames)(relationDTO, { dtoName: relation.dtoName });
|
|
67
|
+
const relationName = relation.relationName ?? pluralBaseNameLower;
|
|
68
|
+
let AddRelationInput = class AddRelationInput extends (0, types_1.RelationsInputType)(DTOClass, relationDTO) {
|
|
69
|
+
};
|
|
70
|
+
AddRelationInput = (0, tslib_1.__decorate)([
|
|
71
|
+
(0, graphql_1.InputType)(`Add${pluralBaseName}To${dtoNames.baseName}Input`)
|
|
72
|
+
], AddRelationInput);
|
|
73
|
+
let AddArgs = class AddArgs extends (0, types_1.MutationArgsType)(AddRelationInput) {
|
|
74
|
+
};
|
|
75
|
+
AddArgs = (0, tslib_1.__decorate)([
|
|
76
|
+
(0, graphql_1.ArgsType)()
|
|
77
|
+
], AddArgs);
|
|
78
|
+
let SetRelationInput = class SetRelationInput extends (0, types_1.RelationsInputType)(DTOClass, relationDTO) {
|
|
79
|
+
};
|
|
80
|
+
SetRelationInput = (0, tslib_1.__decorate)([
|
|
81
|
+
(0, graphql_1.InputType)(`Set${pluralBaseName}On${dtoNames.baseName}Input`)
|
|
82
|
+
], SetRelationInput);
|
|
83
|
+
let SetArgs = class SetArgs extends (0, types_1.MutationArgsType)(SetRelationInput) {
|
|
84
|
+
};
|
|
85
|
+
SetArgs = (0, tslib_1.__decorate)([
|
|
86
|
+
(0, graphql_1.ArgsType)()
|
|
87
|
+
], SetArgs);
|
|
88
|
+
let UpdateManyMixin = class UpdateManyMixin extends Base {
|
|
89
|
+
async [_a = `add${pluralBaseName}To${dtoNames.baseName}`](addArgs, modifyRelationsFilter) {
|
|
90
|
+
const { input } = await (0, helpers_1.transformAndValidate)(AddArgs, addArgs);
|
|
91
|
+
return this.service.addRelations(relationName, input.id, input.relationIds, modifyRelationsFilter);
|
|
92
|
+
}
|
|
93
|
+
async [_b = `set${pluralBaseName}On${dtoNames.baseName}`](addArgs, modifyRelationsFilter) {
|
|
94
|
+
const { input } = await (0, helpers_1.transformAndValidate)(AddArgs, addArgs);
|
|
95
|
+
return this.service.setRelations(relationName, input.id, input.relationIds, modifyRelationsFilter);
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
(0, tslib_1.__decorate)([
|
|
99
|
+
(0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, {
|
|
100
|
+
interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
|
|
101
|
+
}),
|
|
102
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
103
|
+
(0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(pluralBaseNameLower, {
|
|
104
|
+
operationGroup: auth_1.OperationGroup.UPDATE,
|
|
105
|
+
many: true,
|
|
106
|
+
})),
|
|
107
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
108
|
+
(0, tslib_1.__metadata)("design:paramtypes", [AddArgs, Object]),
|
|
109
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
110
|
+
], UpdateManyMixin.prototype, _a, null);
|
|
111
|
+
(0, tslib_1.__decorate)([
|
|
112
|
+
(0, decorators_1.ResolverMutation)(() => DTOClass, {}, commonResolverOpts, {
|
|
113
|
+
interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
|
|
114
|
+
}),
|
|
115
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
116
|
+
(0, tslib_1.__param)(1, (0, decorators_1.ModifyRelationAuthorizerFilter)(pluralBaseNameLower, {
|
|
117
|
+
operationGroup: auth_1.OperationGroup.UPDATE,
|
|
118
|
+
many: true,
|
|
119
|
+
})),
|
|
120
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
121
|
+
(0, tslib_1.__metadata)("design:paramtypes", [SetArgs, Object]),
|
|
122
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
123
|
+
], UpdateManyMixin.prototype, _b, null);
|
|
124
|
+
UpdateManyMixin = (0, tslib_1.__decorate)([
|
|
125
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
126
|
+
], UpdateManyMixin);
|
|
127
|
+
return UpdateManyMixin;
|
|
128
|
+
};
|
|
129
|
+
const UpdateRelationsMixin = (DTOClass, relations) => (Base) => {
|
|
130
|
+
const manyRelations = (0, helpers_2.flattenRelations)(relations.many ?? {});
|
|
131
|
+
const oneRelations = (0, helpers_2.flattenRelations)(relations.one ?? {});
|
|
132
|
+
const WithMany = manyRelations.reduce((RB, a) => UpdateManyRelationMixin(DTOClass, a)(RB), Base);
|
|
133
|
+
return oneRelations.reduce((RB, a) => UpdateOneRelationMixin(DTOClass, a)(RB), WithMany);
|
|
134
|
+
};
|
|
135
|
+
exports.UpdateRelationsMixin = UpdateRelationsMixin;
|
|
136
|
+
const UpdateRelationsResolver = (DTOClass, relations) => (0, exports.UpdateRelationsMixin)(DTOClass, relations)(resolver_interface_1.BaseServiceResolver);
|
|
137
|
+
exports.UpdateRelationsResolver = UpdateRelationsResolver;
|
|
138
|
+
//# sourceMappingURL=update-relations.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"update-relations.resolver.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/resolvers/relations/update-relations.resolver.ts"],"names":[],"mappings":"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"}
|