@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
|
+
import { AggregateQuery, Class, QueryService, Filter, AggregateResponse } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { NestjsQueryDataloader } from './relations.loader';
|
|
3
|
+
declare type AggregateRelationsArgs<DTO, Relation> = {
|
|
4
|
+
dto: DTO;
|
|
5
|
+
filter: Filter<Relation>;
|
|
6
|
+
aggregate: AggregateQuery<Relation>;
|
|
7
|
+
};
|
|
8
|
+
export declare class AggregateRelationsLoader<DTO, Relation> implements NestjsQueryDataloader<DTO, AggregateRelationsArgs<DTO, Relation>, AggregateResponse<Relation> | Error> {
|
|
9
|
+
readonly RelationDTO: Class<Relation>;
|
|
10
|
+
readonly relationName: string;
|
|
11
|
+
constructor(RelationDTO: Class<Relation>, relationName: string);
|
|
12
|
+
createLoader(service: QueryService<DTO, unknown, unknown>): (queryArgs: ReadonlyArray<AggregateRelationsArgs<DTO, Relation>>) => Promise<(AggregateResponse<Relation> | Error)[]>;
|
|
13
|
+
private loadResults;
|
|
14
|
+
private groupQueries;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.AggregateRelationsLoader = void 0;
|
|
4
|
+
class AggregateRelationsLoader {
|
|
5
|
+
constructor(RelationDTO, relationName) {
|
|
6
|
+
this.RelationDTO = RelationDTO;
|
|
7
|
+
this.relationName = relationName;
|
|
8
|
+
}
|
|
9
|
+
createLoader(service) {
|
|
10
|
+
return async (queryArgs) => {
|
|
11
|
+
// group
|
|
12
|
+
const queryMap = this.groupQueries(queryArgs);
|
|
13
|
+
return this.loadResults(service, queryMap);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async loadResults(service, queryRelationsMap) {
|
|
17
|
+
const results = [];
|
|
18
|
+
await Promise.all([...queryRelationsMap.values()].map(async (args) => {
|
|
19
|
+
const { filter, aggregate } = args[0];
|
|
20
|
+
const dtos = args.map((a) => a.dto);
|
|
21
|
+
const aggregationResults = await service.aggregateRelations(this.RelationDTO, this.relationName, dtos, filter, aggregate);
|
|
22
|
+
const dtoRelationAggregates = dtos.map((dto) => aggregationResults.get(dto) ?? {});
|
|
23
|
+
dtoRelationAggregates.forEach((relationAggregate, index) => {
|
|
24
|
+
results[args[index].index] = relationAggregate;
|
|
25
|
+
});
|
|
26
|
+
}));
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
groupQueries(queryArgs) {
|
|
30
|
+
// group
|
|
31
|
+
return queryArgs.reduce((map, args, index) => {
|
|
32
|
+
const queryJson = JSON.stringify({ filter: args.filter, aggregate: args.aggregate });
|
|
33
|
+
if (!map.has(queryJson)) {
|
|
34
|
+
map.set(queryJson, []);
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
37
|
+
map.get(queryJson).push({ ...args, index });
|
|
38
|
+
return map;
|
|
39
|
+
}, new Map());
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.AggregateRelationsLoader = AggregateRelationsLoader;
|
|
43
|
+
//# sourceMappingURL=aggregate-relations.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"aggregate-relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/aggregate-relations.loader.ts"],"names":[],"mappings":";;;AAUA,MAAa,wBAAwB;IAGnC,YAAqB,WAA4B,EAAW,YAAoB;QAA3D,gBAAW,GAAX,WAAW,CAAiB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAEpF,YAAY,CAAC,OAA4C;QACvD,OAAO,KAAK,EACV,SAA+D,EACb,EAAE;YACpD,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA4C,EAC5C,iBAAuD;QAEvD,MAAM,OAAO,GAAkC,EAAE,CAAC;QAClD,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,kBAAkB,CACzD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,YAAY,EACjB,IAAI,EACJ,MAAM,EACN,SAAS,CACV,CAAC;YACF,MAAM,qBAAqB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACnF,qBAAqB,CAAC,OAAO,CAAC,CAAC,iBAAiB,EAAE,KAAK,EAAE,EAAE;gBACzD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,iBAAiB,CAAC;YACjD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAClB,SAA+D;QAE/D,QAAQ;QACR,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YACrF,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACxB;YACD,oEAAoE;YACpE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAyE,CAAC,CAAC;IACvF,CAAC;CACF;AAtDD,4DAsDC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Class, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { NestjsQueryDataloader } from './relations.loader';
|
|
3
|
+
declare type CountRelationsArgs<DTO, Relation> = {
|
|
4
|
+
dto: DTO;
|
|
5
|
+
filter: Filter<Relation>;
|
|
6
|
+
};
|
|
7
|
+
export declare class CountRelationsLoader<DTO, Relation> implements NestjsQueryDataloader<DTO, CountRelationsArgs<DTO, Relation>, number | Error> {
|
|
8
|
+
readonly RelationDTO: Class<Relation>;
|
|
9
|
+
readonly relationName: string;
|
|
10
|
+
constructor(RelationDTO: Class<Relation>, relationName: string);
|
|
11
|
+
createLoader(service: QueryService<DTO, unknown, unknown>): (queryArgs: ReadonlyArray<CountRelationsArgs<DTO, Relation>>) => Promise<(number | Error)[]>;
|
|
12
|
+
private loadResults;
|
|
13
|
+
private groupQueries;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CountRelationsLoader = void 0;
|
|
4
|
+
class CountRelationsLoader {
|
|
5
|
+
constructor(RelationDTO, relationName) {
|
|
6
|
+
this.RelationDTO = RelationDTO;
|
|
7
|
+
this.relationName = relationName;
|
|
8
|
+
}
|
|
9
|
+
createLoader(service) {
|
|
10
|
+
return async (queryArgs) => {
|
|
11
|
+
// group
|
|
12
|
+
const queryMap = this.groupQueries(queryArgs);
|
|
13
|
+
return this.loadResults(service, queryMap);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async loadResults(service, countRelationsMap) {
|
|
17
|
+
const results = [];
|
|
18
|
+
await Promise.all([...countRelationsMap.values()].map(async (args) => {
|
|
19
|
+
const { filter } = args[0];
|
|
20
|
+
const dtos = args.map((a) => a.dto);
|
|
21
|
+
const relationCountResults = await service.countRelations(this.RelationDTO, this.relationName, dtos, filter);
|
|
22
|
+
const dtoRelations = dtos.map((dto) => relationCountResults.get(dto) ?? 0);
|
|
23
|
+
dtoRelations.forEach((relationCount, index) => {
|
|
24
|
+
results[args[index].index] = relationCount;
|
|
25
|
+
});
|
|
26
|
+
}));
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
groupQueries(countArgs) {
|
|
30
|
+
// group
|
|
31
|
+
return countArgs.reduce((map, args, index) => {
|
|
32
|
+
const filterJson = JSON.stringify(args.filter);
|
|
33
|
+
if (!map.has(filterJson)) {
|
|
34
|
+
map.set(filterJson, []);
|
|
35
|
+
}
|
|
36
|
+
map.get(filterJson)?.push({ ...args, index });
|
|
37
|
+
return map;
|
|
38
|
+
}, new Map());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.CountRelationsLoader = CountRelationsLoader;
|
|
42
|
+
//# sourceMappingURL=count-relations.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"count-relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/count-relations.loader.ts"],"names":[],"mappings":";;;AAMA,MAAa,oBAAoB;IAG/B,YAAqB,WAA4B,EAAW,YAAoB;QAA3D,gBAAW,GAAX,WAAW,CAAiB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAEpF,YAAY,CAAC,OAA4C;QACvD,OAAO,KAAK,EAAE,SAA2D,EAA+B,EAAE;YACxG,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA4C,EAC5C,iBAAmD;QAEnD,MAAM,OAAO,GAAa,EAAE,CAAC;QAC7B,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,oBAAoB,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC7G,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3E,YAAY,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,KAAK,EAAE,EAAE;gBAC5C,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC;YAC7C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,SAA2D;QAC9E,QAAQ;QACR,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACxB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACzB;YACD,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAqE,CAAC,CAAC;IACnF,CAAC;CACF;AA3CD,oDA2CC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ExecutionContext } from '@nestjs/common';
|
|
2
|
+
import Dataloader from 'dataloader';
|
|
3
|
+
export interface NestjsQueryExecutionContext extends ExecutionContext {
|
|
4
|
+
nestjsQueryLoaders?: Record<string, Dataloader<unknown, unknown>>;
|
|
5
|
+
}
|
|
6
|
+
export declare class DataLoaderFactory {
|
|
7
|
+
private static initializeContext;
|
|
8
|
+
static getOrCreateLoader<K, V>(context: NestjsQueryExecutionContext, name: string, handler: Dataloader.BatchLoadFn<K, V>): Dataloader<K, V>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DataLoaderFactory = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const dataloader_1 = (0, tslib_1.__importDefault)(require("dataloader"));
|
|
6
|
+
const cacheKeyFn = (key) =>
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
8
|
+
JSON.stringify(key, (_, v) => (typeof v === 'bigint' ? v.toString() : v));
|
|
9
|
+
class DataLoaderFactory {
|
|
10
|
+
static initializeContext(context) {
|
|
11
|
+
if (!context.nestjsQueryLoaders) {
|
|
12
|
+
// eslint-disable-next-line no-param-reassign
|
|
13
|
+
context.nestjsQueryLoaders = {};
|
|
14
|
+
}
|
|
15
|
+
return context.nestjsQueryLoaders;
|
|
16
|
+
}
|
|
17
|
+
static getOrCreateLoader(context, name, handler) {
|
|
18
|
+
const nestjsQueryLoaders = this.initializeContext(context);
|
|
19
|
+
if (!nestjsQueryLoaders[name]) {
|
|
20
|
+
// eslint-disable-next-line no-param-reassign
|
|
21
|
+
nestjsQueryLoaders[name] = new dataloader_1.default(handler, { cacheKeyFn });
|
|
22
|
+
}
|
|
23
|
+
return nestjsQueryLoaders[name];
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.DataLoaderFactory = DataLoaderFactory;
|
|
27
|
+
//# sourceMappingURL=dataloader.factory.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dataloader.factory.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/dataloader.factory.ts"],"names":[],"mappings":";;;;AACA,yEAAoC;AAEpC,MAAM,UAAU,GAAG,CAAI,GAAM,EAAU,EAAE;AACvC,+DAA+D;AAC/D,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAI5E,MAAa,iBAAiB;IACpB,MAAM,CAAC,iBAAiB,CAAC,OAAoC;QACnE,IAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE;YAC/B,6CAA6C;YAC7C,OAAO,CAAC,kBAAkB,GAAG,EAAE,CAAC;SACjC;QACD,OAAO,OAAO,CAAC,kBAAkB,CAAC;IACpC,CAAC;IAED,MAAM,CAAC,iBAAiB,CACtB,OAAoC,EACpC,IAAY,EACZ,OAAqC;QAErC,MAAM,kBAAkB,GAAG,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,CAAC;QAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE;YAC7B,6CAA6C;YAC7C,kBAAkB,CAAC,IAAI,CAAC,GAAG,IAAI,oBAAU,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;SACpE;QACD,OAAO,kBAAkB,CAAC,IAAI,CAAqB,CAAC;IACtD,CAAC;CACF;AArBD,8CAqBC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Class, Filter, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { NestjsQueryDataloader } from './relations.loader';
|
|
3
|
+
export declare type FindRelationsArgs<DTO, Relation> = {
|
|
4
|
+
dto: DTO;
|
|
5
|
+
filter?: Filter<Relation>;
|
|
6
|
+
};
|
|
7
|
+
export declare class FindRelationsLoader<DTO, Relation> implements NestjsQueryDataloader<DTO, FindRelationsArgs<DTO, Relation>, Relation | undefined | Error> {
|
|
8
|
+
readonly RelationDTO: Class<Relation>;
|
|
9
|
+
readonly relationName: string;
|
|
10
|
+
constructor(RelationDTO: Class<Relation>, relationName: string);
|
|
11
|
+
createLoader(service: QueryService<DTO, unknown, unknown>): (args: ReadonlyArray<FindRelationsArgs<DTO, Relation>>) => Promise<(Relation | undefined | Error)[]>;
|
|
12
|
+
private loadResults;
|
|
13
|
+
private groupFinds;
|
|
14
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.FindRelationsLoader = void 0;
|
|
4
|
+
class FindRelationsLoader {
|
|
5
|
+
constructor(RelationDTO, relationName) {
|
|
6
|
+
this.RelationDTO = RelationDTO;
|
|
7
|
+
this.relationName = relationName;
|
|
8
|
+
}
|
|
9
|
+
createLoader(service) {
|
|
10
|
+
return async (args) => {
|
|
11
|
+
const grouped = this.groupFinds(args);
|
|
12
|
+
return this.loadResults(service, grouped);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
async loadResults(service, findRelationsMap) {
|
|
16
|
+
const results = [];
|
|
17
|
+
await Promise.all([...findRelationsMap.values()].map(async (args) => {
|
|
18
|
+
const { filter } = args[0];
|
|
19
|
+
const dtos = args.map((a) => a.dto);
|
|
20
|
+
const relationResults = await service.findRelation(this.RelationDTO, this.relationName, dtos, { filter });
|
|
21
|
+
const dtoRelations = dtos.map((dto) => relationResults.get(dto));
|
|
22
|
+
dtoRelations.forEach((relation, index) => {
|
|
23
|
+
results[args[index].index] = relation;
|
|
24
|
+
});
|
|
25
|
+
}));
|
|
26
|
+
return results;
|
|
27
|
+
}
|
|
28
|
+
groupFinds(queryArgs) {
|
|
29
|
+
// group
|
|
30
|
+
return queryArgs.reduce((map, args, index) => {
|
|
31
|
+
const filterJson = JSON.stringify(args.filter);
|
|
32
|
+
if (!map.has(filterJson)) {
|
|
33
|
+
map.set(filterJson, []);
|
|
34
|
+
}
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
36
|
+
map.get(filterJson).push({ ...args, index });
|
|
37
|
+
return map;
|
|
38
|
+
}, new Map());
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
exports.FindRelationsLoader = FindRelationsLoader;
|
|
42
|
+
//# sourceMappingURL=find-relations.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"find-relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/find-relations.loader.ts"],"names":[],"mappings":";;;AAMA,MAAa,mBAAmB;IAG9B,YAAqB,WAA4B,EAAW,YAAoB;QAA3D,gBAAW,GAAX,WAAW,CAAiB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAEpF,YAAY,CAAC,OAA4C;QACvD,OAAO,KAAK,EAAE,IAAqD,EAA6C,EAAE;YAChH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YACtC,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA4C,EAC5C,gBAAiD;QAEjD,MAAM,OAAO,GAA6B,EAAE,CAAC;QAC7C,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,gBAAgB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YAChD,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1G,MAAM,YAAY,GAA6B,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3F,YAAY,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAE,EAAE;gBACvC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,QAAQ,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,UAAU,CAAC,SAA0D;QAC3E,QAAQ;QACR,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC/C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;gBACxB,GAAG,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC;aACzB;YACD,oEAAoE;YACpE,GAAG,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC9C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAoE,CAAC,CAAC;IAClF,CAAC;CACF;AA3CD,kDA2CC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./find-relations.loader"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./query-relations.loader"), exports);
|
|
6
|
+
(0, tslib_1.__exportStar)(require("./count-relations.loader"), exports);
|
|
7
|
+
(0, tslib_1.__exportStar)(require("./aggregate-relations.loader"), exports);
|
|
8
|
+
(0, tslib_1.__exportStar)(require("./dataloader.factory"), exports);
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/index.ts"],"names":[],"mappings":";;;AAAA,uEAAwC;AACxC,wEAAyC;AACzC,wEAAyC;AACzC,4EAA6C;AAC7C,oEAAqC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { Class, Query, QueryService } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { NestjsQueryDataloader } from './relations.loader';
|
|
3
|
+
declare type QueryRelationsArgs<DTO, Relation> = {
|
|
4
|
+
dto: DTO;
|
|
5
|
+
query: Query<Relation>;
|
|
6
|
+
};
|
|
7
|
+
export declare class QueryRelationsLoader<DTO, Relation> implements NestjsQueryDataloader<DTO, QueryRelationsArgs<DTO, Relation>, Relation[] | Error> {
|
|
8
|
+
readonly RelationDTO: Class<Relation>;
|
|
9
|
+
readonly relationName: string;
|
|
10
|
+
constructor(RelationDTO: Class<Relation>, relationName: string);
|
|
11
|
+
createLoader(service: QueryService<DTO, unknown, unknown>): (queryArgs: ReadonlyArray<QueryRelationsArgs<DTO, Relation>>) => Promise<(Relation[] | Error)[]>;
|
|
12
|
+
private loadResults;
|
|
13
|
+
private groupQueries;
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.QueryRelationsLoader = void 0;
|
|
4
|
+
class QueryRelationsLoader {
|
|
5
|
+
constructor(RelationDTO, relationName) {
|
|
6
|
+
this.RelationDTO = RelationDTO;
|
|
7
|
+
this.relationName = relationName;
|
|
8
|
+
}
|
|
9
|
+
createLoader(service) {
|
|
10
|
+
return async (queryArgs) => {
|
|
11
|
+
// group
|
|
12
|
+
const queryMap = this.groupQueries(queryArgs);
|
|
13
|
+
return this.loadResults(service, queryMap);
|
|
14
|
+
};
|
|
15
|
+
}
|
|
16
|
+
async loadResults(service, queryRelationsMap) {
|
|
17
|
+
const results = [];
|
|
18
|
+
await Promise.all([...queryRelationsMap.values()].map(async (args) => {
|
|
19
|
+
const { query } = args[0];
|
|
20
|
+
const dtos = args.map((a) => a.dto);
|
|
21
|
+
const relationResults = await service.queryRelations(this.RelationDTO, this.relationName, dtos, query);
|
|
22
|
+
const dtoRelations = dtos.map((dto) => relationResults.get(dto) ?? []);
|
|
23
|
+
dtoRelations.forEach((relations, index) => {
|
|
24
|
+
results[args[index].index] = relations;
|
|
25
|
+
});
|
|
26
|
+
}));
|
|
27
|
+
return results;
|
|
28
|
+
}
|
|
29
|
+
groupQueries(queryArgs) {
|
|
30
|
+
// group
|
|
31
|
+
return queryArgs.reduce((map, args, index) => {
|
|
32
|
+
const queryJson = JSON.stringify(args.query);
|
|
33
|
+
if (!map.has(queryJson)) {
|
|
34
|
+
map.set(queryJson, []);
|
|
35
|
+
}
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
37
|
+
map.get(queryJson).push({ ...args, index });
|
|
38
|
+
return map;
|
|
39
|
+
}, new Map());
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.QueryRelationsLoader = QueryRelationsLoader;
|
|
43
|
+
//# sourceMappingURL=query-relations.loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"query-relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/query-relations.loader.ts"],"names":[],"mappings":";;;AAMA,MAAa,oBAAoB;IAG/B,YAAqB,WAA4B,EAAW,YAAoB;QAA3D,gBAAW,GAAX,WAAW,CAAiB;QAAW,iBAAY,GAAZ,YAAY,CAAQ;IAAG,CAAC;IAEpF,YAAY,CAAC,OAA4C;QACvD,OAAO,KAAK,EAAE,SAA2D,EAAmC,EAAE;YAC5G,QAAQ;YACR,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;QAC7C,CAAC,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,WAAW,CACvB,OAA4C,EAC5C,iBAAmD;QAEnD,MAAM,OAAO,GAAiB,EAAE,CAAC;QACjC,MAAM,OAAO,CAAC,GAAG,CACf,CAAC,GAAG,iBAAiB,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;YACjD,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAC1B,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACpC,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACvG,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;YACvE,YAAY,CAAC,OAAO,CAAC,CAAC,SAAS,EAAE,KAAK,EAAE,EAAE;gBACxC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CACH,CAAC;QACF,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,YAAY,CAAC,SAA2D;QAC9E,QAAQ;QACR,OAAO,SAAS,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE;YAC3C,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAC7C,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE;gBACvB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;aACxB;YACD,oEAAoE;YACpE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAE,CAAC,IAAI,CAAC,EAAE,GAAG,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;YAC7C,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAqE,CAAC,CAAC;IACnF,CAAC;CACF;AA5CD,oDA4CC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relations.loader.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/loader/relations.loader.ts"],"names":[],"mappings":""}
|
package/src/module.d.ts
ADDED
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { Assembler, Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { DynamicModule, ForwardReference, Provider } from '@nestjs/common';
|
|
3
|
+
import { AutoResolverOpts } from './providers';
|
|
4
|
+
import { ReadResolverOpts } from './resolvers';
|
|
5
|
+
import { GraphQLPubSub } from './subscription';
|
|
6
|
+
import { PagingStrategies } from './types/query/paging';
|
|
7
|
+
interface DTOModuleOpts<DTO> {
|
|
8
|
+
DTOClass: Class<DTO>;
|
|
9
|
+
CreateDTOClass?: Class<DTO>;
|
|
10
|
+
UpdateDTOClass?: Class<DTO>;
|
|
11
|
+
}
|
|
12
|
+
export interface NestjsQueryGraphqlModuleOpts {
|
|
13
|
+
imports: Array<Class<any> | DynamicModule | Promise<DynamicModule> | ForwardReference>;
|
|
14
|
+
services?: Provider[];
|
|
15
|
+
assemblers?: Class<Assembler<any, any, any, any, any, any>>[];
|
|
16
|
+
resolvers?: AutoResolverOpts<any, any, unknown, unknown, ReadResolverOpts<any>, PagingStrategies>[];
|
|
17
|
+
dtos?: DTOModuleOpts<unknown>[];
|
|
18
|
+
pubSub?: Provider<GraphQLPubSub>;
|
|
19
|
+
}
|
|
20
|
+
export declare class NestjsQueryGraphQLModule {
|
|
21
|
+
static forFeature(opts: NestjsQueryGraphqlModuleOpts): DynamicModule;
|
|
22
|
+
static defaultPubSubProvider(): Provider<GraphQLPubSub>;
|
|
23
|
+
private static getCoreModule;
|
|
24
|
+
private static getProviders;
|
|
25
|
+
private static getPubSubProviders;
|
|
26
|
+
private static getServicesProviders;
|
|
27
|
+
private static getResolverProviders;
|
|
28
|
+
private static getAuthorizerProviders;
|
|
29
|
+
private static getHookProviders;
|
|
30
|
+
}
|
|
31
|
+
export {};
|
package/src/module.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.NestjsQueryGraphQLModule = void 0;
|
|
4
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
5
|
+
const providers_1 = require("./providers");
|
|
6
|
+
const subscription_1 = require("./subscription");
|
|
7
|
+
class NestjsQueryGraphQLModule {
|
|
8
|
+
static forFeature(opts) {
|
|
9
|
+
const coreModule = this.getCoreModule(opts);
|
|
10
|
+
const providers = this.getProviders(opts);
|
|
11
|
+
return {
|
|
12
|
+
module: NestjsQueryGraphQLModule,
|
|
13
|
+
imports: [...opts.imports, coreModule],
|
|
14
|
+
providers: [...providers],
|
|
15
|
+
exports: [...providers, ...opts.imports, coreModule]
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
static defaultPubSubProvider() {
|
|
19
|
+
return { provide: (0, subscription_1.pubSubToken)(), useValue: (0, subscription_1.defaultPubSub)() };
|
|
20
|
+
}
|
|
21
|
+
static getCoreModule(opts) {
|
|
22
|
+
return nestjs_query_core_1.NestjsQueryCoreModule.forFeature({
|
|
23
|
+
assemblers: opts.assemblers,
|
|
24
|
+
imports: opts.imports
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
static getProviders(opts) {
|
|
28
|
+
return [
|
|
29
|
+
...this.getServicesProviders(opts),
|
|
30
|
+
...this.getPubSubProviders(opts),
|
|
31
|
+
...this.getAuthorizerProviders(opts),
|
|
32
|
+
...this.getHookProviders(opts),
|
|
33
|
+
...this.getResolverProviders(opts)
|
|
34
|
+
];
|
|
35
|
+
}
|
|
36
|
+
static getPubSubProviders(opts) {
|
|
37
|
+
return [opts.pubSub ?? this.defaultPubSubProvider()];
|
|
38
|
+
}
|
|
39
|
+
static getServicesProviders(opts) {
|
|
40
|
+
return opts.services ?? [];
|
|
41
|
+
}
|
|
42
|
+
static getResolverProviders(opts) {
|
|
43
|
+
return (0, providers_1.createResolvers)(opts.resolvers ?? []);
|
|
44
|
+
}
|
|
45
|
+
static getAuthorizerProviders(opts) {
|
|
46
|
+
const resolverDTOs = opts.resolvers?.map((r) => r.DTOClass) ?? [];
|
|
47
|
+
const dtos = opts.dtos?.map((o) => o.DTOClass) ?? [];
|
|
48
|
+
return (0, providers_1.createAuthorizerProviders)([...resolverDTOs, ...dtos]);
|
|
49
|
+
}
|
|
50
|
+
static getHookProviders(opts) {
|
|
51
|
+
return (0, providers_1.createHookProviders)([...(opts.resolvers ?? []), ...(opts.dtos ?? [])]);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
exports.NestjsQueryGraphQLModule = NestjsQueryGraphQLModule;
|
|
55
|
+
//# sourceMappingURL=module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"module.js","sourceRoot":"","sources":["../../../../packages/query-graphql/src/module.ts"],"names":[],"mappings":";;;AAAA,kEAAqF;AAErF,2CAAgH;AAEhH,iDAA2E;AAqB3E,MAAa,wBAAwB;IACnC,MAAM,CAAC,UAAU,CAAC,IAAkC;QAClD,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;QAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC1C,OAAO;YACL,MAAM,EAAE,wBAAwB;YAChC,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;YACtC,SAAS,EAAE,CAAC,GAAG,SAAS,CAAC;YACzB,OAAO,EAAE,CAAC,GAAG,SAAS,EAAE,GAAG,IAAI,CAAC,OAAO,EAAE,UAAU,CAAC;SACrD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,qBAAqB;QAC1B,OAAO,EAAE,OAAO,EAAE,IAAA,0BAAW,GAAE,EAAE,QAAQ,EAAE,IAAA,4BAAa,GAAE,EAAE,CAAC;IAC/D,CAAC;IAEO,MAAM,CAAC,aAAa,CAAC,IAAkC;QAC7D,OAAO,yCAAqB,CAAC,UAAU,CAAC;YACtC,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,YAAY,CAAC,IAAkC;QAC5D,OAAO;YACL,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;YAClC,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAChC,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;YACpC,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC;YAC9B,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC;SACnC,CAAC;IACJ,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAAC,IAAkC;QAClE,OAAO,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC,CAAC;IACvD,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,IAAkC;QACpE,OAAO,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC7B,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,IAAkC;QACpE,OAAO,IAAA,2BAAe,EAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAEO,MAAM,CAAC,sBAAsB,CAAC,IAAkC;QACtE,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAClE,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACrD,OAAO,IAAA,qCAAyB,EAAC,CAAC,GAAG,YAAY,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;IAC/D,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,IAAkC;QAChE,OAAO,IAAA,+BAAmB,EAAC,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAChF,CAAC;CACF;AAtDD,4DAsDC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createAuthorizerProviders = void 0;
|
|
4
|
+
const auth_1 = require("../auth");
|
|
5
|
+
const decorators_1 = require("../decorators");
|
|
6
|
+
function createServiceProvider(DTOClass) {
|
|
7
|
+
const token = (0, auth_1.getAuthorizerToken)(DTOClass);
|
|
8
|
+
const authorizer = (0, decorators_1.getAuthorizer)(DTOClass);
|
|
9
|
+
if (!authorizer) {
|
|
10
|
+
// create default authorizer in case any relations have an authorizers
|
|
11
|
+
return { provide: token, useClass: (0, auth_1.createDefaultAuthorizer)(DTOClass, { authorize: () => ({}) }) };
|
|
12
|
+
}
|
|
13
|
+
return { provide: token, useClass: authorizer };
|
|
14
|
+
}
|
|
15
|
+
function createCustomAuthorizerProvider(DTOClass) {
|
|
16
|
+
const token = (0, auth_1.getCustomAuthorizerToken)(DTOClass);
|
|
17
|
+
const customAuthorizer = (0, decorators_1.getCustomAuthorizer)(DTOClass);
|
|
18
|
+
if (customAuthorizer) {
|
|
19
|
+
return { provide: token, useClass: customAuthorizer };
|
|
20
|
+
}
|
|
21
|
+
return undefined;
|
|
22
|
+
}
|
|
23
|
+
const createAuthorizerProviders = (DTOClasses) => DTOClasses.reduce((providers, DTOClass) => {
|
|
24
|
+
const p = createCustomAuthorizerProvider(DTOClass);
|
|
25
|
+
if (p)
|
|
26
|
+
providers.push(p);
|
|
27
|
+
providers.push(createServiceProvider(DTOClass));
|
|
28
|
+
return providers;
|
|
29
|
+
}, []);
|
|
30
|
+
exports.createAuthorizerProviders = createAuthorizerProviders;
|
|
31
|
+
//# sourceMappingURL=authorizer.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authorizer.provider.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/providers/authorizer.provider.ts"],"names":[],"mappings":";;;AAEA,kCAAgG;AAChG,8CAAmE;AAEnE,SAAS,qBAAqB,CAAM,QAAoB;IACtD,MAAM,KAAK,GAAG,IAAA,yBAAkB,EAAC,QAAQ,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,IAAA,0BAAa,EAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,CAAC,UAAU,EAAE;QACf,sEAAsE;QACtE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAA,8BAAuB,EAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;KACnG;IACD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;AAClD,CAAC;AAED,SAAS,8BAA8B,CAAM,QAAoB;IAC/D,MAAM,KAAK,GAAG,IAAA,+BAAwB,EAAC,QAAQ,CAAC,CAAC;IACjD,MAAM,gBAAgB,GAAG,IAAA,gCAAmB,EAAC,QAAQ,CAAC,CAAC;IACvD,IAAI,gBAAgB,EAAE;QACpB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC;KACvD;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAEM,MAAM,yBAAyB,GAAG,CAAC,UAA4B,EAAc,EAAE,CACpF,UAAU,CAAC,MAAM,CAAa,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE;IACpD,MAAM,CAAC,GAAG,8BAA8B,CAAC,QAAQ,CAAC,CAAC;IACnD,IAAI,CAAC;QAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACzB,SAAS,CAAC,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAChD,OAAO,SAAS,CAAC;AACnB,CAAC,EAAE,EAAE,CAAC,CAAC;AANI,QAAA,yBAAyB,6BAM7B"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { Provider } from '@nestjs/common';
|
|
2
|
+
import { CRUDAutoResolverOpts } from './resolver.provider';
|
|
3
|
+
import { PagingStrategies } from '../types';
|
|
4
|
+
export declare type HookProviderOptions<DTO, C, U> = Pick<CRUDAutoResolverOpts<DTO, C, U, unknown, PagingStrategies>, 'DTOClass' | 'CreateDTOClass' | 'UpdateDTOClass'>;
|
|
5
|
+
export declare const createHookProviders: (opts: HookProviderOptions<unknown, unknown, unknown>[]) => Provider[];
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createHookProviders = void 0;
|
|
4
|
+
const decorators_1 = require("../decorators");
|
|
5
|
+
const hooks_1 = require("../hooks");
|
|
6
|
+
function createHookProvider(hookType, ...DTOClass) {
|
|
7
|
+
return DTOClass.reduce((p, cls) => {
|
|
8
|
+
if (p) {
|
|
9
|
+
return p;
|
|
10
|
+
}
|
|
11
|
+
const maybeHook = (0, decorators_1.getHookForType)(hookType, cls);
|
|
12
|
+
if (maybeHook) {
|
|
13
|
+
return { provide: (0, hooks_1.getHookToken)(hookType, cls), useClass: maybeHook };
|
|
14
|
+
}
|
|
15
|
+
return undefined;
|
|
16
|
+
}, undefined);
|
|
17
|
+
}
|
|
18
|
+
function getHookProviders(opts) {
|
|
19
|
+
const { DTOClass, CreateDTOClass = DTOClass, UpdateDTOClass = DTOClass } = opts;
|
|
20
|
+
return [
|
|
21
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_CREATE_ONE, CreateDTOClass, DTOClass),
|
|
22
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_CREATE_MANY, CreateDTOClass, DTOClass),
|
|
23
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_UPDATE_ONE, UpdateDTOClass, DTOClass),
|
|
24
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_UPDATE_MANY, UpdateDTOClass, DTOClass),
|
|
25
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_DELETE_ONE, DTOClass),
|
|
26
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_DELETE_MANY, DTOClass),
|
|
27
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_QUERY_MANY, DTOClass),
|
|
28
|
+
createHookProvider(hooks_1.HookTypes.BEFORE_FIND_ONE, DTOClass),
|
|
29
|
+
].filter((p) => !!p);
|
|
30
|
+
}
|
|
31
|
+
const createHookProviders = (opts) => opts.reduce((ps, opt) => [...ps, ...getHookProviders(opt)], []);
|
|
32
|
+
exports.createHookProviders = createHookProviders;
|
|
33
|
+
//# sourceMappingURL=hook.provider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hook.provider.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/providers/hook.provider.ts"],"names":[],"mappings":";;;AAGA,8CAA+C;AAC/C,oCAAmD;AAQnD,SAAS,kBAAkB,CAAC,QAAmB,EAAE,GAAG,QAA0B;IAC5E,OAAO,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAuB,EAAE,GAAG,EAAE,EAAE;QACtD,IAAI,CAAC,EAAE;YACL,OAAO,CAAC,CAAC;SACV;QACD,MAAM,SAAS,GAAG,IAAA,2BAAc,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE;YACb,OAAO,EAAE,OAAO,EAAE,IAAA,oBAAY,EAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC;SACtE;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,SAAS,CAAC,CAAC;AAChB,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAoD;IAC5E,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,QAAQ,EAAE,cAAc,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC;IAChF,OAAO;QACL,kBAAkB,CAAC,iBAAS,CAAC,iBAAiB,EAAE,cAAc,EAAE,QAAQ,CAAC;QACzE,kBAAkB,CAAC,iBAAS,CAAC,kBAAkB,EAAE,cAAc,EAAE,QAAQ,CAAC;QAC1E,kBAAkB,CAAC,iBAAS,CAAC,iBAAiB,EAAE,cAAc,EAAE,QAAQ,CAAC;QACzE,kBAAkB,CAAC,iBAAS,CAAC,kBAAkB,EAAE,cAAc,EAAE,QAAQ,CAAC;QAC1E,kBAAkB,CAAC,iBAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QACzD,kBAAkB,CAAC,iBAAS,CAAC,kBAAkB,EAAE,QAAQ,CAAC;QAC1D,kBAAkB,CAAC,iBAAS,CAAC,iBAAiB,EAAE,QAAQ,CAAC;QACzD,kBAAkB,CAAC,iBAAS,CAAC,eAAe,EAAE,QAAQ,CAAC;KACxD,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAe,CAAC;AACrC,CAAC;AAEM,MAAM,mBAAmB,GAAG,CAAC,IAAsD,EAAc,EAAE,CACxG,IAAI,CAAC,MAAM,CAAC,CAAC,EAAc,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC,GAAG,EAAE,EAAE,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AADjE,QAAA,mBAAmB,uBAC8C"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./resolver.provider"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./authorizer.provider"), exports);
|
|
6
|
+
(0, tslib_1.__exportStar)(require("./hook.provider"), exports);
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/providers/index.ts"],"names":[],"mappings":";;;AAAA,mEAAoC;AACpC,qEAAsC;AACtC,+DAAgC"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { Provider } from '@nestjs/common';
|
|
3
|
+
import { CRUDResolverOpts } from '../resolvers';
|
|
4
|
+
import { PagingStrategies } from '../types/query/paging';
|
|
5
|
+
export declare type CRUDAutoResolverOpts<DTO, C, U, R, PS extends PagingStrategies> = CRUDResolverOpts<DTO, C, U, R, PS> & {
|
|
6
|
+
DTOClass: Class<DTO>;
|
|
7
|
+
};
|
|
8
|
+
export declare type EntityCRUDAutoResolverOpts<DTO, Entity, C, U, R, PS extends PagingStrategies> = CRUDAutoResolverOpts<DTO, C, U, R, PS> & {
|
|
9
|
+
EntityClass: Class<Entity>;
|
|
10
|
+
};
|
|
11
|
+
export declare type AssemblerCRUDAutoResolverOpts<DTO, Assembler, C, U, R, PS extends PagingStrategies> = CRUDAutoResolverOpts<DTO, C, U, R, PS> & {
|
|
12
|
+
AssemblerClass: Class<Assembler>;
|
|
13
|
+
};
|
|
14
|
+
export declare type ServiceCRUDAutoResolverOpts<DTO, QueryService, C, U, R, PS extends PagingStrategies> = CRUDAutoResolverOpts<DTO, C, U, R, PS> & {
|
|
15
|
+
ServiceClass: Class<QueryService>;
|
|
16
|
+
};
|
|
17
|
+
export declare type FederatedAutoResolverOpts<DTO, Service> = {
|
|
18
|
+
type: 'federated';
|
|
19
|
+
DTOClass: Class<DTO>;
|
|
20
|
+
Service: Class<Service>;
|
|
21
|
+
};
|
|
22
|
+
export declare type AutoResolverOpts<DTO, EntityServiceOrAssembler, C, U, R, PS extends PagingStrategies> = EntityCRUDAutoResolverOpts<DTO, EntityServiceOrAssembler, C, U, R, PS> | AssemblerCRUDAutoResolverOpts<DTO, EntityServiceOrAssembler, C, U, R, PS> | ServiceCRUDAutoResolverOpts<DTO, EntityServiceOrAssembler, C, U, R, PS> | FederatedAutoResolverOpts<DTO, EntityServiceOrAssembler>;
|
|
23
|
+
export declare const isFederatedResolverOpts: <DTO, MaybeService, C, U, R, PS extends PagingStrategies>(opts: AutoResolverOpts<DTO, MaybeService, C, U, R, PS>) => opts is FederatedAutoResolverOpts<DTO, MaybeService>;
|
|
24
|
+
export declare const isAssemblerCRUDAutoResolverOpts: <DTO, MaybeAssembler, C, U, R, PS extends PagingStrategies>(opts: AutoResolverOpts<DTO, MaybeAssembler, C, U, R, PS>) => opts is AssemblerCRUDAutoResolverOpts<DTO, MaybeAssembler, C, U, R, PS>;
|
|
25
|
+
export declare const isServiceCRUDAutoResolverOpts: <DTO, MaybeService, C, U, R, PS extends PagingStrategies>(opts: AutoResolverOpts<DTO, MaybeService, C, U, R, PS>) => opts is ServiceCRUDAutoResolverOpts<DTO, MaybeService, C, U, R, PS>;
|
|
26
|
+
export declare const createResolvers: (opts: AutoResolverOpts<unknown, unknown, unknown, unknown, unknown, PagingStrategies>[]) => Provider[];
|