@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,112 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createResolvers = exports.isServiceCRUDAutoResolverOpts = exports.isAssemblerCRUDAutoResolverOpts = exports.isFederatedResolverOpts = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
6
|
+
const common_1 = require("@nestjs/common");
|
|
7
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
8
|
+
const graphql_subscriptions_1 = require("graphql-subscriptions");
|
|
9
|
+
const decorators_1 = require("../decorators");
|
|
10
|
+
const resolvers_1 = require("../resolvers");
|
|
11
|
+
const isFederatedResolverOpts = (opts) => 'type' in opts && opts.type === 'federated';
|
|
12
|
+
exports.isFederatedResolverOpts = isFederatedResolverOpts;
|
|
13
|
+
const isAssemblerCRUDAutoResolverOpts = (opts) => 'DTOClass' in opts && 'AssemblerClass' in opts;
|
|
14
|
+
exports.isAssemblerCRUDAutoResolverOpts = isAssemblerCRUDAutoResolverOpts;
|
|
15
|
+
const isServiceCRUDAutoResolverOpts = (opts) => 'DTOClass' in opts && 'ServiceClass' in opts;
|
|
16
|
+
exports.isServiceCRUDAutoResolverOpts = isServiceCRUDAutoResolverOpts;
|
|
17
|
+
const getResolverToken = (DTOClass) => `${DTOClass.name}AutoResolver`;
|
|
18
|
+
const getFederatedResolverToken = (DTOClass) => `${DTOClass.name}FederatedAutoResolver`;
|
|
19
|
+
function createFederatedResolver(resolverOpts) {
|
|
20
|
+
const { DTOClass } = resolverOpts;
|
|
21
|
+
let AutoResolver = class AutoResolver extends (0, resolvers_1.FederationResolver)(DTOClass) {
|
|
22
|
+
constructor(service, pubSub) {
|
|
23
|
+
super(service);
|
|
24
|
+
this.service = service;
|
|
25
|
+
this.pubSub = pubSub;
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
AutoResolver = (0, tslib_1.__decorate)([
|
|
29
|
+
(0, graphql_1.Resolver)(() => DTOClass),
|
|
30
|
+
(0, tslib_1.__param)(0, (0, common_1.Inject)(resolverOpts.Service)),
|
|
31
|
+
(0, tslib_1.__param)(1, (0, decorators_1.InjectPubSub)()),
|
|
32
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, graphql_subscriptions_1.PubSub])
|
|
33
|
+
], AutoResolver);
|
|
34
|
+
// need to set class name so DI works properly
|
|
35
|
+
Object.defineProperty(AutoResolver, 'name', { value: getFederatedResolverToken(DTOClass), writable: false });
|
|
36
|
+
return AutoResolver;
|
|
37
|
+
}
|
|
38
|
+
function createEntityAutoResolver(resolverOpts) {
|
|
39
|
+
const { DTOClass, EntityClass } = resolverOpts;
|
|
40
|
+
class Service extends nestjs_query_core_1.AssemblerQueryService {
|
|
41
|
+
constructor(service) {
|
|
42
|
+
const assembler = nestjs_query_core_1.AssemblerFactory.getAssembler(DTOClass, EntityClass);
|
|
43
|
+
super(assembler, service);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
let AutoResolver = class AutoResolver extends (0, resolvers_1.CRUDResolver)(DTOClass, resolverOpts) {
|
|
47
|
+
constructor(service, pubSub) {
|
|
48
|
+
super(new Service(service));
|
|
49
|
+
this.pubSub = pubSub;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
AutoResolver = (0, tslib_1.__decorate)([
|
|
53
|
+
(0, graphql_1.Resolver)(() => DTOClass),
|
|
54
|
+
(0, tslib_1.__param)(0, (0, nestjs_query_core_1.InjectQueryService)(EntityClass)),
|
|
55
|
+
(0, tslib_1.__param)(1, (0, decorators_1.InjectPubSub)()),
|
|
56
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, graphql_subscriptions_1.PubSub])
|
|
57
|
+
], AutoResolver);
|
|
58
|
+
// need to set class name so DI works properly
|
|
59
|
+
Object.defineProperty(AutoResolver, 'name', { value: getResolverToken(DTOClass), writable: false });
|
|
60
|
+
return AutoResolver;
|
|
61
|
+
}
|
|
62
|
+
function createAssemblerAutoResolver(resolverOpts) {
|
|
63
|
+
const { DTOClass, AssemblerClass } = resolverOpts;
|
|
64
|
+
let AutoResolver = class AutoResolver extends (0, resolvers_1.CRUDResolver)(DTOClass, resolverOpts) {
|
|
65
|
+
constructor(service, pubSub) {
|
|
66
|
+
super(service);
|
|
67
|
+
this.pubSub = pubSub;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
AutoResolver = (0, tslib_1.__decorate)([
|
|
71
|
+
(0, graphql_1.Resolver)(() => DTOClass),
|
|
72
|
+
(0, tslib_1.__param)(0, (0, nestjs_query_core_1.InjectAssemblerQueryService)(AssemblerClass)),
|
|
73
|
+
(0, tslib_1.__param)(1, (0, decorators_1.InjectPubSub)()),
|
|
74
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, graphql_subscriptions_1.PubSub])
|
|
75
|
+
], AutoResolver);
|
|
76
|
+
// need to set class name so DI works properly
|
|
77
|
+
Object.defineProperty(AutoResolver, 'name', { value: getResolverToken(DTOClass), writable: false });
|
|
78
|
+
return AutoResolver;
|
|
79
|
+
}
|
|
80
|
+
function createServiceAutoResolver(resolverOpts) {
|
|
81
|
+
const { DTOClass, ServiceClass } = resolverOpts;
|
|
82
|
+
let AutoResolver = class AutoResolver extends (0, resolvers_1.CRUDResolver)(DTOClass, resolverOpts) {
|
|
83
|
+
constructor(service, pubSub) {
|
|
84
|
+
super(service);
|
|
85
|
+
this.pubSub = pubSub;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
AutoResolver = (0, tslib_1.__decorate)([
|
|
89
|
+
(0, graphql_1.Resolver)(() => DTOClass),
|
|
90
|
+
(0, tslib_1.__param)(0, (0, common_1.Inject)(ServiceClass)),
|
|
91
|
+
(0, tslib_1.__param)(1, (0, decorators_1.InjectPubSub)()),
|
|
92
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, graphql_subscriptions_1.PubSub])
|
|
93
|
+
], AutoResolver);
|
|
94
|
+
// need to set class name so DI works properly
|
|
95
|
+
Object.defineProperty(AutoResolver, 'name', { value: getResolverToken(DTOClass), writable: false });
|
|
96
|
+
return AutoResolver;
|
|
97
|
+
}
|
|
98
|
+
function createResolver(resolverOpts) {
|
|
99
|
+
if ((0, exports.isFederatedResolverOpts)(resolverOpts)) {
|
|
100
|
+
return createFederatedResolver(resolverOpts);
|
|
101
|
+
}
|
|
102
|
+
if ((0, exports.isAssemblerCRUDAutoResolverOpts)(resolverOpts)) {
|
|
103
|
+
return createAssemblerAutoResolver(resolverOpts);
|
|
104
|
+
}
|
|
105
|
+
if ((0, exports.isServiceCRUDAutoResolverOpts)(resolverOpts)) {
|
|
106
|
+
return createServiceAutoResolver(resolverOpts);
|
|
107
|
+
}
|
|
108
|
+
return createEntityAutoResolver(resolverOpts);
|
|
109
|
+
}
|
|
110
|
+
const createResolvers = (opts) => opts.map((opt) => createResolver(opt));
|
|
111
|
+
exports.createResolvers = createResolvers;
|
|
112
|
+
//# sourceMappingURL=resolver.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolver.provider.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/providers/resolver.provider.ts"],"names":[],"mappings":";;;;AAAA,kEAQoC;AACpC,2CAAkD;AAClD,6CAA2C;AAC3C,iEAA+C;AAC/C,8CAA6C;AAC7C,4CAAkF;AAiD3E,MAAM,uBAAuB,GAAG,CACrC,IAAsD,EACA,EAAE,CAAC,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,IAAI,KAAK,WAAW,CAAC;AAF1F,QAAA,uBAAuB,2BAEmE;AAEhG,MAAM,+BAA+B,GAAG,CAC7C,IAAwD,EACiB,EAAE,CAC3E,UAAU,IAAI,IAAI,IAAI,gBAAgB,IAAI,IAAI,CAAC;AAHpC,QAAA,+BAA+B,mCAGK;AAE1C,MAAM,6BAA6B,GAAG,CAC3C,IAAsD,EACe,EAAE,CAAC,UAAU,IAAI,IAAI,IAAI,cAAc,IAAI,IAAI,CAAC;AAF1G,QAAA,6BAA6B,iCAE6E;AAEvH,MAAM,gBAAgB,GAAG,CAAM,QAAoB,EAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,cAAc,CAAC;AAC/F,MAAM,yBAAyB,GAAG,CAAM,QAAoB,EAAU,EAAE,CAAC,GAAG,QAAQ,CAAC,IAAI,uBAAuB,CAAC;AAEjH,SAAS,uBAAuB,CAAe,YAAqD;IAClG,MAAM,EAAE,QAAQ,EAAE,GAAG,YAAY,CAAC;IAGlC,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,8BAAkB,EAAC,QAAQ,CAAC;QACrD,YACyC,OAA4C,EAC1D,MAAc;YAEvC,KAAK,CAAC,OAAO,CAAC,CAAC;YAHwB,YAAO,GAAP,OAAO,CAAqC;YAC1D,WAAM,GAAN,MAAM,CAAQ;QAGzC,CAAC;KACF,CAAA;IAPK,YAAY;QADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAGpB,wBAAA,IAAA,eAAM,EAAC,YAAY,CAAC,OAAO,CAAC,CAAA;QAC5B,wBAAA,IAAA,yBAAY,GAAE,CAAA;8DAAkB,8BAAM;OAHrC,YAAY,CAOjB;IACD,8CAA8C;IAC9C,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,yBAAyB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IAE7G,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,wBAAwB,CAC/B,YAAkE;IAElE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,YAAY,CAAC;IAC/C,MAAM,OAAQ,SAAQ,yCAA8C;QAClE,YAAY,OAAmC;YAC7C,MAAM,SAAS,GAAG,oCAAgB,CAAC,YAAY,CAA0B,QAAQ,EAAE,WAAW,CAAC,CAAC;YAChG,KAAK,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC5B,CAAC;KACF;IAED,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,wBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,YACmC,OAAmC,EAC3C,MAAc;YAEvC,KAAK,CAAC,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YAFH,WAAM,GAAN,MAAM,CAAQ;QAGzC,CAAC;KACF,CAAA;IAPK,YAAY;QADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAGpB,wBAAA,IAAA,sCAAkB,EAAC,WAAW,CAAC,CAAA;QAC/B,wBAAA,IAAA,yBAAY,GAAE,CAAA;8DAAkB,8BAAM;OAHrC,YAAY,CAOjB;IACD,8CAA8C;IAC9C,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpG,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,2BAA2B,CAClC,YAAqE;IAErE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,YAAY,CAAC;IAElD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,wBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,YAEE,OAAgC,EACP,MAAc;YAEvC,KAAK,CAAC,OAAO,CAAC,CAAC;YAFU,WAAM,GAAN,MAAM,CAAQ;QAGzC,CAAC;KACF,CAAA;IARK,YAAY;QADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAGpB,wBAAA,IAAA,+CAA2B,EAAC,cAAmF,CAAC,CAAA;QAEhH,wBAAA,IAAA,yBAAY,GAAE,CAAA;8DAAkB,8BAAM;OAJrC,YAAY,CAQjB;IACD,8CAA8C;IAC9C,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpG,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,yBAAyB,CAChC,YAAoE;IAEpE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,GAAG,YAAY,CAAC;IAEhD,IAAM,YAAY,GAAlB,MAAM,YAAa,SAAQ,IAAA,wBAAY,EAAC,QAAQ,EAAE,YAAY,CAAC;QAC7D,YAAkC,OAAgC,EAA2B,MAAc;YACzG,KAAK,CAAC,OAAO,CAAC,CAAC;YAD4E,WAAM,GAAN,MAAM,CAAQ;QAE3G,CAAC;KACF,CAAA;IAJK,YAAY;QADjB,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,QAAQ,CAAC;QAEV,wBAAA,IAAA,eAAM,EAAC,YAAY,CAAC,CAAA;QAAoC,wBAAA,IAAA,yBAAY,GAAE,CAAA;8DAAkB,8BAAM;OADvG,YAAY,CAIjB;IACD,8CAA8C;IAC9C,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACpG,OAAO,YAAY,CAAC;AACtB,CAAC;AAED,SAAS,cAAc,CACrB,YAA0E;IAE1E,IAAI,IAAA,+BAAuB,EAAC,YAAY,CAAC,EAAE;QACzC,OAAO,uBAAuB,CAAC,YAAY,CAAC,CAAC;KAC9C;IACD,IAAI,IAAA,uCAA+B,EAAC,YAAY,CAAC,EAAE;QACjD,OAAO,2BAA2B,CAAC,YAAY,CAAC,CAAC;KAClD;IACD,IAAI,IAAA,qCAA6B,EAAC,YAAY,CAAC,EAAE;QAC/C,OAAO,yBAAyB,CAAC,YAAY,CAAC,CAAC;KAChD;IACD,OAAO,wBAAwB,CAAC,YAAY,CAAC,CAAC;AAChD,CAAC;AAEM,MAAM,eAAe,GAAG,CAC7B,IAAuF,EAC3E,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;AAF3C,QAAA,eAAe,mBAE4B"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { AggregateQuery, AggregateResponse, Class, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ResolverMethodOpts } from '../decorators';
|
|
3
|
+
import { AggregateArgsType } from '../types';
|
|
4
|
+
import { ResolverClass, ServiceResolver } from './resolver.interface';
|
|
5
|
+
export declare type AggregateResolverOpts = {
|
|
6
|
+
enabled?: boolean;
|
|
7
|
+
} & ResolverMethodOpts;
|
|
8
|
+
export interface AggregateResolver<DTO, QS extends QueryService<DTO, unknown, unknown>> extends ServiceResolver<DTO, QS> {
|
|
9
|
+
aggregate(filter: AggregateArgsType<DTO>, aggregateQuery: AggregateQuery<DTO>, authFilter?: Filter<DTO>): Promise<AggregateResponse<DTO>[]>;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* @internal
|
|
13
|
+
* Mixin to add `read` graphql endpoints.
|
|
14
|
+
*/
|
|
15
|
+
export declare const Aggregateable: <DTO, QS extends QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts?: AggregateResolverOpts) => <B extends Class<ServiceResolver<DTO, QS>>>(BaseClass: B) => Class<AggregateResolver<DTO, QS>> & B;
|
|
16
|
+
export declare const AggregateResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts?: AggregateResolverOpts) => ResolverClass<DTO, QS, AggregateResolver<DTO, QS>>;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateResolver = exports.Aggregateable = 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 lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
|
|
8
|
+
const interceptors_1 = require("../interceptors");
|
|
9
|
+
const common_1 = require("../common");
|
|
10
|
+
const decorators_1 = require("../decorators");
|
|
11
|
+
const types_1 = require("../types");
|
|
12
|
+
const helpers_1 = require("./helpers");
|
|
13
|
+
const resolver_interface_1 = require("./resolver.interface");
|
|
14
|
+
const auth_1 = require("../auth");
|
|
15
|
+
/**
|
|
16
|
+
* @internal
|
|
17
|
+
* Mixin to add `read` graphql endpoints.
|
|
18
|
+
*/
|
|
19
|
+
const Aggregateable = (DTOClass, opts) => (BaseClass) => {
|
|
20
|
+
const { baseNameLower } = (0, common_1.getDTONames)(DTOClass);
|
|
21
|
+
const commonResolverOpts = (0, lodash_omit_1.default)(opts, 'dtoName', 'one', 'many', 'QueryArgs', 'Connection');
|
|
22
|
+
const queryName = `${baseNameLower}Aggregate`;
|
|
23
|
+
const AR = (0, types_1.AggregateResponseType)(DTOClass);
|
|
24
|
+
let AA = class AA extends (0, types_1.AggregateArgsType)(DTOClass) {
|
|
25
|
+
};
|
|
26
|
+
AA = (0, tslib_1.__decorate)([
|
|
27
|
+
(0, graphql_1.ArgsType)()
|
|
28
|
+
], AA);
|
|
29
|
+
let AggregateResolverBase = class AggregateResolverBase extends BaseClass {
|
|
30
|
+
async aggregate(args, query, authFilter) {
|
|
31
|
+
const qa = await (0, helpers_1.transformAndValidate)(AA, args);
|
|
32
|
+
return this.service.aggregate((0, nestjs_query_core_1.mergeFilter)(qa.filter || {}, authFilter ?? {}), query);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
(0, tslib_1.__decorate)([
|
|
36
|
+
(0, decorators_1.SkipIf)(() => !opts || !opts.enabled, (0, decorators_1.ResolverQuery)(() => [AR], { name: queryName }, commonResolverOpts, { interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)] }, opts ?? {})),
|
|
37
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
38
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AggregateQueryParam)()),
|
|
39
|
+
(0, tslib_1.__param)(2, (0, decorators_1.AuthorizerFilter)({
|
|
40
|
+
operationGroup: auth_1.OperationGroup.AGGREGATE,
|
|
41
|
+
many: true,
|
|
42
|
+
})),
|
|
43
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
44
|
+
(0, tslib_1.__metadata)("design:paramtypes", [AA, Object, Object]),
|
|
45
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
46
|
+
], AggregateResolverBase.prototype, "aggregate", null);
|
|
47
|
+
AggregateResolverBase = (0, tslib_1.__decorate)([
|
|
48
|
+
(0, graphql_1.Resolver)(() => AR, { isAbstract: true })
|
|
49
|
+
], AggregateResolverBase);
|
|
50
|
+
return AggregateResolverBase;
|
|
51
|
+
};
|
|
52
|
+
exports.Aggregateable = Aggregateable;
|
|
53
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
54
|
+
const AggregateResolver = (DTOClass, opts) => (0, exports.Aggregateable)(DTOClass, opts)(resolver_interface_1.BaseServiceResolver);
|
|
55
|
+
exports.AggregateResolver = AggregateResolver;
|
|
56
|
+
//# sourceMappingURL=aggregate.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/aggregate.resolver.ts"],"names":[],"mappings":";;;;AAAA,kEAAyH;AACzH,6CAA2D;AAC3D,2EAA+B;AAC/B,kDAAwD;AACxD,sCAAwC;AACxC,8CAAiH;AACjH,oCAAoE;AACpE,uCAAiD;AACjD,6DAA2F;AAC3F,kCAAyC;AAezC;;;GAGG;AACI,MAAM,aAAa,GACxB,CAAsD,QAAoB,EAAE,IAA4B,EAAE,EAAE,CAC5G,CAA4C,SAAY,EAAyC,EAAE;IACjG,MAAM,EAAE,aAAa,EAAE,GAAG,IAAA,oBAAW,EAAC,QAAQ,CAAC,CAAC;IAChD,MAAM,kBAAkB,GAAG,IAAA,qBAAI,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC;IAC3F,MAAM,SAAS,GAAG,GAAG,aAAa,WAAW,CAAC;IAC9C,MAAM,EAAE,GAAG,IAAA,6BAAqB,EAAC,QAAQ,CAAC,CAAC;IAE3C,IAAM,EAAE,GAAR,MAAM,EAAG,SAAQ,IAAA,yBAAiB,EAAC,QAAQ,CAAC;KAAG,CAAA;IAAzC,EAAE;QADP,IAAA,kBAAQ,GAAE;OACL,EAAE,CAAuC;IAG/C,IAAM,qBAAqB,GAA3B,MAAM,qBAAsB,SAAQ,SAAS;QAW3C,KAAK,CAAC,SAAS,CACL,IAAQ,EACO,KAA0B,EAKjD,UAAwB;YAExB,MAAM,EAAE,GAAG,MAAM,IAAA,8BAAoB,EAAC,EAAE,EAAE,IAAI,CAAC,CAAC;YAChD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAA,+BAAW,EAAC,EAAE,CAAC,MAAM,IAAI,EAAE,EAAE,UAAU,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC;QACvF,CAAC;KACF,CAAA;IAZC;QAVC,IAAA,mBAAM,EACL,GAAG,EAAE,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,OAAO,EAC5B,IAAA,0BAAa,EACX,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EACV,EAAE,IAAI,EAAE,SAAS,EAAE,EACnB,kBAAkB,EAClB,EAAE,YAAY,EAAE,CAAC,IAAA,oCAAqB,EAAC,QAAQ,CAAC,CAAC,EAAE,EACnD,IAAI,IAAI,EAAE,CACX,CACF;QAEE,wBAAA,IAAA,cAAI,GAAE,CAAA;QACN,wBAAA,IAAA,gCAAmB,GAAE,CAAA;QACrB,wBAAA,IAAA,6BAAgB,EAAC;YAChB,cAAc,EAAE,qBAAc,CAAC,SAAS;YACxC,IAAI,EAAE,IAAI;SACX,CAAC,CAAA;;sDALY,EAAE;;0DAUjB;IAtBG,qBAAqB;QAD1B,IAAA,kBAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OACnC,qBAAqB,CAuB1B;IACD,OAAO,qBAAqB,CAAC;AAC/B,CAAC,CAAC;AApCS,QAAA,aAAa,iBAoCtB;AACJ,0EAA0E;AACnE,MAAM,iBAAiB,GAAG,CAI/B,QAAoB,EACpB,IAA4B,EACwB,EAAE,CAAC,IAAA,qBAAa,EAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,wCAAmB,CAAC,CAAC;AAN/F,QAAA,iBAAiB,qBAM8E"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This is the doc comment for file1.ts
|
|
3
|
+
* @packageDocumentation
|
|
4
|
+
*/
|
|
5
|
+
import { Class, DeepPartial, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
6
|
+
import { CreateManyInputType, CreateOneInputType, MutationArgsType, SubscriptionArgsType } from '../types';
|
|
7
|
+
import { ResolverClass, ServiceResolver, SubscriptionResolverOpts } from './resolver.interface';
|
|
8
|
+
export declare type CreatedEvent<DTO> = {
|
|
9
|
+
[eventName: string]: DTO;
|
|
10
|
+
};
|
|
11
|
+
export interface CreateResolverOpts<DTO, C = DeepPartial<DTO>> extends SubscriptionResolverOpts {
|
|
12
|
+
/**
|
|
13
|
+
* The Input DTO that should be used to create records.
|
|
14
|
+
*/
|
|
15
|
+
CreateDTOClass?: Class<C>;
|
|
16
|
+
/**
|
|
17
|
+
* The class to be used for `createOne` input.
|
|
18
|
+
*/
|
|
19
|
+
CreateOneInput?: Class<CreateOneInputType<C>>;
|
|
20
|
+
/**
|
|
21
|
+
* The class to be used for `createMany` input.
|
|
22
|
+
*/
|
|
23
|
+
CreateManyInput?: Class<CreateManyInputType<C>>;
|
|
24
|
+
createOneMutationName?: string;
|
|
25
|
+
createManyMutationName?: string;
|
|
26
|
+
}
|
|
27
|
+
export interface CreateResolver<DTO, C, QS extends QueryService<DTO, C, unknown>> extends ServiceResolver<DTO, QS> {
|
|
28
|
+
createOne(input: MutationArgsType<CreateOneInputType<C>>, authorizeFilter?: Filter<DTO>): Promise<DTO>;
|
|
29
|
+
createMany(input: MutationArgsType<CreateManyInputType<C>>, authorizeFilter?: Filter<DTO>): Promise<DTO[]>;
|
|
30
|
+
createdSubscription(input?: SubscriptionArgsType<DTO>, authorizeFilter?: Filter<DTO>): AsyncIterator<CreatedEvent<DTO>>;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* @internal
|
|
34
|
+
* Mixin to add `create` graphql endpoints.
|
|
35
|
+
*/
|
|
36
|
+
export declare const Creatable: <DTO, C, QS extends QueryService<DTO, C, unknown>>(DTOClass: Class<DTO>, opts: CreateResolverOpts<DTO, C>) => <B extends Class<ServiceResolver<DTO, QS>>>(BaseClass: B) => Class<CreateResolver<DTO, C, QS>> & B;
|
|
37
|
+
/**
|
|
38
|
+
* Factory to create a new abstract class that can be extended to add `create` endpoints.
|
|
39
|
+
*
|
|
40
|
+
* Assume we have `TodoItemDTO`, you can create a resolver with `createOneTodoItem` and `createManyTodoItems` graphql
|
|
41
|
+
* query endpoints using the following code.
|
|
42
|
+
*
|
|
43
|
+
* ```ts
|
|
44
|
+
* @Resolver()
|
|
45
|
+
* export class TodoItemResolver extends CreateResolver(TodoItemDTO) {
|
|
46
|
+
* constructor(readonly service: TodoItemService) {
|
|
47
|
+
* super(service);
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
* ```
|
|
51
|
+
*
|
|
52
|
+
* @param DTOClass - The DTO class that should be returned from the `createOne` and `createMany` endpoint.
|
|
53
|
+
* @param opts - Options to customize endpoints.
|
|
54
|
+
* @typeparam DTO - The type of DTO that should be created.
|
|
55
|
+
* @typeparam C - The create DTO type.
|
|
56
|
+
*/
|
|
57
|
+
export declare const CreateResolver: <DTO, C = DeepPartial<DTO>, QS extends QueryService<DTO, C, unknown> = QueryService<DTO, C, unknown>>(DTOClass: Class<DTO>, opts?: CreateResolverOpts<DTO, C>) => ResolverClass<DTO, QS, CreateResolver<DTO, C, QS>>;
|
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateResolver = exports.Creatable = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
const lodash_omit_1 = (0, tslib_1.__importDefault)(require("lodash.omit"));
|
|
7
|
+
const hooks_1 = require("../hooks");
|
|
8
|
+
const common_1 = require("../common");
|
|
9
|
+
const decorators_1 = require("../decorators");
|
|
10
|
+
const interceptors_1 = require("../interceptors");
|
|
11
|
+
const subscription_1 = require("../subscription");
|
|
12
|
+
const types_1 = require("../types");
|
|
13
|
+
const helpers_1 = require("./helpers");
|
|
14
|
+
const resolver_interface_1 = require("./resolver.interface");
|
|
15
|
+
const auth_1 = require("../auth");
|
|
16
|
+
/** @internal */
|
|
17
|
+
const defaultCreateDTO = (dtoNames, DTOClass) => {
|
|
18
|
+
let PartialInput =
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
20
|
+
// @ts-ignore
|
|
21
|
+
class PartialInput extends (0, graphql_1.PartialType)(DTOClass, graphql_1.InputType) {
|
|
22
|
+
};
|
|
23
|
+
PartialInput = (0, tslib_1.__decorate)([
|
|
24
|
+
(0, graphql_1.InputType)(`Create${dtoNames.baseName}`)
|
|
25
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
26
|
+
// @ts-ignore
|
|
27
|
+
], PartialInput);
|
|
28
|
+
return PartialInput;
|
|
29
|
+
};
|
|
30
|
+
/** @internal */
|
|
31
|
+
const defaultCreateOneInput = (dtoNames, InputDTO) => {
|
|
32
|
+
const { baseName, baseNameLower } = dtoNames;
|
|
33
|
+
let CO = class CO extends (0, types_1.CreateOneInputType)(baseNameLower, InputDTO) {
|
|
34
|
+
};
|
|
35
|
+
CO = (0, tslib_1.__decorate)([
|
|
36
|
+
(0, graphql_1.InputType)(`CreateOne${baseName}Input`)
|
|
37
|
+
], CO);
|
|
38
|
+
return CO;
|
|
39
|
+
};
|
|
40
|
+
/** @internal */
|
|
41
|
+
const defaultCreateManyInput = (dtoNames, InputDTO) => {
|
|
42
|
+
const { pluralBaseName, pluralBaseNameLower } = dtoNames;
|
|
43
|
+
let CM = class CM extends (0, types_1.CreateManyInputType)(pluralBaseNameLower, InputDTO) {
|
|
44
|
+
};
|
|
45
|
+
CM = (0, tslib_1.__decorate)([
|
|
46
|
+
(0, graphql_1.InputType)(`CreateMany${pluralBaseName}Input`)
|
|
47
|
+
], CM);
|
|
48
|
+
return CM;
|
|
49
|
+
};
|
|
50
|
+
/**
|
|
51
|
+
* @internal
|
|
52
|
+
* Mixin to add `create` graphql endpoints.
|
|
53
|
+
*/
|
|
54
|
+
const Creatable = (DTOClass, opts) => (BaseClass) => {
|
|
55
|
+
const dtoNames = (0, common_1.getDTONames)(DTOClass, opts);
|
|
56
|
+
const { baseName, pluralBaseName } = dtoNames;
|
|
57
|
+
const enableSubscriptions = opts.enableSubscriptions === true;
|
|
58
|
+
const enableOneSubscriptions = opts.one?.enableSubscriptions ?? enableSubscriptions;
|
|
59
|
+
const enableManySubscriptions = opts.many?.enableSubscriptions ?? enableSubscriptions;
|
|
60
|
+
const createdEvent = (0, subscription_1.getDTOEventName)(subscription_1.EventType.CREATED, DTOClass);
|
|
61
|
+
const { CreateDTOClass = defaultCreateDTO(dtoNames, DTOClass), CreateOneInput = defaultCreateOneInput(dtoNames, CreateDTOClass), CreateManyInput = defaultCreateManyInput(dtoNames, CreateDTOClass), } = opts;
|
|
62
|
+
const createOneMutationName = opts.one?.name ?? `createOne${baseName}`;
|
|
63
|
+
const createManyMutationName = opts.many?.name ?? `createMany${pluralBaseName}`;
|
|
64
|
+
const commonResolverOpts = (0, lodash_omit_1.default)(opts, 'dtoName', 'one', 'many', 'CreateDTOClass', 'CreateOneInput', 'CreateManyInput');
|
|
65
|
+
let CO = class CO extends (0, types_1.MutationArgsType)(CreateOneInput) {
|
|
66
|
+
};
|
|
67
|
+
CO = (0, tslib_1.__decorate)([
|
|
68
|
+
(0, graphql_1.ArgsType)()
|
|
69
|
+
], CO);
|
|
70
|
+
let CM = class CM extends (0, types_1.MutationArgsType)(CreateManyInput) {
|
|
71
|
+
};
|
|
72
|
+
CM = (0, tslib_1.__decorate)([
|
|
73
|
+
(0, graphql_1.ArgsType)()
|
|
74
|
+
], CM);
|
|
75
|
+
let SI = class SI extends (0, types_1.SubscriptionFilterInputType)(DTOClass) {
|
|
76
|
+
};
|
|
77
|
+
SI = (0, tslib_1.__decorate)([
|
|
78
|
+
(0, graphql_1.InputType)(`Create${baseName}SubscriptionFilterInput`)
|
|
79
|
+
], SI);
|
|
80
|
+
let SA = class SA extends (0, types_1.SubscriptionArgsType)(SI) {
|
|
81
|
+
};
|
|
82
|
+
SA = (0, tslib_1.__decorate)([
|
|
83
|
+
(0, graphql_1.ArgsType)()
|
|
84
|
+
], SA);
|
|
85
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
86
|
+
const subscriptionFilter = (0, helpers_1.createSubscriptionFilter)(SI, createdEvent);
|
|
87
|
+
let CreateResolverBase = class CreateResolverBase extends BaseClass {
|
|
88
|
+
async createOne(input, authorizeFilter) {
|
|
89
|
+
// Ignore `authorizeFilter` for now but give users the ability to throw an UnauthorizedException
|
|
90
|
+
const created = await this.service.createOne(input.input.input);
|
|
91
|
+
if (enableOneSubscriptions) {
|
|
92
|
+
await this.publishCreatedEvent(created, authorizeFilter);
|
|
93
|
+
}
|
|
94
|
+
return created;
|
|
95
|
+
}
|
|
96
|
+
async createMany(input, authorizeFilter) {
|
|
97
|
+
// Ignore `authorizeFilter` for now but give users the ability to throw an UnauthorizedException
|
|
98
|
+
const created = await this.service.createMany(input.input.input);
|
|
99
|
+
if (enableManySubscriptions) {
|
|
100
|
+
await Promise.all(created.map((c) => this.publishCreatedEvent(c, authorizeFilter)));
|
|
101
|
+
}
|
|
102
|
+
return created;
|
|
103
|
+
}
|
|
104
|
+
async publishCreatedEvent(dto, authorizeFilter) {
|
|
105
|
+
if (this.pubSub) {
|
|
106
|
+
const eventName = (0, helpers_1.getSubscriptionEventName)(createdEvent, authorizeFilter);
|
|
107
|
+
await this.pubSub.publish(eventName, { [createdEvent]: dto });
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
createdSubscription(input, authorizeFilter) {
|
|
111
|
+
if (!this.pubSub || !(enableManySubscriptions || enableOneSubscriptions)) {
|
|
112
|
+
throw new Error(`Unable to subscribe to ${createdEvent}`);
|
|
113
|
+
}
|
|
114
|
+
const eventName = (0, helpers_1.getSubscriptionEventName)(createdEvent, authorizeFilter);
|
|
115
|
+
return this.pubSub.asyncIterator(eventName);
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
(0, tslib_1.__decorate)([
|
|
119
|
+
(0, decorators_1.ResolverMutation)(() => DTOClass, { name: createOneMutationName, description: opts?.one?.description }, commonResolverOpts, {
|
|
120
|
+
interceptors: [
|
|
121
|
+
(0, interceptors_1.HookInterceptor)(hooks_1.HookTypes.BEFORE_CREATE_ONE, CreateDTOClass, DTOClass),
|
|
122
|
+
(0, interceptors_1.AuthorizerInterceptor)(DTOClass),
|
|
123
|
+
],
|
|
124
|
+
}, opts.one ?? {}),
|
|
125
|
+
(0, tslib_1.__param)(0, (0, decorators_1.MutationHookArgs)()),
|
|
126
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({
|
|
127
|
+
operationGroup: auth_1.OperationGroup.CREATE,
|
|
128
|
+
many: false,
|
|
129
|
+
})),
|
|
130
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
131
|
+
(0, tslib_1.__metadata)("design:paramtypes", [CO, Object]),
|
|
132
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
133
|
+
], CreateResolverBase.prototype, "createOne", null);
|
|
134
|
+
(0, tslib_1.__decorate)([
|
|
135
|
+
(0, decorators_1.ResolverMutation)(() => [DTOClass], { name: createManyMutationName, description: opts?.many?.description }, { ...commonResolverOpts }, {
|
|
136
|
+
interceptors: [
|
|
137
|
+
(0, interceptors_1.HookInterceptor)(hooks_1.HookTypes.BEFORE_CREATE_MANY, CreateDTOClass, DTOClass),
|
|
138
|
+
(0, interceptors_1.AuthorizerInterceptor)(DTOClass),
|
|
139
|
+
],
|
|
140
|
+
}, opts.many ?? {}),
|
|
141
|
+
(0, tslib_1.__param)(0, (0, decorators_1.MutationHookArgs)()),
|
|
142
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({
|
|
143
|
+
operationGroup: auth_1.OperationGroup.CREATE,
|
|
144
|
+
many: true,
|
|
145
|
+
})),
|
|
146
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
147
|
+
(0, tslib_1.__metadata)("design:paramtypes", [CM, Object]),
|
|
148
|
+
(0, tslib_1.__metadata)("design:returntype", Promise)
|
|
149
|
+
], CreateResolverBase.prototype, "createMany", null);
|
|
150
|
+
(0, tslib_1.__decorate)([
|
|
151
|
+
(0, decorators_1.ResolverSubscription)(() => DTOClass, { name: createdEvent, filter: subscriptionFilter }, commonResolverOpts, {
|
|
152
|
+
enableSubscriptions: enableOneSubscriptions || enableManySubscriptions,
|
|
153
|
+
interceptors: [(0, interceptors_1.AuthorizerInterceptor)(DTOClass)],
|
|
154
|
+
}),
|
|
155
|
+
(0, tslib_1.__param)(0, (0, graphql_1.Args)()),
|
|
156
|
+
(0, tslib_1.__param)(1, (0, decorators_1.AuthorizerFilter)({ operationGroup: auth_1.OperationGroup.CREATE, many: false })),
|
|
157
|
+
(0, tslib_1.__metadata)("design:type", Function),
|
|
158
|
+
(0, tslib_1.__metadata)("design:paramtypes", [SA, Object]),
|
|
159
|
+
(0, tslib_1.__metadata)("design:returntype", Object)
|
|
160
|
+
], CreateResolverBase.prototype, "createdSubscription", null);
|
|
161
|
+
CreateResolverBase = (0, tslib_1.__decorate)([
|
|
162
|
+
(0, graphql_1.Resolver)(() => DTOClass, { isAbstract: true })
|
|
163
|
+
], CreateResolverBase);
|
|
164
|
+
return CreateResolverBase;
|
|
165
|
+
};
|
|
166
|
+
exports.Creatable = Creatable;
|
|
167
|
+
/**
|
|
168
|
+
* Factory to create a new abstract class that can be extended to add `create` endpoints.
|
|
169
|
+
*
|
|
170
|
+
* Assume we have `TodoItemDTO`, you can create a resolver with `createOneTodoItem` and `createManyTodoItems` graphql
|
|
171
|
+
* query endpoints using the following code.
|
|
172
|
+
*
|
|
173
|
+
* ```ts
|
|
174
|
+
* @Resolver()
|
|
175
|
+
* export class TodoItemResolver extends CreateResolver(TodoItemDTO) {
|
|
176
|
+
* constructor(readonly service: TodoItemService) {
|
|
177
|
+
* super(service);
|
|
178
|
+
* }
|
|
179
|
+
* }
|
|
180
|
+
* ```
|
|
181
|
+
*
|
|
182
|
+
* @param DTOClass - The DTO class that should be returned from the `createOne` and `createMany` endpoint.
|
|
183
|
+
* @param opts - Options to customize endpoints.
|
|
184
|
+
* @typeparam DTO - The type of DTO that should be created.
|
|
185
|
+
* @typeparam C - The create DTO type.
|
|
186
|
+
*/
|
|
187
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
188
|
+
const CreateResolver = (DTOClass, opts = {}) => (0, exports.Creatable)(DTOClass, opts)(resolver_interface_1.BaseServiceResolver);
|
|
189
|
+
exports.CreateResolver = CreateResolver;
|
|
190
|
+
//# sourceMappingURL=create.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/create.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { Class, DeepPartial, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ConnectionOptions, PagingStrategies } from '../types';
|
|
3
|
+
import { AggregateResolverOpts, AggregateResolver } from './aggregate.resolver';
|
|
4
|
+
import { ReadResolverFromOpts, ReadResolverOpts } from './read.resolver';
|
|
5
|
+
import { CreateResolver, CreateResolverOpts } from './create.resolver';
|
|
6
|
+
import { ReferenceResolverOpts } from './reference.resolver';
|
|
7
|
+
import { MergePagingStrategyOpts, ResolverClass } from './resolver.interface';
|
|
8
|
+
import { UpdateResolver, UpdateResolverOpts } from './update.resolver';
|
|
9
|
+
import { DeleteResolver, DeleteResolverOpts } from './delete.resolver';
|
|
10
|
+
import { BaseResolverOptions } from '../decorators/resolver-method.decorator';
|
|
11
|
+
export interface CRUDResolverOpts<DTO, C = DeepPartial<DTO>, U = DeepPartial<DTO>, R extends ReadResolverOpts<DTO> = ReadResolverOpts<DTO>, PS extends PagingStrategies = PagingStrategies.CURSOR> extends BaseResolverOptions, Pick<ConnectionOptions, 'enableTotalCount'> {
|
|
12
|
+
/**
|
|
13
|
+
* The DTO that should be used as input for create endpoints.
|
|
14
|
+
*/
|
|
15
|
+
CreateDTOClass?: Class<C>;
|
|
16
|
+
/**
|
|
17
|
+
* The DTO that should be used as input for update endpoints.
|
|
18
|
+
*/
|
|
19
|
+
UpdateDTOClass?: Class<U>;
|
|
20
|
+
enableSubscriptions?: boolean;
|
|
21
|
+
pagingStrategy?: PS;
|
|
22
|
+
enableAggregate?: boolean;
|
|
23
|
+
create?: CreateResolverOpts<DTO, C>;
|
|
24
|
+
read?: R;
|
|
25
|
+
update?: UpdateResolverOpts<DTO, U>;
|
|
26
|
+
delete?: DeleteResolverOpts<DTO>;
|
|
27
|
+
referenceBy?: ReferenceResolverOpts;
|
|
28
|
+
aggregate?: AggregateResolverOpts;
|
|
29
|
+
}
|
|
30
|
+
export interface CRUDResolver<DTO, C, U, R extends ReadResolverOpts<DTO>, QS extends QueryService<DTO, C, U> = QueryService<DTO, C, U>> extends CreateResolver<DTO, C, QS>, ReadResolverFromOpts<DTO, R, QS>, UpdateResolver<DTO, U, QS>, DeleteResolver<DTO, QS>, AggregateResolver<DTO, QS> {
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Factory to create a resolver that includes all CRUD methods from [[CreateResolver]], [[ReadResolver]],
|
|
34
|
+
* [[UpdateResolver]], and [[DeleteResolver]].
|
|
35
|
+
*
|
|
36
|
+
* ```ts
|
|
37
|
+
* import { CRUDResolver } from '@ptc-org/nestjs-query-graphql';
|
|
38
|
+
* import { Resolver } from '@nestjs/graphql';
|
|
39
|
+
* import { TodoItemDTO } from './dto/todo-item.dto';
|
|
40
|
+
* import { TodoItemService } from './todo-item.service';
|
|
41
|
+
*
|
|
42
|
+
* @Resolver()
|
|
43
|
+
* export class TodoItemResolver extends CRUDResolver(TodoItemDTO) {
|
|
44
|
+
* constructor(readonly service: TodoItemService) {
|
|
45
|
+
* super(service);
|
|
46
|
+
* }
|
|
47
|
+
* }
|
|
48
|
+
* ```
|
|
49
|
+
* @param DTOClass - The DTO Class that the resolver is for. All methods will use types derived from this class.
|
|
50
|
+
* @param opts - Options to customize the resolver.
|
|
51
|
+
*/
|
|
52
|
+
export declare const CRUDResolver: <DTO, C = DeepPartial<DTO>, U = DeepPartial<DTO>, R extends ReadResolverOpts<DTO> = ReadResolverOpts<DTO>, PS extends PagingStrategies = PagingStrategies.CURSOR>(DTOClass: Class<DTO>, opts?: CRUDResolverOpts<DTO, C, U, R, PS>) => ResolverClass<DTO, QueryService<DTO, C, U>, CRUDResolver<DTO, C, U, MergePagingStrategyOpts<DTO, R, PS>, QueryService<DTO, C, U>>>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CRUDResolver = void 0;
|
|
4
|
+
const aggregate_resolver_1 = require("./aggregate.resolver");
|
|
5
|
+
const relations_1 = require("./relations");
|
|
6
|
+
const read_resolver_1 = require("./read.resolver");
|
|
7
|
+
const create_resolver_1 = require("./create.resolver");
|
|
8
|
+
const reference_resolver_1 = require("./reference.resolver");
|
|
9
|
+
const update_resolver_1 = require("./update.resolver");
|
|
10
|
+
const delete_resolver_1 = require("./delete.resolver");
|
|
11
|
+
const common_1 = require("../common");
|
|
12
|
+
function extractRelatableOpts(opts) {
|
|
13
|
+
const { enableTotalCount, enableAggregate } = opts;
|
|
14
|
+
return (0, common_1.mergeBaseResolverOpts)({ enableAggregate, enableTotalCount }, opts);
|
|
15
|
+
}
|
|
16
|
+
function extractAggregateResolverOpts(opts) {
|
|
17
|
+
const { enableAggregate, aggregate } = opts;
|
|
18
|
+
return (0, common_1.mergeBaseResolverOpts)({ enabled: enableAggregate, ...aggregate }, opts);
|
|
19
|
+
}
|
|
20
|
+
function extractCreateResolverOpts(opts) {
|
|
21
|
+
const { CreateDTOClass, enableSubscriptions, create } = opts;
|
|
22
|
+
return (0, common_1.mergeBaseResolverOpts)({ CreateDTOClass, enableSubscriptions, ...create }, opts);
|
|
23
|
+
}
|
|
24
|
+
function extractReadResolverOpts(opts) {
|
|
25
|
+
const { enableTotalCount, pagingStrategy, read } = opts;
|
|
26
|
+
return (0, common_1.mergeBaseResolverOpts)({ enableTotalCount, pagingStrategy, ...read }, opts);
|
|
27
|
+
}
|
|
28
|
+
function extractUpdateResolverOpts(opts) {
|
|
29
|
+
const { UpdateDTOClass, enableSubscriptions, update } = opts;
|
|
30
|
+
return (0, common_1.mergeBaseResolverOpts)({ UpdateDTOClass, enableSubscriptions, ...update }, opts);
|
|
31
|
+
}
|
|
32
|
+
function extractDeleteResolverOpts(opts) {
|
|
33
|
+
const { enableSubscriptions, delete: deleteArgs } = opts;
|
|
34
|
+
return (0, common_1.mergeBaseResolverOpts)({ enableSubscriptions, ...deleteArgs }, opts);
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Factory to create a resolver that includes all CRUD methods from [[CreateResolver]], [[ReadResolver]],
|
|
38
|
+
* [[UpdateResolver]], and [[DeleteResolver]].
|
|
39
|
+
*
|
|
40
|
+
* ```ts
|
|
41
|
+
* import { CRUDResolver } from '@ptc-org/nestjs-query-graphql';
|
|
42
|
+
* import { Resolver } from '@nestjs/graphql';
|
|
43
|
+
* import { TodoItemDTO } from './dto/todo-item.dto';
|
|
44
|
+
* import { TodoItemService } from './todo-item.service';
|
|
45
|
+
*
|
|
46
|
+
* @Resolver()
|
|
47
|
+
* export class TodoItemResolver extends CRUDResolver(TodoItemDTO) {
|
|
48
|
+
* constructor(readonly service: TodoItemService) {
|
|
49
|
+
* super(service);
|
|
50
|
+
* }
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
* @param DTOClass - The DTO Class that the resolver is for. All methods will use types derived from this class.
|
|
54
|
+
* @param opts - Options to customize the resolver.
|
|
55
|
+
*/
|
|
56
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
57
|
+
const CRUDResolver = (DTOClass, opts = {}) => {
|
|
58
|
+
const referencable = (0, reference_resolver_1.Referenceable)(DTOClass, opts.referenceBy ?? {});
|
|
59
|
+
const relatable = (0, relations_1.Relatable)(DTOClass, extractRelatableOpts(opts));
|
|
60
|
+
const aggregateable = (0, aggregate_resolver_1.Aggregateable)(DTOClass, extractAggregateResolverOpts(opts));
|
|
61
|
+
const creatable = (0, create_resolver_1.Creatable)(DTOClass, extractCreateResolverOpts(opts));
|
|
62
|
+
const readable = (0, read_resolver_1.Readable)(DTOClass, extractReadResolverOpts(opts));
|
|
63
|
+
const updatable = (0, update_resolver_1.Updateable)(DTOClass, extractUpdateResolverOpts(opts));
|
|
64
|
+
const deleteResolver = (0, delete_resolver_1.DeleteResolver)(DTOClass, extractDeleteResolverOpts(opts));
|
|
65
|
+
return referencable(relatable(aggregateable(creatable(readable(updatable(deleteResolver))))));
|
|
66
|
+
};
|
|
67
|
+
exports.CRUDResolver = CRUDResolver;
|
|
68
|
+
//# sourceMappingURL=crud.resolver.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"crud.resolver.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/resolvers/crud.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { Class, DeleteManyResponse, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ResolverClass, ServiceResolver, SubscriptionResolverOpts } from './resolver.interface';
|
|
3
|
+
import { DeleteManyInputType, DeleteOneInputType, MutationArgsType, SubscriptionArgsType } from '../types';
|
|
4
|
+
export declare type DeletedEvent<DTO> = {
|
|
5
|
+
[eventName: string]: DTO;
|
|
6
|
+
};
|
|
7
|
+
export interface DeleteResolverOpts<DTO> extends SubscriptionResolverOpts {
|
|
8
|
+
/**
|
|
9
|
+
* ArgsType for deleteOne mutation.
|
|
10
|
+
*/
|
|
11
|
+
DeleteOneInput?: Class<DeleteOneInputType>;
|
|
12
|
+
/**
|
|
13
|
+
* ArgsType for deleteMany mutation.
|
|
14
|
+
*/
|
|
15
|
+
DeleteManyInput?: Class<DeleteManyInputType<DTO>>;
|
|
16
|
+
/**
|
|
17
|
+
* Use soft delete when doing delete mutation
|
|
18
|
+
*/
|
|
19
|
+
useSoftDelete?: boolean;
|
|
20
|
+
}
|
|
21
|
+
export interface DeleteResolver<DTO, QS extends QueryService<DTO, unknown, unknown>> extends ServiceResolver<DTO, QS> {
|
|
22
|
+
deleteOne(input: MutationArgsType<DeleteOneInputType>, authorizeFilter?: Filter<DTO>): Promise<Partial<DTO>>;
|
|
23
|
+
deleteMany(input: MutationArgsType<DeleteManyInputType<DTO>>, authorizeFilter?: Filter<DTO>): Promise<DeleteManyResponse>;
|
|
24
|
+
deletedOneSubscription(input?: SubscriptionArgsType<DTO>, authorizeFilter?: Filter<DTO>): AsyncIterator<DeletedEvent<Partial<DTO>>>;
|
|
25
|
+
deletedManySubscription(authorizeFilter?: Filter<DTO>): AsyncIterator<DeletedEvent<DeleteManyResponse>>;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* @internal
|
|
29
|
+
* Mixin to add `delete` graphql endpoints.
|
|
30
|
+
*/
|
|
31
|
+
export declare const Deletable: <DTO, QS extends QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts: DeleteResolverOpts<DTO>) => <B extends Class<ServiceResolver<DTO, QS>>>(BaseClass: B) => Class<DeleteResolver<DTO, QS>> & B;
|
|
32
|
+
export declare const DeleteResolver: <DTO, QS extends QueryService<DTO, unknown, unknown> = QueryService<DTO, unknown, unknown>>(DTOClass: Class<DTO>, opts?: DeleteResolverOpts<DTO>) => ResolverClass<DTO, QS, DeleteResolver<DTO, QS>>;
|