@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,88 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LimitOffsetPagerStrategy = void 0;
|
|
4
|
+
const helpers_1 = require("./helpers");
|
|
5
|
+
class LimitOffsetPagerStrategy {
|
|
6
|
+
toCursor(dto, index, pagingOpts) {
|
|
7
|
+
return LimitOffsetPagerStrategy.offsetToCursor(pagingOpts.offset + index);
|
|
8
|
+
}
|
|
9
|
+
fromCursorArgs(cursor) {
|
|
10
|
+
const isForward = (0, helpers_1.isForwardPaging)(cursor);
|
|
11
|
+
const isBackward = (0, helpers_1.isBackwardPaging)(cursor);
|
|
12
|
+
const hasBefore = (0, helpers_1.hasBeforeCursor)(cursor);
|
|
13
|
+
return { limit: this.getLimit(cursor), offset: this.getOffset(cursor), isForward, isBackward, hasBefore };
|
|
14
|
+
}
|
|
15
|
+
isEmptyCursor(opts) {
|
|
16
|
+
return opts.offset === 0;
|
|
17
|
+
}
|
|
18
|
+
createQuery(query, opts, includeExtraNode) {
|
|
19
|
+
const { isBackward } = opts;
|
|
20
|
+
const paging = { limit: opts.limit, offset: opts.offset };
|
|
21
|
+
if (includeExtraNode) {
|
|
22
|
+
// Add 1 to the limit so we will fetch an additional node
|
|
23
|
+
paging.limit += 1;
|
|
24
|
+
// if paging backwards remove one from the offset to check for a previous page.
|
|
25
|
+
if (isBackward) {
|
|
26
|
+
paging.offset -= 1;
|
|
27
|
+
}
|
|
28
|
+
if (paging.offset < 0) {
|
|
29
|
+
// if the offset is < 0 it means we underflowed and that we cant have an extra page.
|
|
30
|
+
paging.offset = 0;
|
|
31
|
+
paging.limit = opts.limit;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
return { ...query, paging };
|
|
35
|
+
}
|
|
36
|
+
checkForExtraNode(nodes, opts) {
|
|
37
|
+
const returnNodes = [...nodes];
|
|
38
|
+
// check if we have an additional node
|
|
39
|
+
// if paging forward that indicates we have a next page
|
|
40
|
+
// if paging backward that indicates we have a previous page.
|
|
41
|
+
const hasExtraNode = nodes.length > opts.limit;
|
|
42
|
+
if (hasExtraNode) {
|
|
43
|
+
// remove the additional node so its not returned in the results.
|
|
44
|
+
if (opts.isForward) {
|
|
45
|
+
returnNodes.pop();
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
returnNodes.shift();
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return returnNodes;
|
|
52
|
+
}
|
|
53
|
+
getLimit(cursor) {
|
|
54
|
+
if ((0, helpers_1.isBackwardPaging)(cursor)) {
|
|
55
|
+
const { last = 0, before } = cursor;
|
|
56
|
+
const offsetFromCursor = before ? LimitOffsetPagerStrategy.cursorToOffset(before) : 0;
|
|
57
|
+
const offset = offsetFromCursor - last;
|
|
58
|
+
// Check to see if our before-page is underflowing past the 0th item
|
|
59
|
+
if (offset < 0) {
|
|
60
|
+
// Adjust the limit with the underflow value
|
|
61
|
+
return Math.max(last + offset, 0);
|
|
62
|
+
}
|
|
63
|
+
return last;
|
|
64
|
+
}
|
|
65
|
+
return cursor.first || 0;
|
|
66
|
+
}
|
|
67
|
+
getOffset(cursor) {
|
|
68
|
+
if ((0, helpers_1.isBackwardPaging)(cursor)) {
|
|
69
|
+
const { last, before } = cursor;
|
|
70
|
+
const beforeOffset = before ? LimitOffsetPagerStrategy.cursorToOffset(before) : 0;
|
|
71
|
+
const offset = last ? beforeOffset - last : 0;
|
|
72
|
+
// Check to see if our before-page is underflowing past the 0th item
|
|
73
|
+
return Math.max(offset, 0);
|
|
74
|
+
}
|
|
75
|
+
const { after } = cursor;
|
|
76
|
+
const offset = after ? LimitOffsetPagerStrategy.cursorToOffset(after) + 1 : 0;
|
|
77
|
+
return Math.max(offset, 0);
|
|
78
|
+
}
|
|
79
|
+
static offsetToCursor(offset) {
|
|
80
|
+
return (0, helpers_1.encodeBase64)(`${this.CURSOR_PREFIX}${String(offset)}`);
|
|
81
|
+
}
|
|
82
|
+
static cursorToOffset(cursor) {
|
|
83
|
+
return parseInt((0, helpers_1.decodeBase64)(cursor).substring(this.CURSOR_PREFIX.length), 10);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.LimitOffsetPagerStrategy = LimitOffsetPagerStrategy;
|
|
87
|
+
LimitOffsetPagerStrategy.CURSOR_PREFIX = 'arrayconnection:';
|
|
88
|
+
//# sourceMappingURL=limit-offset.pager-strategy.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"limit-offset.pager-strategy.js","sourceRoot":"","sources":["../../../../../../../../../packages/query-graphql/src/types/connection/cursor/pager/strategies/limit-offset.pager-strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Query, SortField } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { CursorPagingType } from '../../../../query';
|
|
3
|
+
export interface OffsetPagingOpts {
|
|
4
|
+
offset: number;
|
|
5
|
+
limit: number;
|
|
6
|
+
isForward: boolean;
|
|
7
|
+
isBackward: boolean;
|
|
8
|
+
hasBefore: boolean;
|
|
9
|
+
}
|
|
10
|
+
export declare type KeySetField<DTO, K extends keyof DTO> = {
|
|
11
|
+
field: K;
|
|
12
|
+
value: DTO[K];
|
|
13
|
+
};
|
|
14
|
+
export declare type KeySetCursorPayload<DTO> = {
|
|
15
|
+
type: 'keyset';
|
|
16
|
+
fields: KeySetField<DTO, keyof DTO>[];
|
|
17
|
+
};
|
|
18
|
+
export interface KeySetPagingOpts<DTO> {
|
|
19
|
+
payload?: KeySetCursorPayload<DTO>;
|
|
20
|
+
limit: number;
|
|
21
|
+
defaultSort: SortField<DTO>[];
|
|
22
|
+
isForward: boolean;
|
|
23
|
+
isBackward: boolean;
|
|
24
|
+
hasBefore: boolean;
|
|
25
|
+
}
|
|
26
|
+
export declare type CursorPagingOpts<DTO> = OffsetPagingOpts | KeySetPagingOpts<DTO>;
|
|
27
|
+
export interface PagerStrategy<DTO> {
|
|
28
|
+
toCursor(dto: DTO, index: number, opts: CursorPagingOpts<DTO>, query: Query<DTO>): string;
|
|
29
|
+
fromCursorArgs(cursor: CursorPagingType): CursorPagingOpts<DTO>;
|
|
30
|
+
isEmptyCursor(opts: CursorPagingOpts<DTO>): boolean;
|
|
31
|
+
createQuery<Q extends Query<DTO>>(query: Q, opts: CursorPagingOpts<DTO>, includeExtraNode: boolean): Q;
|
|
32
|
+
checkForExtraNode(nodes: DTO[], opts: CursorPagingOpts<DTO>): DTO[];
|
|
33
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pager-strategy.js","sourceRoot":"","sources":["../../../../../../../../../packages/query-graphql/src/types/connection/cursor/pager/strategies/pager-strategy.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { StaticConnectionType, OffsetPageInfoType, OffsetConnectionType, EdgeType, PageInfoType, CursorConnectionType, ArrayConnectionType, ConnectionType, ConnectionOptions, CursorConnectionOptions, OffsetConnectionOptions, ArrayConnectionOptions, InferConnectionTypeFromStrategy, } from './interfaces';
|
|
2
|
+
export { getOrCreateCursorConnectionType } from './cursor';
|
|
3
|
+
export { getOrCreateOffsetConnectionType } from './offset';
|
|
4
|
+
export { getOrCreateArrayConnectionType } from './array-connection.type';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrCreateArrayConnectionType = exports.getOrCreateOffsetConnectionType = exports.getOrCreateCursorConnectionType = void 0;
|
|
4
|
+
var cursor_1 = require("./cursor");
|
|
5
|
+
Object.defineProperty(exports, "getOrCreateCursorConnectionType", { enumerable: true, get: function () { return cursor_1.getOrCreateCursorConnectionType; } });
|
|
6
|
+
var offset_1 = require("./offset");
|
|
7
|
+
Object.defineProperty(exports, "getOrCreateOffsetConnectionType", { enumerable: true, get: function () { return offset_1.getOrCreateOffsetConnectionType; } });
|
|
8
|
+
var array_connection_type_1 = require("./array-connection.type");
|
|
9
|
+
Object.defineProperty(exports, "getOrCreateArrayConnectionType", { enumerable: true, get: function () { return array_connection_type_1.getOrCreateArrayConnectionType; } });
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/connection/index.ts"],"names":[],"mappings":";;;AAeA,mCAA2D;AAAlD,yHAAA,+BAA+B,OAAA;AACxC,mCAA2D;AAAlD,yHAAA,+BAA+B,OAAA;AACxC,iEAAyE;AAAhE,uIAAA,8BAA8B,OAAA"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { Class, Filter, Query } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { ReturnTypeFuncValue } from '@nestjs/graphql';
|
|
3
|
+
import { ConnectionCursorType } from '../cursor.scalar';
|
|
4
|
+
import { PagingStrategies } from '../query';
|
|
5
|
+
interface BaseConnectionOptions {
|
|
6
|
+
enableTotalCount?: boolean;
|
|
7
|
+
connectionName?: string;
|
|
8
|
+
disableKeySetPagination?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface CursorConnectionOptions extends BaseConnectionOptions {
|
|
11
|
+
pagingStrategy?: PagingStrategies.CURSOR;
|
|
12
|
+
}
|
|
13
|
+
export interface OffsetConnectionOptions extends BaseConnectionOptions {
|
|
14
|
+
pagingStrategy?: PagingStrategies.OFFSET;
|
|
15
|
+
}
|
|
16
|
+
export interface ArrayConnectionOptions extends BaseConnectionOptions {
|
|
17
|
+
pagingStrategy?: PagingStrategies.NONE;
|
|
18
|
+
}
|
|
19
|
+
export declare type ConnectionOptions = CursorConnectionOptions | OffsetConnectionOptions | ArrayConnectionOptions;
|
|
20
|
+
export interface EdgeType<DTO> {
|
|
21
|
+
node: DTO;
|
|
22
|
+
cursor: ConnectionCursorType;
|
|
23
|
+
}
|
|
24
|
+
export interface PageInfoType {
|
|
25
|
+
hasNextPage: boolean;
|
|
26
|
+
hasPreviousPage: boolean;
|
|
27
|
+
startCursor?: ConnectionCursorType | undefined;
|
|
28
|
+
endCursor?: ConnectionCursorType | undefined;
|
|
29
|
+
}
|
|
30
|
+
export declare type CursorConnectionType<DTO> = {
|
|
31
|
+
pageInfo: PageInfoType;
|
|
32
|
+
edges: EdgeType<DTO>[];
|
|
33
|
+
totalCount?: Promise<number>;
|
|
34
|
+
};
|
|
35
|
+
export interface OffsetPageInfoType {
|
|
36
|
+
hasNextPage: boolean;
|
|
37
|
+
hasPreviousPage: boolean;
|
|
38
|
+
}
|
|
39
|
+
export declare type OffsetConnectionType<DTO> = {
|
|
40
|
+
pageInfo: OffsetPageInfoType;
|
|
41
|
+
totalCount?: Promise<number>;
|
|
42
|
+
nodes: DTO[];
|
|
43
|
+
};
|
|
44
|
+
export declare type ArrayConnectionType<DTO> = DTO[];
|
|
45
|
+
export declare type ConnectionType<DTO> = OffsetConnectionType<DTO> | CursorConnectionType<DTO> | ArrayConnectionType<DTO>;
|
|
46
|
+
export declare type InferConnectionTypeFromStrategy<DTO, S extends PagingStrategies> = S extends PagingStrategies.NONE ? ArrayConnectionType<DTO> : S extends PagingStrategies.OFFSET ? OffsetConnectionType<DTO> : S extends PagingStrategies.CURSOR ? CursorConnectionType<DTO> : never;
|
|
47
|
+
export declare type QueryMany<DTO, Q extends Query<DTO>> = (query: Q) => Promise<DTO[]>;
|
|
48
|
+
export declare type Count<DTO> = (filter: Filter<DTO>) => Promise<number>;
|
|
49
|
+
export declare type CountFn = () => Promise<number>;
|
|
50
|
+
export declare type PagerResult = {
|
|
51
|
+
totalCount: CountFn;
|
|
52
|
+
};
|
|
53
|
+
export interface Pager<DTO, R extends PagerResult> {
|
|
54
|
+
page<Q extends Query<DTO>>(queryMany: QueryMany<DTO, Q>, query: Q, count: Count<DTO>): Promise<R>;
|
|
55
|
+
}
|
|
56
|
+
export interface StaticConnectionType<DTO, S extends PagingStrategies> extends Class<InferConnectionTypeFromStrategy<DTO, S>> {
|
|
57
|
+
resolveType: ReturnTypeFuncValue;
|
|
58
|
+
createFromPromise<Q extends Query<DTO>>(queryMany: QueryMany<DTO, Q>, query: Q, count?: Count<DTO>): Promise<InferConnectionTypeFromStrategy<DTO, S>>;
|
|
59
|
+
}
|
|
60
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../packages/query-graphql/src/types/connection/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const tslib_1 = require("tslib");
|
|
4
|
+
(0, tslib_1.__exportStar)(require("./offset-connection.type"), exports);
|
|
5
|
+
(0, tslib_1.__exportStar)(require("./offset-page-info.type"), exports);
|
|
6
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../packages/query-graphql/src/types/connection/offset/index.ts"],"names":[],"mappings":";;;AAAA,wEAAyC;AACzC,uEAAwC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { PagingStrategies } from '../../query';
|
|
3
|
+
import { OffsetConnectionOptions, StaticConnectionType } from '../interfaces';
|
|
4
|
+
export declare function getOrCreateOffsetConnectionType<DTO>(TItemClass: Class<DTO>, opts: OffsetConnectionOptions): StaticConnectionType<DTO, PagingStrategies.OFFSET>;
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrCreateOffsetConnectionType = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
const nestjs_query_core_1 = require("@ptc-org/nestjs-query-core");
|
|
7
|
+
const common_1 = require("@nestjs/common");
|
|
8
|
+
const decorators_1 = require("../../../decorators");
|
|
9
|
+
const common_2 = require("../../../common");
|
|
10
|
+
const pager_1 = require("./pager");
|
|
11
|
+
const offset_page_info_type_1 = require("./offset-page-info.type");
|
|
12
|
+
const DEFAULT_COUNT = () => Promise.reject(new common_1.NotImplementedException('totalCount not implemented'));
|
|
13
|
+
const reflector = new nestjs_query_core_1.MapReflector('nestjs-query:offset-connection-type');
|
|
14
|
+
function getOrCreateConnectionName(DTOClass, opts) {
|
|
15
|
+
const { connectionName } = opts;
|
|
16
|
+
if (connectionName) {
|
|
17
|
+
return connectionName;
|
|
18
|
+
}
|
|
19
|
+
const objName = (0, common_2.getGraphqlObjectName)(DTOClass, 'Unable to make OffsetConnectionType.');
|
|
20
|
+
return `${objName}OffsetConnection`;
|
|
21
|
+
}
|
|
22
|
+
function getOrCreateOffsetConnectionType(TItemClass, opts) {
|
|
23
|
+
const connectionName = getOrCreateConnectionName(TItemClass, opts);
|
|
24
|
+
return reflector.memoize(TItemClass, connectionName, () => {
|
|
25
|
+
var AbstractConnection_1;
|
|
26
|
+
const pager = (0, pager_1.createPager)();
|
|
27
|
+
const PIT = (0, offset_page_info_type_1.getOrCreateOffsetPageInfoType)();
|
|
28
|
+
let AbstractConnection = AbstractConnection_1 = class AbstractConnection {
|
|
29
|
+
constructor(pageInfo, nodes, totalCountFn) {
|
|
30
|
+
this.pageInfo = pageInfo ?? { hasNextPage: false, hasPreviousPage: false };
|
|
31
|
+
this.nodes = nodes ?? [];
|
|
32
|
+
this.totalCountFn = totalCountFn ?? DEFAULT_COUNT;
|
|
33
|
+
}
|
|
34
|
+
static get resolveType() {
|
|
35
|
+
return this;
|
|
36
|
+
}
|
|
37
|
+
static async createFromPromise(queryMany, query, count) {
|
|
38
|
+
const { pageInfo, nodes, totalCount } = await pager.page(queryMany, query, count ?? DEFAULT_COUNT);
|
|
39
|
+
return new AbstractConnection_1(
|
|
40
|
+
// create the appropriate graphql instance
|
|
41
|
+
new PIT(pageInfo.hasNextPage, pageInfo.hasPreviousPage), nodes, totalCount);
|
|
42
|
+
}
|
|
43
|
+
get totalCount() {
|
|
44
|
+
return this.totalCountFn();
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
(0, tslib_1.__decorate)([
|
|
48
|
+
(0, graphql_1.Field)(() => PIT, { description: 'Paging information' }),
|
|
49
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
50
|
+
], AbstractConnection.prototype, "pageInfo", void 0);
|
|
51
|
+
(0, tslib_1.__decorate)([
|
|
52
|
+
(0, graphql_1.Field)(() => [TItemClass], { description: 'Array of nodes.' }),
|
|
53
|
+
(0, tslib_1.__metadata)("design:type", Array)
|
|
54
|
+
], AbstractConnection.prototype, "nodes", void 0);
|
|
55
|
+
(0, tslib_1.__decorate)([
|
|
56
|
+
(0, decorators_1.SkipIf)(() => !opts.enableTotalCount, (0, graphql_1.Field)(() => graphql_1.Int, { description: 'Fetch total count of records' })),
|
|
57
|
+
(0, tslib_1.__metadata)("design:type", Promise),
|
|
58
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
59
|
+
], AbstractConnection.prototype, "totalCount", null);
|
|
60
|
+
AbstractConnection = AbstractConnection_1 = (0, tslib_1.__decorate)([
|
|
61
|
+
(0, graphql_1.ObjectType)(connectionName),
|
|
62
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Object, Array, Function])
|
|
63
|
+
], AbstractConnection);
|
|
64
|
+
return AbstractConnection;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
exports.getOrCreateOffsetConnectionType = getOrCreateOffsetConnectionType;
|
|
68
|
+
//# sourceMappingURL=offset-connection.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offset-connection.type.js","sourceRoot":"","sources":["../../../../../../../packages/query-graphql/src/types/connection/offset/offset-connection.type.ts"],"names":[],"mappings":";;;;AAAA,6CAAyD;AACzD,kEAAwE;AACxE,2CAAyD;AAEzD,oDAA6C;AAU7C,4CAAuD;AACvD,mCAAsC;AACtC,mEAAwE;AAExE,MAAM,aAAa,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,gCAAuB,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAEtG,MAAM,SAAS,GAAG,IAAI,gCAAY,CAAC,qCAAqC,CAAC,CAAC;AAE1E,SAAS,yBAAyB,CAAM,QAAoB,EAAE,IAA6B;IACzF,MAAM,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC;IAChC,IAAI,cAAc,EAAE;QAClB,OAAO,cAAc,CAAC;KACvB;IACD,MAAM,OAAO,GAAG,IAAA,6BAAoB,EAAC,QAAQ,EAAE,sCAAsC,CAAC,CAAC;IACvF,OAAO,GAAG,OAAO,kBAAkB,CAAC;AACtC,CAAC;AAED,SAAgB,+BAA+B,CAC7C,UAAsB,EACtB,IAA6B;IAE7B,MAAM,cAAc,GAAG,yBAAyB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;IACnE,OAAO,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,EAAE;;QACxD,MAAM,KAAK,GAAG,IAAA,mBAAW,GAAO,CAAC;QACjC,MAAM,GAAG,GAAG,IAAA,qDAA6B,GAAE,CAAC;QAE5C,IAAM,kBAAkB,0BAAxB,MAAM,kBAAkB;YAqBtB,YAAY,QAA6B,EAAE,KAAa,EAAE,YAAsB;gBAC9E,IAAI,CAAC,QAAQ,GAAG,QAAQ,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC;gBAC3E,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,EAAE,CAAC;gBACzB,IAAI,CAAC,YAAY,GAAG,YAAY,IAAI,aAAa,CAAC;YACpD,CAAC;YAxBD,MAAM,KAAK,WAAW;gBACpB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,CAAC,KAAK,CAAC,iBAAiB,CAC5B,SAA4B,EAC5B,KAAQ,EACR,KAAkB;gBAElB,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,EAAE,KAAK,IAAI,aAAa,CAAC,CAAC;gBACnG,OAAO,IAAI,oBAAkB;gBAC3B,0CAA0C;gBAC1C,IAAI,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,QAAQ,CAAC,eAAe,CAAC,EACvD,KAAK,EACL,UAAU,CACX,CAAC;YACJ,CAAC;YAiBD,IAAI,UAAU;gBACZ,OAAO,IAAI,CAAC,YAAY,EAAE,CAAC;YAC7B,CAAC;SACF,CAAA;QATC;YADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,oBAAoB,EAAE,CAAC;;4DAC1B;QAG9B;YADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,iBAAiB,EAAE,CAAC;;yDAChD;QAGd;YADC,IAAA,mBAAM,EAAC,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,aAAG,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC,CAAC;;;4DAGvG;QApCG,kBAAkB;YADvB,IAAA,oBAAU,EAAC,cAAc,CAAC;;WACrB,kBAAkB,CAqCvB;QACD,OAAO,kBAAkB,CAAC;IAC5B,CAAC,CAAC,CAAC;AACL,CAAC;AAjDD,0EAiDC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { OffsetPageInfoType } from '../interfaces';
|
|
2
|
+
export interface OffsetPageInfoTypeConstructor {
|
|
3
|
+
new (hasNextPage: boolean, hasPreviousPage: boolean): OffsetPageInfoType;
|
|
4
|
+
}
|
|
5
|
+
export declare const getOrCreateOffsetPageInfoType: () => OffsetPageInfoTypeConstructor;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getOrCreateOffsetPageInfoType = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
6
|
+
/** @internal */
|
|
7
|
+
let pageInfoType = null;
|
|
8
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
9
|
+
const getOrCreateOffsetPageInfoType = () => {
|
|
10
|
+
if (pageInfoType) {
|
|
11
|
+
return pageInfoType;
|
|
12
|
+
}
|
|
13
|
+
let PageInfoTypeImpl = class PageInfoTypeImpl {
|
|
14
|
+
constructor(hasNextPage, hasPreviousPage) {
|
|
15
|
+
this.hasNextPage = hasNextPage;
|
|
16
|
+
this.hasPreviousPage = hasPreviousPage;
|
|
17
|
+
}
|
|
18
|
+
};
|
|
19
|
+
(0, tslib_1.__decorate)([
|
|
20
|
+
(0, graphql_1.Field)(() => Boolean, { nullable: true, description: 'true if paging forward and there are more records.' }),
|
|
21
|
+
(0, tslib_1.__metadata)("design:type", Boolean)
|
|
22
|
+
], PageInfoTypeImpl.prototype, "hasNextPage", void 0);
|
|
23
|
+
(0, tslib_1.__decorate)([
|
|
24
|
+
(0, graphql_1.Field)(() => Boolean, { nullable: true, description: 'true if paging backwards and there are more records.' }),
|
|
25
|
+
(0, tslib_1.__metadata)("design:type", Boolean)
|
|
26
|
+
], PageInfoTypeImpl.prototype, "hasPreviousPage", void 0);
|
|
27
|
+
PageInfoTypeImpl = (0, tslib_1.__decorate)([
|
|
28
|
+
(0, graphql_1.ObjectType)('OffsetPageInfo'),
|
|
29
|
+
(0, tslib_1.__metadata)("design:paramtypes", [Boolean, Boolean])
|
|
30
|
+
], PageInfoTypeImpl);
|
|
31
|
+
pageInfoType = PageInfoTypeImpl;
|
|
32
|
+
return pageInfoType;
|
|
33
|
+
};
|
|
34
|
+
exports.getOrCreateOffsetPageInfoType = getOrCreateOffsetPageInfoType;
|
|
35
|
+
//# sourceMappingURL=offset-page-info.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"offset-page-info.type.js","sourceRoot":"","sources":["../../../../../../../packages/query-graphql/src/types/connection/offset/offset-page-info.type.ts"],"names":[],"mappings":";;;;AAAA,6CAAoD;AAQpD,gBAAgB;AAChB,IAAI,YAAY,GAAqC,IAAI,CAAC;AAC1D,0EAA0E;AACnE,MAAM,6BAA6B,GAAG,GAAkC,EAAE;IAC/E,IAAI,YAAY,EAAE;QAChB,OAAO,YAAY,CAAC;KACrB;IAGD,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;QACpB,YAAY,WAAoB,EAAE,eAAwB;YACxD,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;YAC/B,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;QACzC,CAAC;KAOF,CAAA;IAJC;QADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,oDAAoD,EAAE,CAAC;;yDACvF;IAGrB;QADC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,WAAW,EAAE,sDAAsD,EAAE,CAAC;;6DACrF;IAVrB,gBAAgB;QADrB,IAAA,oBAAU,EAAC,gBAAgB,CAAC;;OACvB,gBAAgB,CAWrB;IAED,YAAY,GAAG,gBAAgB,CAAC;IAChC,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC;AArBW,QAAA,6BAA6B,iCAqBxC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.createPager = void 0;
|
|
4
|
+
const pager_1 = require("./pager");
|
|
5
|
+
// default pager factory to plug in addition paging strategies later on.
|
|
6
|
+
const createPager = () => new pager_1.OffsetPager();
|
|
7
|
+
exports.createPager = createPager;
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../packages/query-graphql/src/types/connection/offset/pager/index.ts"],"names":[],"mappings":";;;AAEA,mCAAsC;AAItC,wEAAwE;AACjE,MAAM,WAAW,GAAG,GAA4C,EAAE,CAAC,IAAI,mBAAW,EAAO,CAAC;AAApF,QAAA,WAAW,eAAyE"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Paging, Query } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { OffsetConnectionType, PagerResult } from '../../interfaces';
|
|
3
|
+
export declare type OffsetPagingOpts = Required<Paging>;
|
|
4
|
+
export interface OffsetPagingMeta<DTO> {
|
|
5
|
+
opts: OffsetPagingOpts;
|
|
6
|
+
query: Query<DTO>;
|
|
7
|
+
}
|
|
8
|
+
export interface QueryResults<DTO> {
|
|
9
|
+
nodes: DTO[];
|
|
10
|
+
hasExtraNode: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare type OffsetPagerResult<DTO> = PagerResult & Omit<OffsetConnectionType<DTO>, 'totalCount'>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../../../../../../packages/query-graphql/src/types/connection/offset/pager/interfaces.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { Query } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
import { Count, Pager, QueryMany } from '../../interfaces';
|
|
3
|
+
import { OffsetPagerResult } from './interfaces';
|
|
4
|
+
export declare class OffsetPager<DTO> implements Pager<DTO, OffsetPagerResult<DTO>> {
|
|
5
|
+
page<Q extends Query<DTO>>(queryMany: QueryMany<DTO, Q>, query: Q, count: Count<DTO>): Promise<OffsetPagerResult<DTO>>;
|
|
6
|
+
private isValidPaging;
|
|
7
|
+
private runQuery;
|
|
8
|
+
private getPageMeta;
|
|
9
|
+
private createPagingResult;
|
|
10
|
+
private createQuery;
|
|
11
|
+
private checkForExtraNode;
|
|
12
|
+
}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.OffsetPager = void 0;
|
|
4
|
+
const EMPTY_PAGING_RESULTS = () => ({
|
|
5
|
+
nodes: [],
|
|
6
|
+
pageInfo: { hasNextPage: false, hasPreviousPage: false },
|
|
7
|
+
totalCount: () => Promise.resolve(0),
|
|
8
|
+
});
|
|
9
|
+
const DEFAULT_PAGING_META = (query) => ({
|
|
10
|
+
opts: { offset: 0, limit: 0 },
|
|
11
|
+
query,
|
|
12
|
+
});
|
|
13
|
+
class OffsetPager {
|
|
14
|
+
async page(queryMany, query, count) {
|
|
15
|
+
const pagingMeta = this.getPageMeta(query);
|
|
16
|
+
if (!this.isValidPaging(pagingMeta)) {
|
|
17
|
+
return EMPTY_PAGING_RESULTS();
|
|
18
|
+
}
|
|
19
|
+
const results = await this.runQuery(queryMany, query, pagingMeta);
|
|
20
|
+
return this.createPagingResult(results, pagingMeta, () => count(query.filter ?? {}));
|
|
21
|
+
}
|
|
22
|
+
isValidPaging(pagingMeta) {
|
|
23
|
+
return pagingMeta.opts.limit > 0;
|
|
24
|
+
}
|
|
25
|
+
async runQuery(queryMany, query, pagingMeta) {
|
|
26
|
+
const windowedQuery = this.createQuery(query, pagingMeta);
|
|
27
|
+
const nodes = await queryMany(windowedQuery);
|
|
28
|
+
const returnNodes = this.checkForExtraNode(nodes, pagingMeta.opts);
|
|
29
|
+
const hasExtraNode = returnNodes.length !== nodes.length;
|
|
30
|
+
return { nodes: returnNodes, hasExtraNode };
|
|
31
|
+
}
|
|
32
|
+
getPageMeta(query) {
|
|
33
|
+
const { limit = 0, offset = 0 } = query.paging ?? {};
|
|
34
|
+
if (!limit) {
|
|
35
|
+
return DEFAULT_PAGING_META(query);
|
|
36
|
+
}
|
|
37
|
+
return { opts: { limit, offset }, query };
|
|
38
|
+
}
|
|
39
|
+
createPagingResult(results, pagingMeta, totalCount) {
|
|
40
|
+
const { nodes, hasExtraNode } = results;
|
|
41
|
+
const pageInfo = {
|
|
42
|
+
hasNextPage: hasExtraNode,
|
|
43
|
+
// we have a previous page if we are going backwards and have an extra node.
|
|
44
|
+
hasPreviousPage: pagingMeta.opts.offset > 0,
|
|
45
|
+
};
|
|
46
|
+
return { nodes, pageInfo, totalCount };
|
|
47
|
+
}
|
|
48
|
+
createQuery(query, pagingMeta) {
|
|
49
|
+
const { limit, offset } = pagingMeta.opts;
|
|
50
|
+
return { ...query, paging: { limit: limit + 1, offset } };
|
|
51
|
+
}
|
|
52
|
+
checkForExtraNode(nodes, opts) {
|
|
53
|
+
const returnNodes = [...nodes];
|
|
54
|
+
const hasExtraNode = nodes.length > opts.limit;
|
|
55
|
+
if (hasExtraNode) {
|
|
56
|
+
returnNodes.pop();
|
|
57
|
+
}
|
|
58
|
+
return returnNodes;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
exports.OffsetPager = OffsetPager;
|
|
62
|
+
//# sourceMappingURL=pager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pager.js","sourceRoot":"","sources":["../../../../../../../../packages/query-graphql/src/types/connection/offset/pager/pager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
export interface CreateManyInputType<C> {
|
|
3
|
+
input: C[];
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The abstract input type for create many input types.
|
|
7
|
+
* @param fieldName - the name of field to be exposed in the graphql schema
|
|
8
|
+
* @param InputClass - the InputType to be used.
|
|
9
|
+
*/
|
|
10
|
+
export declare function CreateManyInputType<C>(fieldName: string, InputClass: Class<C>): Class<CreateManyInputType<C>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateManyInputType = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
8
|
+
/**
|
|
9
|
+
* The abstract input type for create many input types.
|
|
10
|
+
* @param fieldName - the name of field to be exposed in the graphql schema
|
|
11
|
+
* @param InputClass - the InputType to be used.
|
|
12
|
+
*/
|
|
13
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
14
|
+
function CreateManyInputType(fieldName, InputClass) {
|
|
15
|
+
var _a;
|
|
16
|
+
let CreateManyInput = class CreateManyInput {
|
|
17
|
+
get [_a = fieldName]() {
|
|
18
|
+
return this.input;
|
|
19
|
+
}
|
|
20
|
+
set [fieldName](input) {
|
|
21
|
+
this.input = input;
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
(0, tslib_1.__decorate)([
|
|
25
|
+
(0, class_transformer_1.Type)(() => InputClass),
|
|
26
|
+
(0, class_validator_1.ArrayNotEmpty)(),
|
|
27
|
+
(0, class_validator_1.ValidateNested)({ each: true }),
|
|
28
|
+
(0, graphql_1.Field)(() => [InputClass], { description: 'Array of records to create', name: fieldName }),
|
|
29
|
+
(0, tslib_1.__metadata)("design:type", Array)
|
|
30
|
+
], CreateManyInput.prototype, "input", void 0);
|
|
31
|
+
(0, tslib_1.__decorate)([
|
|
32
|
+
(0, class_transformer_1.Type)(() => InputClass),
|
|
33
|
+
(0, tslib_1.__metadata)("design:type", Array),
|
|
34
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
35
|
+
], CreateManyInput.prototype, _a, null);
|
|
36
|
+
CreateManyInput = (0, tslib_1.__decorate)([
|
|
37
|
+
(0, graphql_1.InputType)({ isAbstract: true })
|
|
38
|
+
], CreateManyInput);
|
|
39
|
+
return CreateManyInput;
|
|
40
|
+
}
|
|
41
|
+
exports.CreateManyInputType = CreateManyInputType;
|
|
42
|
+
//# sourceMappingURL=create-many-input.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-many-input.type.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/types/create-many-input.type.ts"],"names":[],"mappings":";;;;AACA,yDAAyC;AACzC,qDAAgE;AAChE,6CAAmD;AAMnD;;;;GAIG;AACH,0EAA0E;AAC1E,SAAgB,mBAAmB,CAAI,SAAiB,EAAE,UAAoB;;IAE5E,IAAM,eAAe,GAArB,MAAM,eAAe;QAQnB,IAAI,MAAC,SAAS,CAAC;YACb,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,KAAU;YACxB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;KACF,CAAA;IAVC;QAJC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;QACtB,IAAA,+BAAa,GAAE;QACf,IAAA,gCAAc,EAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;QAC9B,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,EAAE,WAAW,EAAE,4BAA4B,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;kDAC9E;IAGZ;QADC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;;;2CAGtB;IAVG,eAAe;QADpB,IAAA,mBAAS,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OAC1B,eAAe,CAepB;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAnBD,kDAmBC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Class } from '@ptc-org/nestjs-query-core';
|
|
2
|
+
export interface CreateOneInputType<C> {
|
|
3
|
+
input: C;
|
|
4
|
+
}
|
|
5
|
+
/**
|
|
6
|
+
* The abstract input type for create one operations.
|
|
7
|
+
*
|
|
8
|
+
* @param fieldName - The name of the field to be exposed in the graphql schema
|
|
9
|
+
* @param InputClass - The InputType to be used.
|
|
10
|
+
*/
|
|
11
|
+
export declare function CreateOneInputType<C>(fieldName: string, InputClass: Class<C>): Class<CreateOneInputType<C>>;
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CreateOneInputType = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const class_transformer_1 = require("class-transformer");
|
|
6
|
+
const class_validator_1 = require("class-validator");
|
|
7
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
8
|
+
/**
|
|
9
|
+
* The abstract input type for create one operations.
|
|
10
|
+
*
|
|
11
|
+
* @param fieldName - The name of the field to be exposed in the graphql schema
|
|
12
|
+
* @param InputClass - The InputType to be used.
|
|
13
|
+
*/
|
|
14
|
+
// eslint-disable-next-line @typescript-eslint/no-redeclare -- intentional
|
|
15
|
+
function CreateOneInputType(fieldName, InputClass) {
|
|
16
|
+
var _a;
|
|
17
|
+
let CreateOneInput = class CreateOneInput {
|
|
18
|
+
get [_a = fieldName]() {
|
|
19
|
+
return this.input;
|
|
20
|
+
}
|
|
21
|
+
set [fieldName](input) {
|
|
22
|
+
this.input = input;
|
|
23
|
+
}
|
|
24
|
+
};
|
|
25
|
+
(0, tslib_1.__decorate)([
|
|
26
|
+
(0, class_transformer_1.Type)(() => InputClass),
|
|
27
|
+
(0, class_validator_1.ValidateNested)(),
|
|
28
|
+
(0, graphql_1.Field)(() => InputClass, { description: 'The record to create', name: fieldName }),
|
|
29
|
+
(0, tslib_1.__metadata)("design:type", Object)
|
|
30
|
+
], CreateOneInput.prototype, "input", void 0);
|
|
31
|
+
(0, tslib_1.__decorate)([
|
|
32
|
+
(0, class_transformer_1.Type)(() => InputClass),
|
|
33
|
+
(0, tslib_1.__metadata)("design:type", Object),
|
|
34
|
+
(0, tslib_1.__metadata)("design:paramtypes", [])
|
|
35
|
+
], CreateOneInput.prototype, _a, null);
|
|
36
|
+
CreateOneInput = (0, tslib_1.__decorate)([
|
|
37
|
+
(0, graphql_1.InputType)({ isAbstract: true })
|
|
38
|
+
], CreateOneInput);
|
|
39
|
+
return CreateOneInput;
|
|
40
|
+
}
|
|
41
|
+
exports.CreateOneInputType = CreateOneInputType;
|
|
42
|
+
//# sourceMappingURL=create-one-input.type.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"create-one-input.type.js","sourceRoot":"","sources":["../../../../../packages/query-graphql/src/types/create-one-input.type.ts"],"names":[],"mappings":";;;;AACA,yDAAyC;AACzC,qDAAiD;AACjD,6CAAmD;AAMnD;;;;;GAKG;AACH,0EAA0E;AAC1E,SAAgB,kBAAkB,CAAI,SAAiB,EAAE,UAAoB;;IAE3E,IAAM,cAAc,GAApB,MAAM,cAAc;QAOlB,IAAI,MAAC,SAAS,CAAC;YACb,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC;QAED,IAAI,CAAC,SAAS,CAAC,CAAC,KAAQ;YACtB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACrB,CAAC;KACF,CAAA;IAVC;QAHC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;QACtB,IAAA,gCAAc,GAAE;QAChB,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,UAAU,EAAE,EAAE,WAAW,EAAE,sBAAsB,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;;iDACxE;IAGV;QADC,IAAA,wBAAI,EAAC,GAAG,EAAE,CAAC,UAAU,CAAC;;;0CAGtB;IATG,cAAc;QADnB,IAAA,mBAAS,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;OAC1B,cAAc,CAcnB;IACD,OAAO,cAAc,CAAC;AACxB,CAAC;AAlBD,gDAkBC"}
|