@infrab4a/connect 1.0.0-beta.8 → 1.0.0
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/bundles/infrab4a-connect.umd.js +2173 -267
- package/bundles/infrab4a-connect.umd.js.map +1 -1
- package/domain/catalog/models/category.d.ts +5 -4
- package/domain/catalog/models/index.d.ts +3 -2
- package/domain/catalog/models/kit-product.d.ts +12 -0
- package/domain/catalog/models/product.d.ts +9 -4
- package/domain/catalog/models/types/product-review.type.d.ts +10 -8
- package/domain/catalog/models/variant.d.ts +7 -3
- package/domain/catalog/repositories/category.repository.d.ts +1 -1
- package/domain/catalog/repositories/product.repository.d.ts +10 -3
- package/domain/catalog/repositories/subscription-product.repository.d.ts +1 -1
- package/domain/catalog/repositories/variant.repository.d.ts +1 -1
- package/domain/generic/model/base.model.d.ts +10 -0
- package/domain/{general → generic}/model/index.d.ts +0 -1
- package/domain/generic/model/types/base-model-builder.type.d.ts +15 -0
- package/domain/generic/model/types/identifier-model.type.d.ts +7 -0
- package/domain/{general → generic}/model/types/index.d.ts +2 -0
- package/domain/generic/model/types/model-base-structure.type.d.ts +6 -0
- package/domain/generic/model/types/non-function-properties.type.d.ts +12 -0
- package/domain/generic/model/types/non-function-property-name.type.d.ts +4 -0
- package/domain/generic/repository/create.repository.d.ts +8 -0
- package/domain/generic/repository/crud.repository.d.ts +19 -0
- package/domain/generic/repository/delete.repository.d.ts +7 -0
- package/domain/{general → generic}/repository/enums/where.enum.d.ts +5 -2
- package/domain/generic/repository/find.repository.d.ts +11 -0
- package/domain/generic/repository/get.repository.d.ts +5 -0
- package/domain/generic/repository/read.repository.d.ts +14 -0
- package/domain/{general → generic}/repository/types/index.d.ts +1 -0
- package/domain/generic/repository/types/repository-find-filters.type.d.ts +13 -0
- package/domain/{general → generic}/repository/types/repository-update-params.type.d.ts +4 -4
- package/domain/generic/repository/types/where-options.type.d.ts +2 -0
- package/domain/generic/repository/update.repository.d.ts +6 -0
- package/domain/index.d.ts +1 -1
- package/domain/location/models/address.d.ts +3 -2
- package/domain/shop-settings/models/home.d.ts +3 -3
- package/domain/shop-settings/models/shop-menu.d.ts +3 -3
- package/domain/shop-settings/repositories/home.repository.d.ts +1 -1
- package/domain/shop-settings/repositories/shop-menu.repository.d.ts +1 -1
- package/domain/shopping/models/buy-2-win.d.ts +3 -5
- package/domain/shopping/models/checkout.d.ts +7 -9
- package/domain/shopping/models/coupons/coupon.d.ts +13 -15
- package/domain/shopping/models/coupons/enums/coupon-subtypes.enum.d.ts +4 -0
- package/domain/shopping/models/coupons/enums/coupon-types.enum.d.ts +6 -0
- package/domain/shopping/models/coupons/enums/index.d.ts +2 -1
- package/domain/shopping/models/coupons/financial-coupon.d.ts +9 -0
- package/domain/shopping/models/coupons/index.d.ts +1 -2
- package/domain/shopping/models/payment.d.ts +3 -5
- package/domain/shopping/models/shipping-method.d.ts +3 -5
- package/domain/shopping/models/subscription/checkout.d.ts +3 -5
- package/domain/shopping/models/subscription/plan.d.ts +3 -5
- package/domain/shopping/repositories/buy-2-win.repository.d.ts +1 -1
- package/domain/shopping/repositories/checkout.repository.d.ts +1 -1
- package/domain/shopping/repositories/coupon.repository.d.ts +1 -1
- package/domain/shopping/repositories/order.repository.d.ts +1 -1
- package/domain/shopping/repositories/payment.repository.d.ts +1 -1
- package/domain/shopping/repositories/subscription/checkout.repository.d.ts +1 -1
- package/domain/shopping/repositories/subscription/plan.repository.d.ts +1 -1
- package/domain/users/errors/unauthorized.error.d.ts +2 -1
- package/domain/users/errors/user-already-registered.error.d.ts +2 -1
- package/domain/users/errors/weak-password.error.d.ts +2 -1
- package/domain/users/models/beauty-profile.d.ts +4 -5
- package/domain/users/models/lead.d.ts +3 -5
- package/domain/users/models/subscription/edition.d.ts +4 -5
- package/domain/users/models/subscription/payment.d.ts +4 -5
- package/domain/users/models/subscription/subscription.d.ts +3 -5
- package/domain/users/models/user-address.d.ts +3 -3
- package/domain/users/models/user-payment-method.d.ts +4 -4
- package/domain/users/models/user.d.ts +13 -10
- package/domain/users/repositories/beauty-profile.repository.d.ts +1 -1
- package/domain/users/repositories/edition.repository.d.ts +1 -1
- package/domain/users/repositories/lead.repository.d.ts +1 -1
- package/domain/users/repositories/subscription-payment.repository.d.ts +1 -1
- package/domain/users/repositories/subscription.repository.d.ts +1 -1
- package/domain/users/repositories/user-address.repository.d.ts +1 -1
- package/domain/users/repositories/user-payment-method.repository.d.ts +1 -1
- package/domain/users/repositories/user.repository.d.ts +2 -2
- package/errors/duplicated-results.error.d.ts +2 -1
- package/errors/invalid-argument.error.d.ts +2 -1
- package/errors/not-found.error.d.ts +2 -1
- package/errors/required-argument.error.d.ts +2 -1
- package/esm2015/domain/catalog/models/category.js +5 -2
- package/esm2015/domain/catalog/models/index.js +4 -3
- package/esm2015/domain/catalog/models/kit-product.js +18 -0
- package/esm2015/domain/catalog/models/product.js +12 -2
- package/esm2015/domain/catalog/models/types/product-review.type.js +1 -1
- package/esm2015/domain/catalog/models/variant.js +5 -2
- package/esm2015/domain/catalog/repositories/category.repository.js +1 -1
- package/esm2015/domain/catalog/repositories/product.repository.js +1 -1
- package/esm2015/domain/catalog/repositories/subscription-product.repository.js +1 -1
- package/esm2015/domain/catalog/repositories/variant.repository.js +1 -1
- package/esm2015/domain/{general → generic}/index.js +1 -1
- package/esm2015/domain/generic/model/base.model.js +23 -0
- package/esm2015/domain/{general → generic}/model/identifier-fields.js +1 -1
- package/esm2015/domain/generic/model/index.js +4 -0
- package/esm2015/domain/generic/model/types/base-model-builder.type.js +2 -0
- package/esm2015/domain/generic/model/types/identifier-model.type.js +2 -0
- package/esm2015/domain/generic/model/types/index.js +6 -0
- package/esm2015/domain/generic/model/types/model-base-structure.type.js +2 -0
- package/esm2015/domain/generic/model/types/non-function-properties.type.js +2 -0
- package/esm2015/domain/generic/model/types/non-function-property-name.type.js +2 -0
- package/esm2015/domain/generic/repository/create.repository.js +2 -0
- package/esm2015/domain/generic/repository/crud.repository.js +2 -0
- package/esm2015/domain/generic/repository/delete.repository.js +2 -0
- package/esm2015/domain/{general → generic}/repository/enums/index.js +1 -1
- package/esm2015/domain/{general → generic}/repository/enums/update-option-actions.enum.js +1 -1
- package/esm2015/domain/generic/repository/enums/where.enum.js +15 -0
- package/esm2015/domain/generic/repository/find.repository.js +2 -0
- package/esm2015/domain/generic/repository/get.repository.js +2 -0
- package/esm2015/domain/{general → generic}/repository/index.js +1 -1
- package/esm2015/domain/generic/repository/read.repository.js +2 -0
- package/esm2015/domain/generic/repository/types/index.js +7 -0
- package/esm2015/domain/generic/repository/types/repository-find-filters.type.js +2 -0
- package/esm2015/domain/{general → generic}/repository/types/repository-find-result.type.js +1 -1
- package/esm2015/domain/{general → generic}/repository/types/repository-limit-options.type.js +1 -1
- package/esm2015/domain/{general → generic}/repository/types/repository-order-by-list.type.js +1 -1
- package/esm2015/domain/generic/repository/types/repository-update-params.type.js +2 -0
- package/esm2015/domain/generic/repository/types/where-options.type.js +2 -0
- package/esm2015/domain/generic/repository/update.repository.js +2 -0
- package/esm2015/domain/index.js +2 -2
- package/esm2015/domain/location/models/address.js +5 -2
- package/esm2015/domain/shop-settings/models/home.js +3 -3
- package/esm2015/domain/shop-settings/models/shop-menu.js +3 -3
- package/esm2015/domain/shop-settings/repositories/home.repository.js +1 -1
- package/esm2015/domain/shop-settings/repositories/shop-menu.repository.js +1 -1
- package/esm2015/domain/shopping/models/buy-2-win.js +3 -3
- package/esm2015/domain/shopping/models/checkout.js +6 -15
- package/esm2015/domain/shopping/models/coupons/coupon.js +4 -12
- package/esm2015/domain/shopping/models/coupons/enums/coupon-subtypes.enum.js +6 -0
- package/esm2015/domain/shopping/models/coupons/enums/coupon-types.enum.js +8 -0
- package/esm2015/domain/shopping/models/coupons/enums/index.js +3 -2
- package/esm2015/domain/shopping/models/coupons/financial-coupon.js +28 -0
- package/esm2015/domain/shopping/models/coupons/index.js +2 -3
- package/esm2015/domain/shopping/models/payment.js +3 -3
- package/esm2015/domain/shopping/models/shipping-method.js +3 -3
- package/esm2015/domain/shopping/models/subscription/checkout.js +3 -3
- package/esm2015/domain/shopping/models/subscription/plan.js +3 -3
- package/esm2015/domain/shopping/repositories/buy-2-win.repository.js +1 -1
- package/esm2015/domain/shopping/repositories/checkout.repository.js +1 -1
- package/esm2015/domain/shopping/repositories/coupon.repository.js +1 -1
- package/esm2015/domain/shopping/repositories/order.repository.js +1 -1
- package/esm2015/domain/shopping/repositories/payment.repository.js +1 -1
- package/esm2015/domain/shopping/repositories/subscription/checkout.repository.js +1 -1
- package/esm2015/domain/shopping/repositories/subscription/plan.repository.js +1 -1
- package/esm2015/domain/users/errors/unauthorized.error.js +3 -2
- package/esm2015/domain/users/errors/user-already-registered.error.js +3 -2
- package/esm2015/domain/users/errors/weak-password.error.js +3 -2
- package/esm2015/domain/users/models/beauty-profile.js +4 -4
- package/esm2015/domain/users/models/lead.js +3 -3
- package/esm2015/domain/users/models/subscription/edition.js +4 -4
- package/esm2015/domain/users/models/subscription/payment.js +4 -4
- package/esm2015/domain/users/models/subscription/subscription.js +3 -3
- package/esm2015/domain/users/models/user-address.js +3 -3
- package/esm2015/domain/users/models/user-payment-method.js +4 -4
- package/esm2015/domain/users/models/user.js +5 -5
- package/esm2015/domain/users/repositories/beauty-profile.repository.js +1 -1
- package/esm2015/domain/users/repositories/edition.repository.js +1 -1
- package/esm2015/domain/users/repositories/lead.repository.js +1 -1
- package/esm2015/domain/users/repositories/subscription-payment.repository.js +1 -1
- package/esm2015/domain/users/repositories/subscription.repository.js +1 -1
- package/esm2015/domain/users/repositories/user-address.repository.js +1 -1
- package/esm2015/domain/users/repositories/user-payment-method.repository.js +1 -1
- package/esm2015/domain/users/repositories/user.repository.js +1 -1
- package/esm2015/errors/duplicated-results.error.js +3 -2
- package/esm2015/errors/invalid-argument.error.js +3 -2
- package/esm2015/errors/not-found.error.js +3 -2
- package/esm2015/errors/required-argument.error.js +3 -2
- package/esm2015/infra/elasticsearch/adapters/axios.adapter.js +36 -1
- package/esm2015/infra/elasticsearch/adapters/elastic-search.adapter.js +1 -1
- package/esm2015/infra/elasticsearch/indexes/products-index.js +35 -1
- package/esm2015/infra/firebase/auth/authentication-firebase-auth.service.js +2 -2
- package/esm2015/infra/firebase/auth/register-firebase-auth.service.js +1 -1
- package/esm2015/infra/firebase/firestore/mixins/with-create-firestore.mixin.js +2 -2
- package/esm2015/infra/firebase/firestore/mixins/with-crud-firestore.mixin.js +1 -1
- package/esm2015/infra/firebase/firestore/mixins/with-delete-firestore.mixin.js +1 -1
- package/esm2015/infra/firebase/firestore/mixins/with-find-firestore.mixin.js +9 -10
- package/esm2015/infra/firebase/firestore/mixins/with-firestore.mixin.js +2 -6
- package/esm2015/infra/firebase/firestore/mixins/with-get-firestore.mixin.js +1 -1
- package/esm2015/infra/firebase/firestore/mixins/with-helpers.mixin.js +1 -1
- package/esm2015/infra/firebase/firestore/mixins/with-sub-collection.mixin.js +1 -1
- package/esm2015/infra/firebase/firestore/mixins/with-update-firestore.mixin.js +4 -4
- package/esm2015/infra/firebase/firestore/models/user-search.js +3 -3
- package/esm2015/infra/firebase/firestore/repositories/catalog/category-firestore.repository.js +4 -2
- package/esm2015/infra/firebase/firestore/repositories/catalog/product-firestore.repository.js +37 -8
- package/esm2015/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.js +11 -21
- package/esm2015/infra/firebase/firestore/repositories/users/user-firestore.repository.js +2 -2
- package/esm2015/infra/firebase/firestore/types/firestore-sub.repository.type.js +1 -1
- package/esm2015/infra/firebase/firestore/types/firestore.helpers.type.js +1 -1
- package/esm2015/infra/firebase/firestore/types/firestore.repository.type.js +1 -1
- package/esm2015/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.js +13 -0
- package/esm2015/infra/hasura-graphql/enums/hasura-graphql-where.enum.js +15 -0
- package/esm2015/infra/hasura-graphql/enums/index.js +3 -0
- package/esm2015/infra/hasura-graphql/index.js +5 -0
- package/esm2015/infra/hasura-graphql/mixins/helpers/attribute-option.helper.js +31 -0
- package/esm2015/infra/hasura-graphql/mixins/helpers/filter-option.helper.js +18 -0
- package/esm2015/infra/hasura-graphql/mixins/helpers/graphql-field.helper.js +72 -0
- package/esm2015/infra/hasura-graphql/mixins/helpers/index.js +4 -0
- package/esm2015/infra/hasura-graphql/mixins/index.js +8 -0
- package/esm2015/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.js +45 -0
- package/esm2015/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.js +10 -0
- package/esm2015/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.js +29 -0
- package/esm2015/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.js +93 -0
- package/esm2015/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.js +35 -0
- package/esm2015/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.js +94 -0
- package/esm2015/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.js +56 -0
- package/esm2015/infra/hasura-graphql/models/category-hasura-graphql.js +4 -0
- package/esm2015/infra/hasura-graphql/models/index.js +5 -0
- package/esm2015/infra/hasura-graphql/models/kit-product-hasura-graphql.js +15 -0
- package/esm2015/infra/hasura-graphql/models/product-hasura-graphql.js +11 -0
- package/esm2015/infra/hasura-graphql/models/variant-hasura-graphql.js +9 -0
- package/esm2015/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.js +136 -0
- package/esm2015/infra/hasura-graphql/repositories/catalog/index.js +4 -0
- package/esm2015/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.js +375 -0
- package/esm2015/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.js +107 -0
- package/esm2015/infra/hasura-graphql/repositories/index.js +2 -0
- package/esm2015/infra/hasura-graphql/types/fields.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/graphql.repository.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-auth-options.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-fields.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/hasura-graphql-headers.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/index.js +9 -0
- package/esm2015/infra/hasura-graphql/types/nested-field.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/query-builder-options.type.js +2 -0
- package/esm2015/infra/hasura-graphql/types/variable-options.type.js +2 -0
- package/esm2015/infra/index.js +2 -1
- package/esm2015/utils/index.js +6 -4
- package/esm2015/utils/is-uuid.js +3 -0
- package/esm2015/utils/mixins/index.js +2 -1
- package/esm2015/utils/mixins/merge-constructor-params.type.js +2 -0
- package/esm2015/utils/mixins/mixin-ctor.type.js +1 -1
- package/esm2015/utils/parse-datetime.js +14 -0
- package/esm2015/utils/types/array-element.type.js +2 -0
- package/esm2015/utils/types/index.js +2 -1
- package/fesm2015/infrab4a-connect.js +1375 -142
- package/fesm2015/infrab4a-connect.js.map +1 -1
- package/infra/elasticsearch/adapters/axios.adapter.d.ts +3 -0
- package/infra/elasticsearch/adapters/elastic-search.adapter.d.ts +3 -0
- package/infra/elasticsearch/indexes/products-index.d.ts +5 -1
- package/infra/firebase/auth/authentication-firebase-auth.service.d.ts +1 -1
- package/infra/firebase/auth/register-firebase-auth.service.d.ts +1 -1
- package/infra/firebase/firestore/mixins/with-create-firestore.mixin.d.ts +3 -16
- package/infra/firebase/firestore/mixins/with-crud-firestore.mixin.d.ts +3 -28
- package/infra/firebase/firestore/mixins/with-delete-firestore.mixin.d.ts +3 -14
- package/infra/firebase/firestore/mixins/with-find-firestore.mixin.d.ts +3 -19
- package/infra/firebase/firestore/mixins/with-firestore.mixin.d.ts +3 -14
- package/infra/firebase/firestore/mixins/with-get-firestore.mixin.d.ts +3 -14
- package/infra/firebase/firestore/mixins/with-helpers.mixin.d.ts +5 -4
- package/infra/firebase/firestore/mixins/with-sub-collection.mixin.d.ts +7 -14
- package/infra/firebase/firestore/mixins/with-update-firestore.mixin.d.ts +6 -15
- package/infra/firebase/firestore/models/user-search.d.ts +3 -3
- package/infra/firebase/firestore/repositories/catalog/category-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/catalog/product-firestore.repository.d.ts +5 -44
- package/infra/firebase/firestore/repositories/catalog/product-variant-firestore.repository.d.ts +4 -51
- package/infra/firebase/firestore/repositories/catalog/subscription-product-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shop-settings/home-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shop-settings/shop-menu-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/buy-2-win-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/checkout-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/checkout-subscription-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/coupon-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/order-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/payment-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/shopping/subscription-plan-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/users/lead-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/users/subscription-edition-firestore.repository.d.ts +4 -51
- package/infra/firebase/firestore/repositories/users/subscription-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/users/subscription-payment-firestore.repository.d.ts +4 -51
- package/infra/firebase/firestore/repositories/users/user-address-firestore.repository.d.ts +4 -51
- package/infra/firebase/firestore/repositories/users/user-beauty-profile-firestore.repository.d.ts +4 -51
- package/infra/firebase/firestore/repositories/users/user-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/repositories/users/user-payment-method-firestore.repository.d.ts +4 -51
- package/infra/firebase/firestore/repositories/users/user-search-firestore.repository.d.ts +1 -42
- package/infra/firebase/firestore/types/firestore-sub.repository.type.d.ts +3 -3
- package/infra/firebase/firestore/types/firestore.helpers.type.d.ts +3 -3
- package/infra/firebase/firestore/types/firestore.repository.type.d.ts +7 -3
- package/infra/hasura-graphql/enums/hasura-graphql-column-type.enum.d.ts +11 -0
- package/infra/hasura-graphql/enums/hasura-graphql-where.enum.d.ts +13 -0
- package/infra/hasura-graphql/enums/index.d.ts +2 -0
- package/infra/hasura-graphql/index.d.ts +4 -0
- package/infra/hasura-graphql/mixins/helpers/attribute-option.helper.d.ts +13 -0
- package/infra/hasura-graphql/mixins/helpers/filter-option.helper.d.ts +6 -0
- package/infra/hasura-graphql/mixins/helpers/graphql-field.helper.d.ts +8 -0
- package/infra/hasura-graphql/mixins/helpers/index.d.ts +3 -0
- package/infra/hasura-graphql/mixins/index.d.ts +7 -0
- package/infra/hasura-graphql/mixins/with-create-hasura-graphql.mixin.d.ts +8 -0
- package/infra/hasura-graphql/mixins/with-crud-hasura-graphql.mixin.d.ts +11 -0
- package/infra/hasura-graphql/mixins/with-delete-hasura-graphql.mixin.d.ts +7 -0
- package/infra/hasura-graphql/mixins/with-find-hasura-graphql.mixin.d.ts +31 -0
- package/infra/hasura-graphql/mixins/with-get-hasura-graphql.mixin.d.ts +24 -0
- package/infra/hasura-graphql/mixins/with-hasura-graphql.mixin.d.ts +11 -0
- package/infra/hasura-graphql/mixins/with-update-hasura-graphql.mixin.d.ts +14 -0
- package/infra/hasura-graphql/models/category-hasura-graphql.d.ts +6 -0
- package/infra/hasura-graphql/models/index.d.ts +4 -0
- package/infra/hasura-graphql/models/kit-product-hasura-graphql.d.ts +6 -0
- package/infra/hasura-graphql/models/product-hasura-graphql.d.ts +9 -0
- package/infra/hasura-graphql/models/variant-hasura-graphql.d.ts +9 -0
- package/infra/hasura-graphql/repositories/catalog/category-hasura-graphql.repository.d.ts +22 -0
- package/infra/hasura-graphql/repositories/catalog/index.d.ts +3 -0
- package/infra/hasura-graphql/repositories/catalog/product-hasura-graphql.repository.d.ts +26 -0
- package/infra/hasura-graphql/repositories/catalog/variant-hasura-graphql.repository.d.ts +13 -0
- package/infra/hasura-graphql/repositories/index.d.ts +1 -0
- package/infra/hasura-graphql/types/fields.type.d.ts +2 -0
- package/infra/hasura-graphql/types/graphql.repository.type.d.ts +21 -0
- package/infra/hasura-graphql/types/hasura-graphql-auth-options.type.d.ts +8 -0
- package/infra/hasura-graphql/types/hasura-graphql-fields.type.d.ts +36 -0
- package/infra/hasura-graphql/types/hasura-graphql-headers.type.d.ts +7 -0
- package/infra/hasura-graphql/types/index.d.ts +8 -0
- package/infra/hasura-graphql/types/nested-field.type.d.ts +7 -0
- package/infra/hasura-graphql/types/query-builder-options.type.d.ts +7 -0
- package/infra/hasura-graphql/types/variable-options.type.d.ts +9 -0
- package/infra/index.d.ts +1 -0
- package/package.json +5 -3
- package/utils/index.d.ts +5 -4
- package/utils/is-uuid.d.ts +1 -0
- package/utils/mixins/index.d.ts +1 -0
- package/utils/mixins/merge-constructor-params.type.d.ts +3 -0
- package/utils/mixins/mixin-ctor.type.d.ts +1 -1
- package/utils/parse-datetime.d.ts +1 -0
- package/utils/types/array-element.type.d.ts +1 -0
- package/utils/types/index.d.ts +1 -0
- package/domain/general/model/base-model-with-identifier-fields.d.ts +0 -3
- package/domain/general/model/base.model.d.ts +0 -6
- package/domain/general/model/types/base-model-builder.type.d.ts +0 -5
- package/domain/general/model/types/non-function-properties.type.d.ts +0 -2
- package/domain/general/model/types/non-function-property-name.type.d.ts +0 -3
- package/domain/general/repository/create.repository.d.ts +0 -5
- package/domain/general/repository/crud.repository.d.ts +0 -7
- package/domain/general/repository/delete.repository.d.ts +0 -5
- package/domain/general/repository/find.repository.d.ts +0 -5
- package/domain/general/repository/get.repository.d.ts +0 -5
- package/domain/general/repository/read.repository.d.ts +0 -5
- package/domain/general/repository/types/repository-find-filters.type.d.ts +0 -14
- package/domain/general/repository/update.repository.d.ts +0 -5
- package/domain/shopping/models/coupons/club-coupon.d.ts +0 -7
- package/domain/shopping/models/coupons/enums/discount-type.enum.d.ts +0 -5
- package/domain/shopping/models/coupons/store-coupon.d.ts +0 -8
- package/esm2015/domain/general/model/base-model-with-identifier-fields.js +0 -2
- package/esm2015/domain/general/model/base.model.js +0 -13
- package/esm2015/domain/general/model/index.js +0 -5
- package/esm2015/domain/general/model/types/base-model-builder.type.js +0 -2
- package/esm2015/domain/general/model/types/index.js +0 -4
- package/esm2015/domain/general/model/types/non-function-properties.type.js +0 -2
- package/esm2015/domain/general/model/types/non-function-property-name.type.js +0 -2
- package/esm2015/domain/general/repository/create.repository.js +0 -2
- package/esm2015/domain/general/repository/crud.repository.js +0 -2
- package/esm2015/domain/general/repository/delete.repository.js +0 -2
- package/esm2015/domain/general/repository/enums/where.enum.js +0 -12
- package/esm2015/domain/general/repository/find.repository.js +0 -2
- package/esm2015/domain/general/repository/get.repository.js +0 -2
- package/esm2015/domain/general/repository/read.repository.js +0 -2
- package/esm2015/domain/general/repository/types/index.js +0 -6
- package/esm2015/domain/general/repository/types/repository-find-filters.type.js +0 -2
- package/esm2015/domain/general/repository/types/repository-update-params.type.js +0 -2
- package/esm2015/domain/general/repository/update.repository.js +0 -2
- package/esm2015/domain/shopping/models/coupons/club-coupon.js +0 -18
- package/esm2015/domain/shopping/models/coupons/enums/discount-type.enum.js +0 -7
- package/esm2015/domain/shopping/models/coupons/store-coupon.js +0 -23
- /package/domain/{general → generic}/index.d.ts +0 -0
- /package/domain/{general → generic}/model/identifier-fields.d.ts +0 -0
- /package/domain/{general → generic}/repository/enums/index.d.ts +0 -0
- /package/domain/{general → generic}/repository/enums/update-option-actions.enum.d.ts +0 -0
- /package/domain/{general → generic}/repository/index.d.ts +0 -0
- /package/domain/{general → generic}/repository/types/repository-find-result.type.d.ts +0 -0
- /package/domain/{general → generic}/repository/types/repository-limit-options.type.d.ts +0 -0
- /package/domain/{general → generic}/repository/types/repository-order-by-list.type.d.ts +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLXN1Yi5yZXBvc2l0b3J5LnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9maXJlYmFzZS9maXJlc3RvcmUvdHlwZXMvZmlyZXN0b3JlLXN1Yi5yZXBvc2l0b3J5LnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZpcmVzdG9yZVJlcG9zaXRvcnkgfSBmcm9tICcuL2ZpcmVzdG9yZS5yZXBvc2l0b3J5LnR5cGUnXG5cbmltcG9ydCB7IEJhc2VNb2RlbCwgTW9kZWxCYXNlU3RydWN0dXJlLCBJZGVudGlmaWVyc01vZGVsIH0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuXG5leHBvcnQgdHlwZSBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5PFxuICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgUGFyZW50TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUgPSBCYXNlTW9kZWw8e30+LFxuPiA9IHtcbiAgcmVhZG9ubHkgcGFyZW50UmVwb3NpdG9yeTogRmlyZXN0b3JlUmVwb3NpdG9yeTxQYXJlbnRNb2RlbD5cbiAgcGFyZW50SWRGaWVsZDoga2V5b2YgSWRlbnRpZmllcnNNb2RlbDxNb2RlbD5cbn0gJiBGaXJlc3RvcmVSZXBvc2l0b3J5PE1vZGVsPlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLmhlbHBlcnMudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS90eXBlcy9maXJlc3RvcmUuaGVscGVycy50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBRdWVyeVNuYXBzaG90LCBRdWVyeURvY3VtZW50U25hcHNob3QgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuXG5pbXBvcnQgeyBCYXNlTW9kZWwgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5cbmltcG9ydCB7IEZpcmVzdG9yZVJlcG9zaXRvcnkgfSBmcm9tICcuL2ZpcmVzdG9yZS5yZXBvc2l0b3J5LnR5cGUnXG5pbXBvcnQgeyBGaXJlc3RvcmVTdWJSZXBvc2l0b3J5IH0gZnJvbSAnLi9maXJlc3RvcmUtc3ViLnJlcG9zaXRvcnkudHlwZSdcblxuZXhwb3J0IGludGVyZmFjZSBGaXJlc3RvcmVIZWxwZXJzIHtcbiAgdG9BcnJheTxUIGV4dGVuZHMgQmFzZU1vZGVsPFQ+PihzbmFwU2hvdDogUXVlcnlTbmFwc2hvdDxUPiB8IEFycmF5PFF1ZXJ5RG9jdW1lbnRTbmFwc2hvdDxUPj4pOiBBcnJheTxUPlxuICBpc1N1YkNvbGxlY3Rpb248VCBleHRlbmRzIEJhc2VNb2RlbDxUPj4ocmVwb3NpdG9yeTogRmlyZXN0b3JlUmVwb3NpdG9yeTxUPik6IHJlcG9zaXRvcnkgaXMgRmlyZXN0b3JlU3ViUmVwb3NpdG9yeTxUPlxufVxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyZXN0b3JlLnJlcG9zaXRvcnkudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2ZpcmViYXNlL2ZpcmVzdG9yZS90eXBlcy9maXJlc3RvcmUucmVwb3NpdG9yeS50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb2xsZWN0aW9uUmVmZXJlbmNlLCBEb2N1bWVudERhdGEsIEZpcmViYXNlRmlyZXN0b3JlLCBRdWVyeURvY3VtZW50U25hcHNob3QgfSBmcm9tICdAZmlyZWJhc2UvZmlyZXN0b3JlLXR5cGVzJ1xuXG5pbXBvcnQgeyBCYXNlTW9kZWxCdWlsZGVyLCBNb2RlbEJhc2VTdHJ1Y3R1cmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5cbmV4cG9ydCB0eXBlIEZpcmVzdG9yZVJlcG9zaXRvcnk8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+ID0ge1xuICByZWFkb25seSBmaXJlc3RvcmU/OiBGaXJlYmFzZUZpcmVzdG9yZVxuICBjb2xsZWN0aW9uTmFtZTogc3RyaW5nXG4gIG1vZGVsOiBCYXNlTW9kZWxCdWlsZGVyPE1vZGVsPlxuICBjb2xsZWN0aW9uKHBhdGg/OiBzdHJpbmcpOiBDb2xsZWN0aW9uUmVmZXJlbmNlPE1vZGVsPlxuICBidWlsZE1vZGVsSW5zdGFuY2UoKToge1xuICAgIHRvRmlyZXN0b3JlOiAoZGF0YTogTW9kZWwpID0+IERvY3VtZW50RGF0YVxuICAgIGZyb21GaXJlc3RvcmU6IChzbmFwOiBRdWVyeURvY3VtZW50U25hcHNob3Q8TW9kZWw+KSA9PiBNb2RlbFxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export var HasuraGraphQLColumnType;
|
|
2
|
+
(function (HasuraGraphQLColumnType) {
|
|
3
|
+
HasuraGraphQLColumnType["Int"] = "Int";
|
|
4
|
+
HasuraGraphQLColumnType["Float"] = "Float";
|
|
5
|
+
HasuraGraphQLColumnType["Boolean"] = "Boolean";
|
|
6
|
+
HasuraGraphQLColumnType["String"] = "String";
|
|
7
|
+
HasuraGraphQLColumnType["DateTime"] = "timestampz";
|
|
8
|
+
HasuraGraphQLColumnType["Json"] = "json";
|
|
9
|
+
HasuraGraphQLColumnType["Jsonb"] = "jsonb";
|
|
10
|
+
HasuraGraphQLColumnType["Enum"] = "enum";
|
|
11
|
+
HasuraGraphQLColumnType["Uuid"] = "uuid";
|
|
12
|
+
})(HasuraGraphQLColumnType || (HasuraGraphQLColumnType = {}));
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtY29sdW1uLXR5cGUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL2VudW1zL2hhc3VyYS1ncmFwaHFsLWNvbHVtbi10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksdUJBVVg7QUFWRCxXQUFZLHVCQUF1QjtJQUNqQyxzQ0FBVyxDQUFBO0lBQ1gsMENBQWUsQ0FBQTtJQUNmLDhDQUFtQixDQUFBO0lBQ25CLDRDQUFpQixDQUFBO0lBQ2pCLGtEQUF1QixDQUFBO0lBQ3ZCLHdDQUFhLENBQUE7SUFDYiwwQ0FBZSxDQUFBO0lBQ2Ysd0NBQWEsQ0FBQTtJQUNiLHdDQUFhLENBQUE7QUFDZixDQUFDLEVBVlcsdUJBQXVCLEtBQXZCLHVCQUF1QixRQVVsQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlIHtcbiAgSW50ID0gJ0ludCcsXG4gIEZsb2F0ID0gJ0Zsb2F0JyxcbiAgQm9vbGVhbiA9ICdCb29sZWFuJyxcbiAgU3RyaW5nID0gJ1N0cmluZycsXG4gIERhdGVUaW1lID0gJ3RpbWVzdGFtcHonLFxuICBKc29uID0gJ2pzb24nLFxuICBKc29uYiA9ICdqc29uYicsXG4gIEVudW0gPSAnZW51bScsXG4gIFV1aWQgPSAndXVpZCcsXG59XG4iXX0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export var HasuraGraphQLWhere;
|
|
2
|
+
(function (HasuraGraphQLWhere) {
|
|
3
|
+
HasuraGraphQLWhere["EQUALS"] = "_eq";
|
|
4
|
+
HasuraGraphQLWhere["GT"] = "_gt";
|
|
5
|
+
HasuraGraphQLWhere["GTE"] = "_gte";
|
|
6
|
+
HasuraGraphQLWhere["IN"] = "_in";
|
|
7
|
+
HasuraGraphQLWhere["NOTIN"] = "_nin";
|
|
8
|
+
HasuraGraphQLWhere["LT"] = "_lt";
|
|
9
|
+
HasuraGraphQLWhere["LTE"] = "_lte";
|
|
10
|
+
HasuraGraphQLWhere["LIKE"] = "_like";
|
|
11
|
+
HasuraGraphQLWhere["NOTLIKE"] = "_nlike";
|
|
12
|
+
HasuraGraphQLWhere["ISNULL"] = "_is_null";
|
|
13
|
+
HasuraGraphQLWhere["ISNOTNULL"] = "_is_null";
|
|
14
|
+
})(HasuraGraphQLWhere || (HasuraGraphQLWhere = {}));
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGFzdXJhLWdyYXBocWwtd2hlcmUuZW51bS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nvbm5lY3Qvc3JjL2luZnJhL2hhc3VyYS1ncmFwaHFsL2VudW1zL2hhc3VyYS1ncmFwaHFsLXdoZXJlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksa0JBWVg7QUFaRCxXQUFZLGtCQUFrQjtJQUM1QixvQ0FBYyxDQUFBO0lBQ2QsZ0NBQVUsQ0FBQTtJQUNWLGtDQUFZLENBQUE7SUFDWixnQ0FBVSxDQUFBO0lBQ1Ysb0NBQWMsQ0FBQTtJQUNkLGdDQUFVLENBQUE7SUFDVixrQ0FBWSxDQUFBO0lBQ1osb0NBQWMsQ0FBQTtJQUNkLHdDQUFrQixDQUFBO0lBQ2xCLHlDQUFtQixDQUFBO0lBQ25CLDRDQUFzQixDQUFBO0FBQ3hCLENBQUMsRUFaVyxrQkFBa0IsS0FBbEIsa0JBQWtCLFFBWTdCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSGFzdXJhR3JhcGhRTFdoZXJlIHtcbiAgRVFVQUxTID0gJ19lcScsXG4gIEdUID0gJ19ndCcsXG4gIEdURSA9ICdfZ3RlJyxcbiAgSU4gPSAnX2luJyxcbiAgTk9USU4gPSAnX25pbicsXG4gIExUID0gJ19sdCcsXG4gIExURSA9ICdfbHRlJyxcbiAgTElLRSA9ICdfbGlrZScsXG4gIE5PVExJS0UgPSAnX25saWtlJyxcbiAgSVNOVUxMID0gJ19pc19udWxsJyxcbiAgSVNOT1ROVUxMID0gJ19pc19udWxsJyxcbn1cbiJdfQ==
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export * from './hasura-graphql-where.enum';
|
|
2
|
+
export * from './hasura-graphql-column-type.enum';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9lbnVtcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDZCQUE2QixDQUFBO0FBQzNDLGNBQWMsbUNBQW1DLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2hhc3VyYS1ncmFwaHFsLXdoZXJlLmVudW0nXG5leHBvcnQgKiBmcm9tICcuL2hhc3VyYS1ncmFwaHFsLWNvbHVtbi10eXBlLmVudW0nXG4iXX0=
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export * from './mixins';
|
|
2
|
+
export * from './models';
|
|
3
|
+
export * from './repositories';
|
|
4
|
+
export * from './types';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLFVBQVUsQ0FBQTtBQUN4QixjQUFjLGdCQUFnQixDQUFBO0FBQzlCLGNBQWMsU0FBUyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9taXhpbnMnXG5leHBvcnQgKiBmcm9tICcuL21vZGVscydcbmV4cG9ydCAqIGZyb20gJy4vcmVwb3NpdG9yaWVzJ1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcydcbiJdfQ==
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { isNil, isObject } from '../../../../utils';
|
|
2
|
+
export class AttributeOptionHelper {
|
|
3
|
+
}
|
|
4
|
+
AttributeOptionHelper.FindByAttribute = (attributeName, fields) => {
|
|
5
|
+
if (fields.includes(attributeName))
|
|
6
|
+
return { columnName: attributeName.toString(), attributeName };
|
|
7
|
+
const field = fields.find((columnOption) => isObject(columnOption) && Object.keys(columnOption).includes(attributeName.toString()));
|
|
8
|
+
const fieldOption = field === null || field === void 0 ? void 0 : field[attributeName.toString()];
|
|
9
|
+
if (isNil(fieldOption))
|
|
10
|
+
return { columnName: attributeName.toString(), attributeName };
|
|
11
|
+
if (Array.isArray(fieldOption))
|
|
12
|
+
return { columnName: attributeName.toString(), attributeName, fields: fieldOption };
|
|
13
|
+
return Object.assign({ attributeName, columnName: attributeName.toString() }, fieldOption);
|
|
14
|
+
};
|
|
15
|
+
AttributeOptionHelper.CheckIsColumnOption = (fieldValue) => !!fieldValue.columnName;
|
|
16
|
+
AttributeOptionHelper.FindColumnOptionFromList = (columnName, fields) => {
|
|
17
|
+
if (fields.includes(columnName))
|
|
18
|
+
return { columnName, attributeName: columnName };
|
|
19
|
+
const field = fields.find((columnOption) => {
|
|
20
|
+
var _a;
|
|
21
|
+
return isObject(columnOption) &&
|
|
22
|
+
((_a = Object.values(columnOption).find((option) => AttributeOptionHelper.CheckIsColumnOption(option) && option.columnName === columnName)) === null || _a === void 0 ? void 0 : _a.columnName) === columnName;
|
|
23
|
+
}) || {};
|
|
24
|
+
const attributeName = Object.keys(field).find((fieldOptionFromList) => AttributeOptionHelper.CheckIsColumnOption(field[fieldOptionFromList]) ||
|
|
25
|
+
Array.isArray(field[fieldOptionFromList]));
|
|
26
|
+
const fieldOption = field === null || field === void 0 ? void 0 : field[attributeName];
|
|
27
|
+
if (Array.isArray(fieldOption))
|
|
28
|
+
return { attributeName: attributeName, fields: fieldOption };
|
|
29
|
+
return Object.assign({ attributeName: attributeName || columnName, columnName }, fieldOption);
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXR0cmlidXRlLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxNQUFNLG1CQUFtQixDQUFBO0FBUW5ELE1BQU0sT0FBTyxxQkFBcUI7O0FBQ3pCLHFDQUFlLEdBQUcsQ0FJdkIsYUFBd0IsRUFDeEIsTUFBa0MsRUFDTyxFQUFFO0lBQzNDLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxhQUFvQixDQUFDO1FBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxFQUFFLENBQUE7SUFFekcsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FDdkIsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FDekcsQ0FBQTtJQUNELE1BQU0sV0FBVyxHQUFHLEtBQUssYUFBTCxLQUFLLHVCQUFMLEtBQUssQ0FBRyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtJQUVyRCxJQUFJLEtBQUssQ0FBQyxXQUFXLENBQUM7UUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsRUFBRSxhQUFhLEVBQUUsQ0FBQTtJQUN0RixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDO1FBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLENBQUMsUUFBUSxFQUFFLEVBQUUsYUFBYSxFQUFFLE1BQU0sRUFBRSxXQUFXLEVBQUUsQ0FBQTtJQUVuSCx1QkFBUyxhQUFhLEVBQUUsVUFBVSxFQUFFLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSyxXQUFXLEVBQUU7QUFDaEYsQ0FBQyxDQUFBO0FBRU0seUNBQW1CLEdBQUcsQ0FDM0IsVUFBNkMsRUFDSSxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUE7QUFFdEUsOENBQXdCLEdBQUcsQ0FDaEMsVUFBa0IsRUFDbEIsTUFBd0MsRUFDbUUsRUFBRTtJQUM3RyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBaUIsQ0FBQztRQUNwQyxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxVQUFnRSxFQUFFLENBQUE7SUFFeEcsTUFBTSxLQUFLLEdBQ1QsTUFBTSxDQUFDLElBQUksQ0FDVCxDQUFDLFlBQVksRUFBRSxFQUFFOztRQUNmLE9BQUEsUUFBUSxDQUFDLFlBQVksQ0FBQztZQUN0QixDQUFBLE1BQUEsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxJQUFJLENBQzlCLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxNQUFNLENBQUMsVUFBVSxLQUFLLFVBQVUsQ0FDbEcsMENBQUUsVUFBVSxNQUFLLFVBQVUsQ0FBQTtLQUFBLENBQy9CLElBQUksRUFBRSxDQUFBO0lBQ1QsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQzNDLENBQUMsbUJBQW1CLEVBQUUsRUFBRSxDQUN0QixxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUNyRSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQzVDLENBQUE7SUFDRCxNQUFNLFdBQVcsR0FBRyxLQUFLLGFBQUwsS0FBSyx1QkFBTCxLQUFLLENBQUcsYUFBYSxDQUFDLENBQUE7SUFFMUMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQztRQUM1QixPQUFPLEVBQUUsYUFBYSxFQUFFLGFBQW1FLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxDQUFBO0lBRXBILHVCQUNFLGFBQWEsRUFBRyxhQUFvRSxJQUFJLFVBQVUsRUFDbEcsVUFBVSxJQUNQLFdBQVcsRUFDZjtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE1vZGVsQmFzZVN0cnVjdHVyZSwgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyB9IGZyb20gJy4uLy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IGlzTmlsLCBpc09iamVjdCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29sdW1uT3B0aW9ucywgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG50eXBlIEZpbmRCeUF0dHJpYnV0ZVJlc3VsdDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU8TUJhc2U+LFxuICBBdHRyaWJ1dGUgZXh0ZW5kcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbj4gPSBDb2x1bW5PcHRpb25zPE1CYXNlW0F0dHJpYnV0ZV0sIE1CYXNlPiAmIHsgYXR0cmlidXRlTmFtZTogQXR0cmlidXRlIH1cblxuZXhwb3J0IGNsYXNzIEF0dHJpYnV0ZU9wdGlvbkhlbHBlciB7XG4gIHN0YXRpYyBGaW5kQnlBdHRyaWJ1dGUgPSA8XG4gICAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gICAgQXR0cmlidXRlIGV4dGVuZHMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gID4oXG4gICAgYXR0cmlidXRlTmFtZTogQXR0cmlidXRlLFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICk6IEZpbmRCeUF0dHJpYnV0ZVJlc3VsdDxNQmFzZSwgQXR0cmlidXRlPiA9PiB7XG4gICAgaWYgKGZpZWxkcy5pbmNsdWRlcyhhdHRyaWJ1dGVOYW1lIGFzIGFueSkpIHJldHVybiB7IGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgYXR0cmlidXRlTmFtZSB9XG5cbiAgICBjb25zdCBmaWVsZCA9IGZpZWxkcy5maW5kKFxuICAgICAgKGNvbHVtbk9wdGlvbikgPT4gaXNPYmplY3QoY29sdW1uT3B0aW9uKSAmJiBPYmplY3Qua2V5cyhjb2x1bW5PcHRpb24pLmluY2x1ZGVzKGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSksXG4gICAgKVxuICAgIGNvbnN0IGZpZWxkT3B0aW9uID0gZmllbGQ/LlthdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCldXG5cbiAgICBpZiAoaXNOaWwoZmllbGRPcHRpb24pKSByZXR1cm4geyBjb2x1bW5OYW1lOiBhdHRyaWJ1dGVOYW1lLnRvU3RyaW5nKCksIGF0dHJpYnV0ZU5hbWUgfVxuICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkT3B0aW9uKSkgcmV0dXJuIHsgY29sdW1uTmFtZTogYXR0cmlidXRlTmFtZS50b1N0cmluZygpLCBhdHRyaWJ1dGVOYW1lLCBmaWVsZHM6IGZpZWxkT3B0aW9uIH1cblxuICAgIHJldHVybiB7IGF0dHJpYnV0ZU5hbWUsIGNvbHVtbk5hbWU6IGF0dHJpYnV0ZU5hbWUudG9TdHJpbmcoKSwgLi4uZmllbGRPcHRpb24gfVxuICB9XG5cbiAgc3RhdGljIENoZWNrSXNDb2x1bW5PcHRpb24gPSA8TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsIFBhcmVudE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPihcbiAgICBmaWVsZFZhbHVlOiBDb2x1bW5PcHRpb25zPE1vZGVsLCBQYXJlbnRNb2RlbD4sXG4gICk6IGZpZWxkVmFsdWUgaXMgQ29sdW1uT3B0aW9uczxNb2RlbCwgUGFyZW50TW9kZWw+ID0+ICEhZmllbGRWYWx1ZS5jb2x1bW5OYW1lXG5cbiAgc3RhdGljIEZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdCA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSwgUGFyZW50TW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmU+KFxuICAgIGNvbHVtbk5hbWU6IHN0cmluZyxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8UGFyZW50TW9kZWw+LFxuICApOiBDb2x1bW5PcHRpb25zPE1vZGVsLCBQYXJlbnRNb2RlbD4gJiB7IGF0dHJpYnV0ZU5hbWU6IE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+IH0gPT4ge1xuICAgIGlmIChmaWVsZHMuaW5jbHVkZXMoY29sdW1uTmFtZSBhcyBhbnkpKVxuICAgICAgcmV0dXJuIHsgY29sdW1uTmFtZSwgYXR0cmlidXRlTmFtZTogY29sdW1uTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPiB9XG5cbiAgICBjb25zdCBmaWVsZCA9XG4gICAgICBmaWVsZHMuZmluZChcbiAgICAgICAgKGNvbHVtbk9wdGlvbikgPT5cbiAgICAgICAgICBpc09iamVjdChjb2x1bW5PcHRpb24pICYmXG4gICAgICAgICAgT2JqZWN0LnZhbHVlcyhjb2x1bW5PcHRpb24pLmZpbmQoXG4gICAgICAgICAgICAob3B0aW9uKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihvcHRpb24pICYmIG9wdGlvbi5jb2x1bW5OYW1lID09PSBjb2x1bW5OYW1lLFxuICAgICAgICAgICk/LmNvbHVtbk5hbWUgPT09IGNvbHVtbk5hbWUsXG4gICAgICApIHx8IHt9XG4gICAgY29uc3QgYXR0cmlidXRlTmFtZSA9IE9iamVjdC5rZXlzKGZpZWxkKS5maW5kKFxuICAgICAgKGZpZWxkT3B0aW9uRnJvbUxpc3QpID0+XG4gICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5DaGVja0lzQ29sdW1uT3B0aW9uKGZpZWxkW2ZpZWxkT3B0aW9uRnJvbUxpc3RdKSB8fFxuICAgICAgICBBcnJheS5pc0FycmF5KGZpZWxkW2ZpZWxkT3B0aW9uRnJvbUxpc3RdKSxcbiAgICApXG4gICAgY29uc3QgZmllbGRPcHRpb24gPSBmaWVsZD8uW2F0dHJpYnV0ZU5hbWVdXG5cbiAgICBpZiAoQXJyYXkuaXNBcnJheShmaWVsZE9wdGlvbikpXG4gICAgICByZXR1cm4geyBhdHRyaWJ1dGVOYW1lOiBhdHRyaWJ1dGVOYW1lIGFzIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXM8UGFyZW50TW9kZWw+LCBmaWVsZHM6IGZpZWxkT3B0aW9uIH1cblxuICAgIHJldHVybiB7XG4gICAgICBhdHRyaWJ1dGVOYW1lOiAoYXR0cmlidXRlTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPFBhcmVudE1vZGVsPikgfHwgY29sdW1uTmFtZSxcbiAgICAgIGNvbHVtbk5hbWUsXG4gICAgICAuLi5maWVsZE9wdGlvbixcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Where } from '../../../../domain';
|
|
2
|
+
import { isNil } from '../../../../utils';
|
|
3
|
+
export class FilterOptionHelper {
|
|
4
|
+
}
|
|
5
|
+
FilterOptionHelper.CheckIfIsFilterOption = (filter) => !isNil(filter === null || filter === void 0 ? void 0 : filter.operator);
|
|
6
|
+
FilterOptionHelper.GetValueFromFilter = (filter, fieldOption) => {
|
|
7
|
+
if (!FilterOptionHelper.CheckIfIsFilterOption(filter))
|
|
8
|
+
return filter;
|
|
9
|
+
if (filter.operator === Where.ISNULL)
|
|
10
|
+
return true;
|
|
11
|
+
if (filter.operator === Where.ISNOTNULL)
|
|
12
|
+
return false;
|
|
13
|
+
const converter = fieldOption.to ? fieldOption.to : (value) => value;
|
|
14
|
+
return Array.isArray(filter.value) && !fieldOption.fields && [Where.IN, Where.NOTIN].includes(filter.operator)
|
|
15
|
+
? filter.value.map((fieldValue) => converter(fieldValue))
|
|
16
|
+
: converter(filter.value);
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9maWx0ZXItb3B0aW9uLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFELEtBQUssRUFBRSxNQUFNLG9CQUFvQixDQUFBO0FBQzdGLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQTtBQUd6QyxNQUFNLE9BQU8sa0JBQWtCOztBQUN0Qix3Q0FBcUIsR0FBRyxDQUM3QixNQUFXLEVBQzBDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsUUFBUSxDQUFDLENBQUE7QUFFM0UscUNBQWtCLEdBQUcsQ0FDMUIsTUFBaUQsRUFDakQsV0FBb0MsRUFDL0IsRUFBRTtJQUNQLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUM7UUFBRSxPQUFPLE1BQU0sQ0FBQTtJQUNwRSxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLE1BQU07UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNqRCxJQUFJLE1BQU0sQ0FBQyxRQUFRLEtBQUssS0FBSyxDQUFDLFNBQVM7UUFBRSxPQUFPLEtBQUssQ0FBQTtJQUVyRCxNQUFNLFNBQVMsR0FBRyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFBO0lBRXBFLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsRUFBRSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7UUFDNUcsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsS0FBWSxDQUFDLENBQUE7QUFDcEMsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTW9kZWxCYXNlU3RydWN0dXJlLCBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucywgV2hlcmUgfSBmcm9tICcuLi8uLi8uLi8uLi9kb21haW4nXG5pbXBvcnQgeyBpc05pbCB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJ1xuaW1wb3J0IHsgQ29sdW1uT3B0aW9ucyB9IGZyb20gJy4uLy4uL3R5cGVzJ1xuXG5leHBvcnQgY2xhc3MgRmlsdGVyT3B0aW9uSGVscGVyIHtcbiAgc3RhdGljIENoZWNrSWZJc0ZpbHRlck9wdGlvbiA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgZmlsdGVyOiBhbnksXG4gICk6IGZpbHRlciBpcyBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNb2RlbCwgYW55PiA9PiAhaXNOaWwoZmlsdGVyPy5vcGVyYXRvcilcblxuICBzdGF0aWMgR2V0VmFsdWVGcm9tRmlsdGVyID0gPE1vZGVsIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlPihcbiAgICBmaWx0ZXI6IFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1vZGVsLCBhbnk+LFxuICAgIGZpZWxkT3B0aW9uOiBDb2x1bW5PcHRpb25zPGFueSwgYW55PixcbiAgKTogYW55ID0+IHtcbiAgICBpZiAoIUZpbHRlck9wdGlvbkhlbHBlci5DaGVja0lmSXNGaWx0ZXJPcHRpb24oZmlsdGVyKSkgcmV0dXJuIGZpbHRlclxuICAgIGlmIChmaWx0ZXIub3BlcmF0b3IgPT09IFdoZXJlLklTTlVMTCkgcmV0dXJuIHRydWVcbiAgICBpZiAoZmlsdGVyLm9wZXJhdG9yID09PSBXaGVyZS5JU05PVE5VTEwpIHJldHVybiBmYWxzZVxuXG4gICAgY29uc3QgY29udmVydGVyID0gZmllbGRPcHRpb24udG8gPyBmaWVsZE9wdGlvbi50byA6ICh2YWx1ZSkgPT4gdmFsdWVcblxuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGZpbHRlci52YWx1ZSkgJiYgIWZpZWxkT3B0aW9uLmZpZWxkcyAmJiBbV2hlcmUuSU4sIFdoZXJlLk5PVElOXS5pbmNsdWRlcyhmaWx0ZXIub3BlcmF0b3IpXG4gICAgICA/IGZpbHRlci52YWx1ZS5tYXAoKGZpZWxkVmFsdWUpID0+IGNvbnZlcnRlcihmaWVsZFZhbHVlKSlcbiAgICAgIDogY29udmVydGVyKGZpbHRlci52YWx1ZSBhcyBhbnkpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { BaseModel, } from '../../../../domain';
|
|
2
|
+
import { isDate, isEmpty, isNil, isObject, isString, parseDateTime } from '../../../../utils';
|
|
3
|
+
import { AttributeOptionHelper } from './attribute-option.helper';
|
|
4
|
+
export class GraphQLFieldHelper {
|
|
5
|
+
}
|
|
6
|
+
GraphQLFieldHelper.CheckIsGraphQLParams = (params) => !isString(params) && Array.isArray(params) && params.length >= 0 && !!params[0].operation;
|
|
7
|
+
GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields = (fields) => {
|
|
8
|
+
return fields === null || fields === void 0 ? void 0 : fields.map((field) => {
|
|
9
|
+
if (isString(field))
|
|
10
|
+
return field.toString();
|
|
11
|
+
const fieldName = Object.keys(field).shift();
|
|
12
|
+
const fieldValue = field[fieldName];
|
|
13
|
+
if (Array.isArray(fieldValue))
|
|
14
|
+
return { [fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue) };
|
|
15
|
+
if (!AttributeOptionHelper.CheckIsColumnOption(fieldValue))
|
|
16
|
+
return;
|
|
17
|
+
if (fieldValue.fields)
|
|
18
|
+
return {
|
|
19
|
+
[fieldValue.columnName || fieldName]: GraphQLFieldHelper.ConvertModelFieldsToGraphQLFields(fieldValue.fields),
|
|
20
|
+
};
|
|
21
|
+
return fieldValue.columnName;
|
|
22
|
+
}).filter((field) => !!field);
|
|
23
|
+
};
|
|
24
|
+
GraphQLFieldHelper.ConvertFieldValueFrom = (data, fields) => Object.keys(data).reduce((result, columnName) => {
|
|
25
|
+
const { attributeName, fields: attributeFields, from, } = AttributeOptionHelper.FindColumnOptionFromList(columnName, fields);
|
|
26
|
+
if (!!attributeFields && Array.isArray(attributeFields)) {
|
|
27
|
+
if (Array.isArray(data[columnName]))
|
|
28
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: from
|
|
29
|
+
? from(data[columnName], data)
|
|
30
|
+
: data[columnName].map((value) => GraphQLFieldHelper.ConvertFieldValueFrom(value, attributeFields)) });
|
|
31
|
+
if (isObject(data[columnName]))
|
|
32
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: !!from
|
|
33
|
+
? from(data[columnName])
|
|
34
|
+
: GraphQLFieldHelper.ConvertFieldValueFrom(data[columnName], attributeFields) });
|
|
35
|
+
}
|
|
36
|
+
if (!!from)
|
|
37
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: from(data[columnName], data) });
|
|
38
|
+
return Object.assign(Object.assign({}, result), { [attributeName]: parseDateTime(data[columnName]) });
|
|
39
|
+
}, {});
|
|
40
|
+
GraphQLFieldHelper.ConvertFieldValueTo = (instance, fields, update = false) => {
|
|
41
|
+
var _a;
|
|
42
|
+
const data = ((_a = instance.toPlain) === null || _a === void 0 ? void 0 : _a.call(instance)) || instance;
|
|
43
|
+
return Object.keys(data).reduce((result, attributeName) => {
|
|
44
|
+
const { columnName, fields: attributeFields, foreignKeyColumn, to, bindPersistData, } = AttributeOptionHelper.FindByAttribute(attributeName, fields);
|
|
45
|
+
if (bindPersistData)
|
|
46
|
+
return Object.assign(Object.assign({}, result), bindPersistData(data[attributeName], instance));
|
|
47
|
+
if (isNil(columnName))
|
|
48
|
+
return result;
|
|
49
|
+
if (!!foreignKeyColumn &&
|
|
50
|
+
!isEmpty(foreignKeyColumn) &&
|
|
51
|
+
!Object.keys(foreignKeyColumn).filter((key) => { var _a; return !((_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[key]); }).length)
|
|
52
|
+
return Object.keys(foreignKeyColumn).reduce((object, current) => { var _a; return (Object.assign(Object.assign({}, object), { [foreignKeyColumn[current]]: (_a = data[attributeName]) === null || _a === void 0 ? void 0 : _a[current] })); }, Object.assign({}, result));
|
|
53
|
+
if (update && isObject(data[attributeName]) && !isNil(attributeFields) && !isDate(data[attributeName]))
|
|
54
|
+
return result;
|
|
55
|
+
if (!!columnName && Array.isArray(attributeFields) && isObject(data[attributeName])) {
|
|
56
|
+
const converted = !isNil(columnName) && to ? to(instance[attributeName], instance) : data[attributeName];
|
|
57
|
+
return Object.assign(Object.assign({}, result), (converted !== undefined
|
|
58
|
+
? {
|
|
59
|
+
[columnName]: {
|
|
60
|
+
data: instance[attributeName] instanceof BaseModel
|
|
61
|
+
? GraphQLFieldHelper.ConvertFieldValueTo(data[attributeName], attributeFields)
|
|
62
|
+
: converted,
|
|
63
|
+
},
|
|
64
|
+
}
|
|
65
|
+
: {}));
|
|
66
|
+
}
|
|
67
|
+
if (!!to)
|
|
68
|
+
return Object.assign(Object.assign({}, result), { [columnName]: to(instance[attributeName], instance) });
|
|
69
|
+
return Object.assign(Object.assign({}, result), { [columnName]: data[attributeName] });
|
|
70
|
+
}, {});
|
|
71
|
+
};
|
|
72
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JhcGhxbC1maWVsZC5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9ncmFwaHFsLWZpZWxkLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxHQUlWLE1BQU0sb0JBQW9CLENBQUE7QUFDM0IsT0FBTyxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0sbUJBQW1CLENBQUE7QUFHN0YsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFFakUsTUFBTSxPQUFPLGtCQUFrQjs7QUFDdEIsdUNBQW9CLEdBQUcsQ0FDNUIsTUFBdUMsRUFDTCxFQUFFLENBQ3BDLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7QUFFcEYsb0RBQWlDLEdBQUcsQ0FDekMsTUFBa0MsRUFDMUIsRUFBRTtJQUNWLE9BQU8sTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUNULEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1FBQ2QsSUFBSSxRQUFRLENBQUMsS0FBSyxDQUFDO1lBQUUsT0FBTyxLQUFLLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFNUMsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQTtRQUM1QyxNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUE7UUFFbkMsSUFBSSxLQUFL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SUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLEVBQUU7WUFDbkYsTUFBTSxTQUFTLEdBQUcsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUE7WUFFeEcsdUNBQ0ssTUFBTSxHQUNOLENBQUMsU0FBUyxLQUFLLFNBQVM7Z0JBQ3pCLENBQUMsQ0FBQztvQkFDRSxDQUFDLFVBQVUsQ0FBQyxFQUFFO3dCQUNaLElBQUksRUFDRixRQUFRLENBQUMsYUFBYSxDQUFDLFlBQVksU0FBUzs0QkFDMUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsRUFBRSxlQUFlLENBQUM7NEJBQzlFLENBQUMsQ0FBQyxTQUFTO3FCQUNoQjtpQkFDRjtnQkFDSCxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQ1I7U0FDRjtRQUVELElBQUksQ0FBQyxDQUFDLEVBQUU7WUFBRSx1Q0FBWSxNQUFNLEtBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxJQUFFO1FBRW5GLHVDQUFZLE1BQU0sS0FBRSxDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBRTtJQUN6RCxDQUFDLEVBQUUsRUFBYyxDQUFDLENBQUE7QUFDcEIsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQmFzZU1vZGVsLFxuICBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIE5vbkZ1bmN0aW9uQW5kSWRlbnRpZmllclByb3BlcnR5TmFtZXMsXG4gIE5vbkZ1bmN0aW9uUHJvcGVydGllcyxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNEYXRlLCBpc0VtcHR5LCBpc05pbCwgaXNPYmplY3QsIGlzU3RyaW5nLCBwYXJzZURhdGVUaW1lIH0gZnJvbSAnLi4vLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBGaWVsZHMsIEdyYXBoUUxQYXJhbXMsIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi8uLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9hdHRyaWJ1dGUtb3B0aW9uLmhlbHBlcidcblxuZXhwb3J0IGNsYXNzIEdyYXBoUUxGaWVsZEhlbHBlciB7XG4gIHN0YXRpYyBDaGVja0lzR3JhcGhRTFBhcmFtcyA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgcGFyYW1zOiBzdHJpbmcgfCBHcmFwaFFMUGFyYW1zPE1vZGVsPltdLFxuICApOiBwYXJhbXMgaXMgR3JhcGhRTFBhcmFtczxNb2RlbD5bXSA9PlxuICAgICFpc1N0cmluZyhwYXJhbXMpICYmIEFycmF5LmlzQXJyYXkocGFyYW1zKSAmJiBwYXJhbXMubGVuZ3RoID49IDAgJiYgISFwYXJhbXNbMF0ub3BlcmF0aW9uXG5cbiAgc3RhdGljIENvbnZlcnRNb2RlbEZpZWxkc1RvR3JhcGhRTEZpZWxkcyA9IDxNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZT4oXG4gICAgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgKTogRmllbGRzID0+IHtcbiAgICByZXR1cm4gZmllbGRzXG4gICAgICA/Lm1hcCgoZmllbGQpID0+IHtcbiAgICAgICAgaWYgKGlzU3RyaW5nKGZpZWxkKSkgcmV0dXJuIGZpZWxkLnRvU3RyaW5nKClcblxuICAgICAgICBjb25zdCBmaWVsZE5hbWUgPSBPYmplY3Qua2V5cyhmaWVsZCkuc2hpZnQoKVxuICAgICAgICBjb25zdCBmaWVsZFZhbHVlID0gZmllbGRbZmllbGROYW1lXVxuXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGZpZWxkVmFsdWUpKVxuICAgICAgICAgIHJldHVybiB7IFtmaWVsZE5hbWVdOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKGZpZWxkVmFsdWUpIH1cbiAgICAgICAgaWYgKCFBdHRyaWJ1dGVPcHRpb25IZWxwZXIuQ2hlY2tJc0NvbHVtbk9wdGlvbihmaWVsZFZhbHVlKSkgcmV0dXJuXG4gICAgICAgIGlmIChmaWVsZFZhbHVlLmZpZWxkcylcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgW2ZpZWxkVmFsdWUuY29sdW1uTmFtZSB8fCBmaWVsZE5hbWVdOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydE1vZGVsRmllbGRzVG9HcmFwaFFMRmllbGRzKFxuICAgICAgICAgICAgICBmaWVsZFZhbHVlLmZpZWxkcyxcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBmaWVsZFZhbHVlLmNvbHVtbk5hbWVcbiAgICAgIH0pXG4gICAgICAuZmlsdGVyKChmaWVsZCkgPT4gISFmaWVsZClcbiAgfVxuXG4gIHN0YXRpYyBDb252ZXJ0RmllbGRWYWx1ZUZyb20gPSA8XG4gICAgTW9kZWwgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gICAgRGF0YVR5cGUgZXh0ZW5kcyBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBudW1iZXIgfCBEYXRhVHlwZSB8IERhdGU+LFxuICA+KFxuICAgIGRhdGE6IHN0cmluZyB8IG51bWJlciB8IERhdGFUeXBlIHwgRGF0ZSxcbiAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TW9kZWw+LFxuICApOiBQYXJ0aWFsPE5vbkZ1bmN0aW9uUHJvcGVydGllczxNb2RlbD4+ID0+XG4gICAgT2JqZWN0LmtleXMoZGF0YSkucmVkdWNlKChyZXN1bHQsIGNvbHVtbk5hbWUpID0+IHtcbiAgICAgIGNvbnN0IHtcbiAgICAgICAgYXR0cmlidXRlTmFtZSxcbiAgICAgICAgZmllbGRzOiBhdHRyaWJ1dGVGaWVsZHMsXG4gICAgICAgIGZyb20sXG4gICAgICB9ID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRDb2x1bW5PcHRpb25Gcm9tTGlzdChjb2x1bW5OYW1lLCBmaWVsZHMpXG5cbiAgICAgIGlmICghIWF0dHJpYnV0ZUZpZWxkcyAmJiBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZUZpZWxkcykpIHtcbiAgICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YVtjb2x1bW5OYW1lXSkpXG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAgIFthdHRyaWJ1dGVOYW1lXTogZnJvbVxuICAgICAgICAgICAgICA/IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSlcbiAgICAgICAgICAgICAgOiBkYXRhW2NvbHVtbk5hbWVdLm1hcCgodmFsdWUpID0+IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZUZyb20odmFsdWUsIGF0dHJpYnV0ZUZpZWxkcykpLFxuICAgICAgICAgIH1cbiAgICAgICAgaWYgKGlzT2JqZWN0KGRhdGFbY29sdW1uTmFtZV0pKVxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5yZXN1bHQsXG4gICAgICAgICAgICBbYXR0cmlidXRlTmFtZV06ICEhZnJvbVxuICAgICAgICAgICAgICA/IGZyb20oZGF0YVtjb2x1bW5OYW1lXSlcbiAgICAgICAgICAgICAgOiBHcmFwaFFMRmllbGRIZWxwZXIuQ29udmVydEZpZWxkVmFsdWVGcm9tKFxuICAgICAgICAgICAgICAgICAgZGF0YVtjb2x1bW5OYW1lXSxcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZUZpZWxkcyBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1vZGVsPixcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKCEhZnJvbSkgcmV0dXJuIHsgLi4ucmVzdWx0LCBbYXR0cmlidXRlTmFtZV06IGZyb20oZGF0YVtjb2x1bW5OYW1lXSwgZGF0YSkgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXN1bHQsIFthdHRyaWJ1dGVOYW1lXTogcGFyc2VEYXRlVGltZShkYXRhW2NvbHVtbk5hbWVdKSB9XG4gICAgfSwge30gYXMgUGFydGlhbDxOb25GdW5jdGlvblByb3BlcnRpZXM8TW9kZWw+PilcblxuICBzdGF0aWMgQ29udmVydEZpZWxkVmFsdWVUbyA9IDxcbiAgICBNb2RlbCBleHRlbmRzIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgICBEYXRhVHlwZSBleHRlbmRzIFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IERhdGFUeXBlIHwgRGF0ZT4sXG4gID4oXG4gICAgaW5zdGFuY2U6IE1vZGVsLFxuICAgIGZpZWxkczogSGFzdXJhR3JhcGhRTEZpZWxkczxNb2RlbD4sXG4gICAgdXBkYXRlID0gZmFsc2UsXG4gICk6IERhdGFUeXBlID0+IHtcbiAgICBjb25zdCBkYXRhID0gaW5zdGFuY2UudG9QbGFpbj8uKCkgfHwgaW5zdGFuY2VcblxuICAgIHJldHVybiBPYmplY3Qua2V5cyhkYXRhKS5yZWR1Y2UoKHJlc3VsdCwgYXR0cmlidXRlTmFtZSkgPT4ge1xuICAgICAgY29uc3Qge1xuICAgICAgICBjb2x1bW5OYW1lLFxuICAgICAgICBmaWVsZHM6IGF0dHJpYnV0ZUZpZWxkcyxcbiAgICAgICAgZm9yZWlnbktleUNvbHVtbixcbiAgICAgICAgdG8sXG4gICAgICAgIGJpbmRQZXJzaXN0RGF0YSxcbiAgICAgIH0gPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGF0dHJpYnV0ZU5hbWUgYXMgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNb2RlbD4sIGZpZWxkcylcblxuICAgICAgaWYgKGJpbmRQZXJzaXN0RGF0YSkgcmV0dXJuIHsgLi4ucmVzdWx0LCAuLi5iaW5kUGVyc2lzdERhdGEoZGF0YVthdHRyaWJ1dGVOYW1lXSwgaW5zdGFuY2UpIH1cbiAgICAgIGlmIChpc05pbChjb2x1bW5OYW1lKSkgcmV0dXJuIHJlc3VsdFxuICAgICAgaWYgKFxuICAgICAgICAhIWZvcmVpZ25LZXlDb2x1bW4gJiZcbiAgICAgICAgIWlzRW1wdHkoZm9yZWlnbktleUNvbHVtbikgJiZcbiAgICAgICAgIU9iamVjdC5rZXlzKGZvcmVpZ25LZXlDb2x1bW4pLmZpbHRlcigoa2V5KSA9PiAhZGF0YVthdHRyaWJ1dGVOYW1lXT8uW2tleV0pLmxlbmd0aFxuICAgICAgKVxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoZm9yZWlnbktleUNvbHVtbikucmVkdWNlKFxuICAgICAgICAgIChvYmplY3QsIGN1cnJlbnQpID0+ICh7IC4uLm9iamVjdCwgW2ZvcmVpZ25LZXlDb2x1bW5bY3VycmVudF1dOiBkYXRhW2F0dHJpYnV0ZU5hbWVdPy5bY3VycmVudF0gfSksXG4gICAgICAgICAgeyAuLi5yZXN1bHQgfSxcbiAgICAgICAgKVxuXG4gICAgICBpZiAodXBkYXRlICYmIGlzT2JqZWN0KGRhdGFbYXR0cmlidXRlTmFtZV0pICYmICFpc05pbChhdHRyaWJ1dGVGaWVsZHMpICYmICFpc0RhdGUoZGF0YVthdHRyaWJ1dGVOYW1lXSkpXG4gICAgICAgIHJldHVybiByZXN1bHRcblxuICAgICAgaWYgKCEhY29sdW1uTmFtZSAmJiBBcnJheS5pc0FycmF5KGF0dHJpYnV0ZUZpZWxkcykgJiYgaXNPYmplY3QoZGF0YVthdHRyaWJ1dGVOYW1lXSkpIHtcbiAgICAgICAgY29uc3QgY29udmVydGVkID0gIWlzTmlsKGNvbHVtbk5hbWUpICYmIHRvID8gdG8oaW5zdGFuY2VbYXR0cmlidXRlTmFtZV0sIGluc3RhbmNlKSA6IGRhdGFbYXR0cmlidXRlTmFtZV1cblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnJlc3VsdCxcbiAgICAgICAgICAuLi4oY29udmVydGVkICE9PSB1bmRlZmluZWRcbiAgICAgICAgICAgID8ge1xuICAgICAgICAgICAgICAgIFtjb2x1bW5OYW1lXToge1xuICAgICAgICAgICAgICAgICAgZGF0YTpcbiAgICAgICAgICAgICAgICAgICAgaW5zdGFuY2VbYXR0cmlidXRlTmFtZV0gaW5zdGFuY2VvZiBCYXNlTW9kZWxcbiAgICAgICAgICAgICAgICAgICAgICA/IEdyYXBoUUxGaWVsZEhlbHBlci5Db252ZXJ0RmllbGRWYWx1ZVRvKGRhdGFbYXR0cmlidXRlTmFtZV0sIGF0dHJpYnV0ZUZpZWxkcylcbiAgICAgICAgICAgICAgICAgICAgICA6IGNvbnZlcnRlZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA6IHt9KSxcbiAgICAgICAgfVxuICAgICAgfVxuXG4gICAgICBpZiAoISF0bykgcmV0dXJuIHsgLi4ucmVzdWx0LCBbY29sdW1uTmFtZV06IHRvKGluc3RhbmNlW2F0dHJpYnV0ZU5hbWVdLCBpbnN0YW5jZSkgfVxuXG4gICAgICByZXR1cm4geyAuLi5yZXN1bHQsIFtjb2x1bW5OYW1lXTogZGF0YVthdHRyaWJ1dGVOYW1lXSB9XG4gICAgfSwge30gYXMgRGF0YVR5cGUpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export * from './attribute-option.helper';
|
|
2
|
+
export * from './graphql-field.helper';
|
|
3
|
+
export * from './filter-option.helper';
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaGVscGVycy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFBO0FBQ3pDLGNBQWMsd0JBQXdCLENBQUE7QUFDdEMsY0FBYyx3QkFBd0IsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXR0cmlidXRlLW9wdGlvbi5oZWxwZXInXG5leHBvcnQgKiBmcm9tICcuL2dyYXBocWwtZmllbGQuaGVscGVyJ1xuZXhwb3J0ICogZnJvbSAnLi9maWx0ZXItb3B0aW9uLmhlbHBlcidcbiJdfQ==
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from './with-create-hasura-graphql.mixin';
|
|
2
|
+
export * from './with-delete-hasura-graphql.mixin';
|
|
3
|
+
export * from './with-hasura-graphql.mixin';
|
|
4
|
+
export * from './with-update-hasura-graphql.mixin';
|
|
5
|
+
export * from './with-get-hasura-graphql.mixin';
|
|
6
|
+
export * from './with-find-hasura-graphql.mixin';
|
|
7
|
+
export * from './with-crud-hasura-graphql.mixin';
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLG9DQUFvQyxDQUFBO0FBQ2xELGNBQWMsNkJBQTZCLENBQUE7QUFDM0MsY0FBYyxvQ0FBb0MsQ0FBQTtBQUNsRCxjQUFjLGlDQUFpQyxDQUFBO0FBQy9DLGNBQWMsa0NBQWtDLENBQUE7QUFDaEQsY0FBYyxrQ0FBa0MsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vd2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4nXG5leHBvcnQgKiBmcm9tICcuL3dpdGgtZGVsZXRlLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuZXhwb3J0ICogZnJvbSAnLi93aXRoLXVwZGF0ZS1oYXN1cmEtZ3JhcGhxbC5taXhpbidcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4nXG5leHBvcnQgKiBmcm9tICcuL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbidcbmV4cG9ydCAqIGZyb20gJy4vd2l0aC1jcnVkLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { AttributeOptionHelper } from './helpers';
|
|
3
|
+
export const withCreateHasuraGraphQL = (MixinBase) => {
|
|
4
|
+
return class CreateHasuraGraphQLMixin extends MixinBase {
|
|
5
|
+
constructor(...params) {
|
|
6
|
+
const options = params === null || params === void 0 ? void 0 : params[0];
|
|
7
|
+
super(...params);
|
|
8
|
+
this.insertGraphQLOperation = (options === null || options === void 0 ? void 0 : options.insertGraphQLOperation) || `insert_${this.tableName}_one`;
|
|
9
|
+
this.insertGraphQLObjectType = (options === null || options === void 0 ? void 0 : options.insertGraphQLObjectType) || `${this.tableName}_insert_input`;
|
|
10
|
+
}
|
|
11
|
+
create(data) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const newData = yield this.save(this.model.toInstance(data));
|
|
14
|
+
return this.model.toInstance(newData);
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
save(data) {
|
|
18
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
19
|
+
const primaryKeyColumns = this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName);
|
|
20
|
+
const foreignKeyColumns = this.fields
|
|
21
|
+
.map((field) => {
|
|
22
|
+
const columnOptions = Object.values(field).shift();
|
|
23
|
+
return (AttributeOptionHelper.CheckIsColumnOption(columnOptions) &&
|
|
24
|
+
columnOptions.foreignKeyColumn && [
|
|
25
|
+
...Object.values(columnOptions.foreignKeyColumn),
|
|
26
|
+
{
|
|
27
|
+
[columnOptions.columnName]: Object.keys(columnOptions.foreignKeyColumn).map((foreignKeyField) => {
|
|
28
|
+
var _a;
|
|
29
|
+
return ((_a = AttributeOptionHelper.FindByAttribute(foreignKeyField, columnOptions === null || columnOptions === void 0 ? void 0 : columnOptions.fields)) === null || _a === void 0 ? void 0 : _a.columnName) ||
|
|
30
|
+
foreignKeyField;
|
|
31
|
+
}),
|
|
32
|
+
},
|
|
33
|
+
]);
|
|
34
|
+
})
|
|
35
|
+
.filter(Boolean)
|
|
36
|
+
.reduce((keys, current) => [...keys, ...current], []);
|
|
37
|
+
const result = yield this.mutation(this.insertGraphQLOperation, [...primaryKeyColumns, ...foreignKeyColumns], {
|
|
38
|
+
object: { type: this.insertGraphQLObjectType, required: true, value: this.convertDataToHasura(data) },
|
|
39
|
+
});
|
|
40
|
+
return Object.assign(Object.assign({}, data.toPlain()), this.convertDataFromHasura(result[this.insertGraphQLOperation]).toPlain());
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
};
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1jcmVhdGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUlBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQU9qRCxNQUFNLENBQUMsTUFBTSx1QkFBdUIsR0FBRyxDQUlyQyxTQUEyRCxFQUkzRCxFQUFFO0lBQ0YsT0FBTyxNQUFNLHdCQUF5QixTQUFRLFNBQVM7UUFJckQsWUFBWSxHQUFHLE1BQU07WUFDbkIsTUFBTSxPQUFPLEdBQTRCLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRyxDQUFDLENBQUMsQ0FBQTtZQUVwRCxLQUFLLENBQUMsR0FBRyxNQUFNLENBQUMsQ0FBQTtZQUVoQixJQUFJLENBQUMsc0JBQXNCLEdBQUcsQ0FBQSxPQUFPLGFBQVAsT0FBTyx1QkFBUCxPQUFPLENBQUUsc0JBQXNCLEtBQUksVUFBVSxJQUFJLENBQUMsU0FBUyxNQUFNLENBQUE7WUFDL0YsSUFBSSxDQUFDLHVCQUF1QixHQUFHLENBQUEsT0FBTyxhQUFQLE9BQU8sdUJBQVAsT0FBTyxDQUFFLHVCQUF1QixLQUFJLEdBQUcsSUFBSSxDQUFDLFNBQVMsZUFBZSxDQUFBO1FBQ3JHLENBQUM7UUFFSyxNQUFNLENBQUMsSUFBbUM7O2dCQUM5QyxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBVyxDQUFDLENBQUMsQ0FBQTtnQkFFbkUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQTtZQUN2QyxDQUFDO1NBQUE7UUFFSyxJQUFJLENBQUMsSUFBVzs7Z0JBQ3BCLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQ3hELENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQ2xELENBQUE7Z0JBQy9CLE1BQU0saUJBQWlCLEdBQUcsSUFBSSxDQUFDLE1BQU07cUJBQ2xDLEdBQUcsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO29CQUNiLE1BQU0sYUFBYSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsS0FBSyxFQUFFLENBQUE7b0JBRWxELE9BQU8sQ0FDTCxxQkFBcUIsQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUM7d0JBQ3hELGFBQWEsQ0FBQyxnQkFBZ0IsSUFBSTt3QkFDaEMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxnQkFBZ0IsQ0FBQzt3QkFDaEQ7NEJBQ0UsQ0FBQyxhQUFhLENBQUMsVUFBVSxDQUFDLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxHQUFHLENBQ3pFLENBQUMsZUFBZSxFQUFFLEVBQUU7O2dDQUNsQixPQUFBLENBQUEsTUFBQSxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsZUFBc0IsRUFBRSxhQUFhLGFBQWIsYUFBYSx1QkFBYixhQUFhLENBQUUsTUFBTSxDQUFDLDBDQUFFLFVBQVU7b0NBQ2hHLGVBQWUsQ0FBQTs2QkFBQSxDQUNsQjt5QkFDRjtxQkFDRixDQUNGLENBQUE7Z0JBQ0gsQ0FBQyxDQUFDO3FCQUNELE1BQU0sQ0FBQyxPQUFPLENBQUM7cUJBQ2YsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO2dCQUV2RCxNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQ2hDLElBQUksQ0FBQyxzQkFBc0IsRUFDM0IsQ0FBQyxHQUFHLGlCQUFpQixFQUFFLEdBQUcsaUJBQWlCLENBQStCLEVBQzFFO29CQUNFLE1BQU0sRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsdUJBQXVCLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFO2lCQUN0RyxDQUNGLENBQUE7Z0JBRUQsdUNBQVksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFLLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxPQUFPLEVBQUUsRUFBRTtZQUM1RyxDQUFDO1NBQUE7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ3JlYXRlUmVwb3NpdG9yeSwgQ3JlYXRlUmVwb3NpdG9yeVBhcmFtcywgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtcywgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBHcmFwaFFMUmVwb3NpdG9yeSwgSGFzdXJhR3JhcGhRTEZpZWxkcyB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIENyZWF0ZUNvbnN0cnVjdG9yUGFyYW1zID0ge1xuICBpbnNlcnRHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG4gIGluc2VydEdyYXBoUUxPYmplY3RUeXBlPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoQ3JlYXRlSGFzdXJhR3JhcGhRTCA9IDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4gJiBUTWl4aW5CYXNlLFxuKTogTWl4aW5DdG9yPFxuICBHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4gJiBDcmVhdGVSZXBvc2l0b3J5PE1CYXNlPixcbiAgTWVyZ2VDb25zdHJ1Y3RvclBhcmFtczxDcmVhdGVDb25zdHJ1Y3RvclBhcmFtcywgQ29uc3RydWN0b3JQYXJhbWV0ZXJzPFRNaXhpbkJhc2U+PlxuPiA9PiB7XG4gIHJldHVybiBjbGFzcyBDcmVhdGVIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBDcmVhdGVSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgaW5zZXJ0R3JhcGhRTE9wZXJhdGlvbjogc3RyaW5nXG4gICAgaW5zZXJ0R3JhcGhRTE9iamVjdFR5cGU6IHN0cmluZ1xuXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zKSB7XG4gICAgICBjb25zdCBvcHRpb25zOiBDcmVhdGVDb25zdHJ1Y3RvclBhcmFtcyA9IHBhcmFtcz8uWzBdXG5cbiAgICAgIHN1cGVyKC4uLnBhcmFtcylcblxuICAgICAgdGhpcy5pbnNlcnRHcmFwaFFMT3BlcmF0aW9uID0gb3B0aW9ucz8uaW5zZXJ0R3JhcGhRTE9wZXJhdGlvbiB8fCBgaW5zZXJ0XyR7dGhpcy50YWJsZU5hbWV9X29uZWBcbiAgICAgIHRoaXMuaW5zZXJ0R3JhcGhRTE9iamVjdFR5cGUgPSBvcHRpb25zPy5pbnNlcnRHcmFwaFFMT2JqZWN0VHlwZSB8fCBgJHt0aGlzLnRhYmxlTmFtZX1faW5zZXJ0X2lucHV0YFxuICAgIH1cblxuICAgIGFzeW5jIGNyZWF0ZShkYXRhOiBDcmVhdGVSZXBvc2l0b3J5UGFyYW1zPE1CYXNlPik6IFByb21pc2U8TUJhc2U+IHtcbiAgICAgIGNvbnN0IG5ld0RhdGEgPSBhd2FpdCB0aGlzLnNhdmUodGhpcy5tb2RlbC50b0luc3RhbmNlKGRhdGEgYXMgYW55KSlcblxuICAgICAgcmV0dXJuIHRoaXMubW9kZWwudG9JbnN0YW5jZShuZXdEYXRhKVxuICAgIH1cblxuICAgIGFzeW5jIHNhdmUoZGF0YTogTUJhc2UpOiBQcm9taXNlPFBhcnRpYWw8TUJhc2U+PiB7XG4gICAgICBjb25zdCBwcmltYXJ5S2V5Q29sdW1ucyA9IHRoaXMubW9kZWwuaWRlbnRpZmllcnNGaWVsZHMubWFwKFxuICAgICAgICAoZmllbGQpID0+IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoZmllbGQsIHRoaXMuZmllbGRzKS5jb2x1bW5OYW1lLFxuICAgICAgKSBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPlxuICAgICAgY29uc3QgZm9yZWlnbktleUNvbHVtbnMgPSB0aGlzLmZpZWxkc1xuICAgICAgICAubWFwKChmaWVsZCkgPT4ge1xuICAgICAgICAgIGNvbnN0IGNvbHVtbk9wdGlvbnMgPSBPYmplY3QudmFsdWVzKGZpZWxkKS5zaGlmdCgpXG5cbiAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgQXR0cmlidXRlT3B0aW9uSGVscGVyLkNoZWNrSXNDb2x1bW5PcHRpb24oY29sdW1uT3B0aW9ucykgJiZcbiAgICAgICAgICAgIGNvbHVtbk9wdGlvbnMuZm9yZWlnbktleUNvbHVtbiAmJiBbXG4gICAgICAgICAgICAgIC4uLk9iamVjdC52YWx1ZXMoY29sdW1uT3B0aW9ucy5mb3JlaWduS2V5Q29sdW1uKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIFtjb2x1bW5PcHRpb25zLmNvbHVtbk5hbWVdOiBPYmplY3Qua2V5cyhjb2x1bW5PcHRpb25zLmZvcmVpZ25LZXlDb2x1bW4pLm1hcChcbiAgICAgICAgICAgICAgICAgIChmb3JlaWduS2V5RmllbGQpID0+XG4gICAgICAgICAgICAgICAgICAgIEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoZm9yZWlnbktleUZpZWxkIGFzIGFueSwgY29sdW1uT3B0aW9ucz8uZmllbGRzKT8uY29sdW1uTmFtZSB8fFxuICAgICAgICAgICAgICAgICAgICBmb3JlaWduS2V5RmllbGQsXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICApXG4gICAgICAgIH0pXG4gICAgICAgIC5maWx0ZXIoQm9vbGVhbilcbiAgICAgICAgLnJlZHVjZSgoa2V5cywgY3VycmVudCkgPT4gWy4uLmtleXMsIC4uLmN1cnJlbnRdLCBbXSlcblxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5tdXRhdGlvbjxNQmFzZT4oXG4gICAgICAgIHRoaXMuaW5zZXJ0R3JhcGhRTE9wZXJhdGlvbixcbiAgICAgICAgWy4uLnByaW1hcnlLZXlDb2x1bW5zLCAuLi5mb3JlaWduS2V5Q29sdW1uc10gYXMgSGFzdXJhR3JhcGhRTEZpZWxkczxNQmFzZT4sXG4gICAgICAgIHtcbiAgICAgICAgICBvYmplY3Q6IHsgdHlwZTogdGhpcy5pbnNlcnRHcmFwaFFMT2JqZWN0VHlwZSwgcmVxdWlyZWQ6IHRydWUsIHZhbHVlOiB0aGlzLmNvbnZlcnREYXRhVG9IYXN1cmEoZGF0YSkgfSxcbiAgICAgICAgfSxcbiAgICAgIClcblxuICAgICAgcmV0dXJuIHsgLi4uZGF0YS50b1BsYWluKCksIC4uLnRoaXMuY29udmVydERhdGFGcm9tSGFzdXJhKHJlc3VsdFt0aGlzLmluc2VydEdyYXBoUUxPcGVyYXRpb25dKS50b1BsYWluKCkgfVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { withCreateHasuraGraphQL } from './with-create-hasura-graphql.mixin';
|
|
2
|
+
import { withDeleteHasuraGraphQL } from './with-delete-hasura-graphql.mixin';
|
|
3
|
+
import { withGetHasuraGraphQL } from './with-get-hasura-graphql.mixin';
|
|
4
|
+
import { withUpdateHasuraGraphQL, } from './with-update-hasura-graphql.mixin';
|
|
5
|
+
import { withFindHasuraGraphQL } from './with-find-hasura-graphql.mixin';
|
|
6
|
+
export const withCrudHasuraGraphQL = (MixinBase) => {
|
|
7
|
+
return class CrudHasuraGraphQLMixin extends withUpdateHasuraGraphQL(withGetHasuraGraphQL(withFindHasuraGraphQL(withDeleteHasuraGraphQL(withCreateHasuraGraphQL(MixinBase))))) {
|
|
8
|
+
};
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1jcnVkLWhhc3VyYS1ncmFwaHFsLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL3dpdGgtY3J1ZC1oYXN1cmEtZ3JhcGhxbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFJQSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFckcsT0FBTyxFQUEyQix1QkFBdUIsRUFBRSxNQUFNLG9DQUFvQyxDQUFBO0FBQ3JHLE9BQU8sRUFBd0Isb0JBQW9CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQTtBQUM1RixPQUFPLEVBR0wsdUJBQXVCLEdBQ3hCLE1BQU0sb0NBQW9DLENBQUE7QUFDM0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0NBQWtDLENBQUE7QUFFeEUsTUFBTSxDQUFDLE1BQU0scUJBQXFCLEdBQUcsQ0FLbkMsU0FBMkQsRUFXM0QsRUFBRTtJQUNGLE9BQU8sTUFBTSxzQkFDWCxTQUFRLHVCQUF1QixDQUM3QixvQkFBb0IsQ0FDbEIscUJBQXFCLENBQ25CLHVCQUF1QixDQUFDLHVCQUF1QixDQUFDLFNBQWdELENBQUMsQ0FBQyxDQUNuRyxDQUNGLENBQ0Y7S0FDeUMsQ0FBQTtBQUM5QyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2RlbEJhc2VTdHJ1Y3R1cmUsIENydWRSZXBvc2l0b3J5IH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgR3JhcGhRTFJlcG9zaXRvcnkgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IE1lcmdlQ29uc3RydWN0b3JQYXJhbXMsIE1peGluQ3RvciB9IGZyb20gJy4uLy4uLy4uL3V0aWxzJ1xuXG5pbXBvcnQgeyBDcmVhdGVDb25zdHJ1Y3RvclBhcmFtcywgd2l0aENyZWF0ZUhhc3VyYUdyYXBoUUwgfSBmcm9tICcuL3dpdGgtY3JlYXRlLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuaW1wb3J0IHsgQ29uc3RydWN0b3JQYXJhbXMgfSBmcm9tICcuL3dpdGgtaGFzdXJhLWdyYXBocWwubWl4aW4nXG5pbXBvcnQgeyBEZWxldGVDb25zdHJ1Y3RvclBhcmFtcywgd2l0aERlbGV0ZUhhc3VyYUdyYXBoUUwgfSBmcm9tICcuL3dpdGgtZGVsZXRlLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuaW1wb3J0IHsgR2V0Q29uc3RydWN0b3JQYXJhbXMsIHdpdGhHZXRIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi93aXRoLWdldC1oYXN1cmEtZ3JhcGhxbC5taXhpbidcbmltcG9ydCB7XG4gIFVwZGF0ZUNvbnN0cnVjdG9yUGFyYW1zLFxuICBVcGRhdGVIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVR5cGUsXG4gIHdpdGhVcGRhdGVIYXN1cmFHcmFwaFFMLFxufSBmcm9tICcuL3dpdGgtdXBkYXRlLWhhc3VyYS1ncmFwaHFsLm1peGluJ1xuaW1wb3J0IHsgd2l0aEZpbmRIYXN1cmFHcmFwaFFMIH0gZnJvbSAnLi93aXRoLWZpbmQtaGFzdXJhLWdyYXBocWwubWl4aW4nXG5cbmV4cG9ydCBjb25zdCB3aXRoQ3J1ZEhhc3VyYUdyYXBoUUwgPSA8XG4gIFRCYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBSZXBvc2l0b3J5ID0gQ3J1ZFJlcG9zaXRvcnk8VEJhc2U+LFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yID0gTWl4aW5DdG9yLFxuPihcbiAgTWl4aW5CYXNlOiBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8VEJhc2U+PiAmIFRNaXhpbkJhc2UsXG4pOiBNaXhpbkN0b3I8XG4gIEdyYXBoUUxSZXBvc2l0b3J5PFRCYXNlPiAmIFJlcG9zaXRvcnkgJiBVcGRhdGVIYXN1cmFHcmFwaFFMUmVwb3NpdG9yeVR5cGU8VEJhc2U+LFxuICBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zPFxuICAgIENvbnN0cnVjdG9yUGFyYW1zPFRCYXNlPiAmXG4gICAgICBDcmVhdGVDb25zdHJ1Y3RvclBhcmFtcyAmXG4gICAgICBEZWxldGVDb25zdHJ1Y3RvclBhcmFtcyAmXG4gICAgICBHZXRDb25zdHJ1Y3RvclBhcmFtcyAmXG4gICAgICBVcGRhdGVDb25zdHJ1Y3RvclBhcmFtcyxcbiAgICBDb25zdHJ1Y3RvclBhcmFtZXRlcnM8VE1peGluQmFzZT5cbiAgPlxuPiA9PiB7XG4gIHJldHVybiBjbGFzcyBDcnVkSGFzdXJhR3JhcGhRTE1peGluXG4gICAgZXh0ZW5kcyB3aXRoVXBkYXRlSGFzdXJhR3JhcGhRTChcbiAgICAgIHdpdGhHZXRIYXN1cmFHcmFwaFFMKFxuICAgICAgICB3aXRoRmluZEhhc3VyYUdyYXBoUUwoXG4gICAgICAgICAgd2l0aERlbGV0ZUhhc3VyYUdyYXBoUUwod2l0aENyZWF0ZUhhc3VyYUdyYXBoUUwoTWl4aW5CYXNlIGFzIE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxUQmFzZT4+KSksXG4gICAgICAgICksXG4gICAgICApLFxuICAgIClcbiAgICBpbXBsZW1lbnRzIENydWRSZXBvc2l0b3J5PFRCYXNlPiB7fSBhcyBhbnlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { isNil } from '../../../utils';
|
|
3
|
+
import { AttributeOptionHelper } from './helpers';
|
|
4
|
+
export const withDeleteHasuraGraphQL = (MixinBase) => {
|
|
5
|
+
return class DeleteHasuraGraphQLMixin extends MixinBase {
|
|
6
|
+
constructor(...params) {
|
|
7
|
+
const options = params === null || params === void 0 ? void 0 : params[0];
|
|
8
|
+
super(...params);
|
|
9
|
+
this.deleteGraphQLOperation = (options === null || options === void 0 ? void 0 : options.deleteGraphQLOperation) || `delete_${this.tableName}_by_pk`;
|
|
10
|
+
}
|
|
11
|
+
delete(identifiers) {
|
|
12
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
const instance = this.model.toInstance(identifiers);
|
|
14
|
+
yield this.mutation(this.deleteGraphQLOperation, this.model.identifiersFields.map((field) => AttributeOptionHelper.FindByAttribute(field, this.fields).columnName), this.model.identifiersFields.reduce((ids, identifier) => {
|
|
15
|
+
if (isNil(instance[identifier]))
|
|
16
|
+
return ids;
|
|
17
|
+
const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
|
|
18
|
+
const value = columnOption.to(identifiers[identifier.toString()], instance);
|
|
19
|
+
return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: {
|
|
20
|
+
type: this.getAttributeGraphQLTypeOf(columnOption.type || value),
|
|
21
|
+
value,
|
|
22
|
+
required: true,
|
|
23
|
+
} });
|
|
24
|
+
}, {}));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1kZWxldGUtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1kZWxldGUtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUVBLE9BQU8sRUFBRSxLQUFLLEVBQXFDLE1BQU0sZ0JBQWdCLENBQUE7QUFFekUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBTWpELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLENBSXJDLFNBQTJELEVBSTNELEVBQUU7SUFDRixPQUFPLE1BQU0sd0JBQXlCLFNBQVEsU0FBUztRQUdyRCxZQUFZLEdBQUcsTUFBYTtZQUMxQixNQUFNLE9BQU8sR0FBNEIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFHLENBQUMsQ0FBQyxDQUFBO1lBRXBELEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO1lBRWhCLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxzQkFBc0IsS0FBSSxVQUFVLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQTtRQUNuRyxDQUFDO1FBRUssTUFBTSxDQUFDLFdBQTBDOztnQkFDckQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBa0IsQ0FBQyxDQUFBO2dCQUUxRCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQ2pCLElBQUksQ0FBQyxzQkFBc0IsRUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLENBQzlCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxVQUFVLENBQ2xELEVBQy9CLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFO29CQUN0RCxJQUFJLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7d0JBQUUsT0FBTyxHQUFHLENBQUE7b0JBRTNDLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFBO29CQUNuRixNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQTtvQkFFM0UsdUNBQ0ssR0FBRyxLQUNOLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDOzRCQUNoRSxLQUFLOzRCQUNMLFFBQVEsRUFBRSxJQUFJO3lCQUNmLElBQ0Y7Z0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQLENBQUE7WUFDSCxDQUFDO1NBQUE7S0FDSyxDQUFBO0FBQ1YsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGVsZXRlUmVwb3NpdG9yeSwgRGVsZXRlUmVwb3NpdG9yeVBhcmFtcywgTW9kZWxCYXNlU3RydWN0dXJlIH0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgR3JhcGhRTFJlcG9zaXRvcnksIEhhc3VyYUdyYXBoUUxGaWVsZHMgfSBmcm9tICcuLi90eXBlcydcbmltcG9ydCB7IGlzTmlsLCBNZXJnZUNvbnN0cnVjdG9yUGFyYW1zLCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyIH0gZnJvbSAnLi9oZWxwZXJzJ1xuXG5leHBvcnQgdHlwZSBEZWxldGVDb25zdHJ1Y3RvclBhcmFtcyA9IHtcbiAgZGVsZXRlR3JhcGhRTE9wZXJhdGlvbj86IHN0cmluZ1xufVxuXG5leHBvcnQgY29uc3Qgd2l0aERlbGV0ZUhhc3VyYUdyYXBoUUwgPSA8XG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4sXG4+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+ICYgVE1peGluQmFzZSxcbik6IE1peGluQ3RvcjxcbiAgR3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+ICYgRGVsZXRlUmVwb3NpdG9yeTxNQmFzZT4gJiBJbnN0YW5jZVR5cGU8VE1peGluQmFzZT4sXG4gIE1lcmdlQ29uc3RydWN0b3JQYXJhbXM8RGVsZXRlQ29uc3RydWN0b3JQYXJhbXMsIENvbnN0cnVjdG9yUGFyYW1ldGVyczxUTWl4aW5CYXNlPj5cbj4gPT4ge1xuICByZXR1cm4gY2xhc3MgRGVsZXRlSGFzdXJhR3JhcGhRTE1peGluIGV4dGVuZHMgTWl4aW5CYXNlIGltcGxlbWVudHMgRGVsZXRlUmVwb3NpdG9yeTxNQmFzZT4ge1xuICAgIGRlbGV0ZUdyYXBoUUxPcGVyYXRpb246IHN0cmluZ1xuXG4gICAgY29uc3RydWN0b3IoLi4ucGFyYW1zOiBhbnlbXSkge1xuICAgICAgY29uc3Qgb3B0aW9uczogRGVsZXRlQ29uc3RydWN0b3JQYXJhbXMgPSBwYXJhbXM/LlswXVxuXG4gICAgICBzdXBlciguLi5wYXJhbXMpXG5cbiAgICAgIHRoaXMuZGVsZXRlR3JhcGhRTE9wZXJhdGlvbiA9IG9wdGlvbnM/LmRlbGV0ZUdyYXBoUUxPcGVyYXRpb24gfHwgYGRlbGV0ZV8ke3RoaXMudGFibGVOYW1lfV9ieV9wa2BcbiAgICB9XG5cbiAgICBhc3luYyBkZWxldGUoaWRlbnRpZmllcnM6IERlbGV0ZVJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICBjb25zdCBpbnN0YW5jZSA9IHRoaXMubW9kZWwudG9JbnN0YW5jZShpZGVudGlmaWVycyBhcyBhbnkpXG5cbiAgICAgIGF3YWl0IHRoaXMubXV0YXRpb24oXG4gICAgICAgIHRoaXMuZGVsZXRlR3JhcGhRTE9wZXJhdGlvbixcbiAgICAgICAgdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5tYXAoXG4gICAgICAgICAgKGZpZWxkKSA9PiBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKGZpZWxkLCB0aGlzLmZpZWxkcykuY29sdW1uTmFtZSxcbiAgICAgICAgKSBhcyBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPixcbiAgICAgICAgdGhpcy5tb2RlbC5pZGVudGlmaWVyc0ZpZWxkcy5yZWR1Y2UoKGlkcywgaWRlbnRpZmllcikgPT4ge1xuICAgICAgICAgIGlmIChpc05pbChpbnN0YW5jZVtpZGVudGlmaWVyXSkpIHJldHVybiBpZHNcblxuICAgICAgICAgIGNvbnN0IGNvbHVtbk9wdGlvbiA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoaWRlbnRpZmllciwgdGhpcy5maWVsZHMpXG4gICAgICAgICAgY29uc3QgdmFsdWUgPSBjb2x1bW5PcHRpb24udG8oaWRlbnRpZmllcnNbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4uaWRzLFxuICAgICAgICAgICAgW2NvbHVtbk9wdGlvbi5jb2x1bW5OYW1lXToge1xuICAgICAgICAgICAgICB0eXBlOiB0aGlzLmdldEF0dHJpYnV0ZUdyYXBoUUxUeXBlT2YoY29sdW1uT3B0aW9uLnR5cGUgfHwgdmFsdWUpLFxuICAgICAgICAgICAgICB2YWx1ZSxcbiAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgfSwge30pLFxuICAgICAgKVxuICAgIH1cbiAgfSBhcyBhbnlcbn1cbiJdfQ==
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { Where, } from '../../../domain';
|
|
3
|
+
import { isNil, isObject } from '../../../utils';
|
|
4
|
+
import { HasuraGraphQLColumnType, HasuraGraphQLWhere } from '../enums';
|
|
5
|
+
import { AttributeOptionHelper, FilterOptionHelper } from './helpers';
|
|
6
|
+
export const withFindHasuraGraphQL = (MixinBase) => {
|
|
7
|
+
return class FindHasuraGraphQLMixin extends MixinBase {
|
|
8
|
+
constructor() {
|
|
9
|
+
super(...arguments);
|
|
10
|
+
this.makeGraphQLWhere = (filter, fields) => Object.keys(filter).reduce((variables, fieldName) => {
|
|
11
|
+
const columnOption = AttributeOptionHelper.FindByAttribute(fieldName, fields);
|
|
12
|
+
if (!columnOption.bindFindFilter)
|
|
13
|
+
return Object.assign(Object.assign({}, variables), { [columnOption.columnName]: this.buildWhereSentence(fieldName, filter[fieldName], fields) });
|
|
14
|
+
const builtFilter = columnOption.bindFindFilter(filter[fieldName]);
|
|
15
|
+
return Object.assign(Object.assign({}, variables), Object.keys(builtFilter).reduce((variablesList, columnName) => (Object.assign(Object.assign({}, variablesList), { [columnName]: this.buildWhereSentence(fieldName, builtFilter[columnName], fields) })), {}));
|
|
16
|
+
}, {});
|
|
17
|
+
this.buildWhereSentence = (field, options, fields) => {
|
|
18
|
+
const fieldSentenceOptions = AttributeOptionHelper.FindByAttribute(field, fields);
|
|
19
|
+
if (!Array.isArray(options) &&
|
|
20
|
+
isObject(options) &&
|
|
21
|
+
isNil(options === null || options === void 0 ? void 0 : options.operator) &&
|
|
22
|
+
isNil(options === null || options === void 0 ? void 0 : options.value) &&
|
|
23
|
+
isNil(fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.to))
|
|
24
|
+
return Object.keys(options).reduce((variables, key) => {
|
|
25
|
+
const fieldOptions = AttributeOptionHelper.FindByAttribute(key, (fieldSentenceOptions === null || fieldSentenceOptions === void 0 ? void 0 : fieldSentenceOptions.fields) || fields);
|
|
26
|
+
const columnName = fieldOptions.columnName;
|
|
27
|
+
const columnFields = fieldOptions.fields;
|
|
28
|
+
return Object.assign(Object.assign({}, variables), { [columnName]: this.buildWhereSentence(key, options[key], columnFields || []) });
|
|
29
|
+
}, {});
|
|
30
|
+
if (!Array.isArray(options) && !isNil(fieldSentenceOptions.fields))
|
|
31
|
+
return {
|
|
32
|
+
[fieldSentenceOptions.fields[0]]: this.buildOperatorSentence(options, fieldSentenceOptions),
|
|
33
|
+
};
|
|
34
|
+
if (isObject(options) && !FilterOptionHelper.CheckIfIsFilterOption(options))
|
|
35
|
+
options = Object.values(options)[0];
|
|
36
|
+
return Array.isArray(options)
|
|
37
|
+
? options.reduce((whereSentence, option) => (Object.assign(Object.assign({}, whereSentence), this.buildOperatorSentence(option, fieldSentenceOptions))), {})
|
|
38
|
+
: this.buildOperatorSentence(options, fieldSentenceOptions);
|
|
39
|
+
};
|
|
40
|
+
this.buildOperatorSentence = (options, fieldOption) => ({
|
|
41
|
+
[this.getHasuraOperator(options, fieldOption)]: FilterOptionHelper.GetValueFromFilter(options, fieldOption),
|
|
42
|
+
});
|
|
43
|
+
this.getHasuraOperator = (options, fieldOption) => FilterOptionHelper.CheckIfIsFilterOption(options)
|
|
44
|
+
? fieldOption.type === HasuraGraphQLColumnType.Jsonb
|
|
45
|
+
? this.getHasuraJsonbOperator(options)
|
|
46
|
+
: HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))]
|
|
47
|
+
: HasuraGraphQLWhere.EQUALS;
|
|
48
|
+
this.getHasuraJsonbOperator = (options) => options.operator === Where.IN
|
|
49
|
+
? '_contains'
|
|
50
|
+
: options.operator === Where.LIKE
|
|
51
|
+
? '_has_keys_any'
|
|
52
|
+
: HasuraGraphQLWhere[Object.keys(HasuraGraphQLWhere).find((graphQLOperator) => graphQLOperator === Object.keys(Where).find((operator) => Where[operator] === (options === null || options === void 0 ? void 0 : options.operator)))];
|
|
53
|
+
}
|
|
54
|
+
find(options) {
|
|
55
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
56
|
+
const { filters, limits, orderBy } = options || {};
|
|
57
|
+
const variablesCount = Object.assign(Object.assign({}, (isNil(orderBy) ? {} : { order_by: { type: `${this.tableName}_order_by!`, list: true, value: orderBy } })), (isNil(filters)
|
|
58
|
+
? {}
|
|
59
|
+
: {
|
|
60
|
+
where: {
|
|
61
|
+
value: this.makeGraphQLWhere(filters, this.fields),
|
|
62
|
+
type: `${this.tableName}_bool_exp`,
|
|
63
|
+
required: true,
|
|
64
|
+
},
|
|
65
|
+
}));
|
|
66
|
+
const variables = Object.assign(Object.assign({}, (isNil(limits) ? {} : limits)), variablesCount);
|
|
67
|
+
const result = yield this.query([
|
|
68
|
+
{
|
|
69
|
+
operation: this.tableName,
|
|
70
|
+
fields: options.fields
|
|
71
|
+
? options.fields
|
|
72
|
+
.map((fieldName) => {
|
|
73
|
+
var _a;
|
|
74
|
+
return (_a = this.fields.find((fieldOption) => fieldOption === fieldName)) !== null && _a !== void 0 ? _a : this.fields.find((fieldOption) => Object.keys(fieldOption).shift() === fieldName);
|
|
75
|
+
})
|
|
76
|
+
.filter(Boolean)
|
|
77
|
+
: this.fields,
|
|
78
|
+
variables,
|
|
79
|
+
},
|
|
80
|
+
{
|
|
81
|
+
operation: `${this.tableName}_aggregate`,
|
|
82
|
+
fields: [{ aggregate: ['count'] }],
|
|
83
|
+
variables: variablesCount,
|
|
84
|
+
},
|
|
85
|
+
]);
|
|
86
|
+
const data = result[this.tableName].map((row) => this.convertDataFromHasura(row));
|
|
87
|
+
const count = result[`${this.tableName}_aggregate`].aggregate.count;
|
|
88
|
+
return { count, data };
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
};
|
|
92
|
+
};
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1maW5kLWhhc3VyYS1ncmFwaHFsLm1peGluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29ubmVjdC9zcmMvaW5mcmEvaGFzdXJhLWdyYXBocWwvbWl4aW5zL3dpdGgtZmluZC1oYXN1cmEtZ3JhcGhxbC5taXhpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQVVMLEtBQUssR0FDTixNQUFNLGlCQUFpQixDQUFBO0FBQ3hCLE9BQU8sRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFhLE1BQU0sZ0JBQWdCLENBQUE7QUFDM0QsT0FBTyxFQUFFLHVCQUF1QixFQUFFLGtCQUFrQixFQUFFLE1BQU0sVUFBVSxDQUFBO0FBR3RFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLFdBQVcsQ0FBQTtBQUVyRSxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxDQUluQyxTQUEyRCxFQUMzRCxFQUFFO0lBQ0YsT0FBTyxNQUFNLHNCQUF1QixTQUFRLFNBQVM7UUFBOUM7O1lBa0RMLHFCQUFnQixHQUFHLENBQUMsTUFBcUMsRUFBRSxNQUFrQyxFQUFtQixFQUFFLENBQ2hILE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsU0FBMEIsRUFBRSxTQUFpQixFQUFFLEVBQUU7Z0JBQzNFLE1BQU0sWUFBWSxHQUFHLHFCQUFxQixDQUFDLGVBQWUsQ0FDeEQsU0FBeUQsRUFDekQsTUFBTSxDQUNQLENBQUE7Z0JBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjO29CQUM5Qix1Q0FDSyxTQUFTLEdBQ1QsRUFBRSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsU0FBZ0IsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEVBQUUsTUFBTSxDQUFDLEVBQUUsRUFDdkc7Z0JBRUgsTUFBTSxXQUFX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U0FBQTtLQStHRixDQUFBO0FBQ0gsQ0FBQyxDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgRmluZFJlcG9zaXRvcnksXG4gIE1vZGVsQmFzZVN0cnVjdHVyZSxcbiAgTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lcyxcbiAgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzLFxuICBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9ucyxcbiAgUmVwb3NpdG9yeUZpbmRSZXN1bHQsXG4gIFJlcG9zaXRvcnlMaW1pdE9wdGlvbnMsXG4gIFJlcG9zaXRvcnlPcmRlckJ5LFxuICBXaGVyZSxcbn0gZnJvbSAnLi4vLi4vLi4vZG9tYWluJ1xuaW1wb3J0IHsgaXNOaWwsIGlzT2JqZWN0LCBNaXhpbkN0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscydcbmltcG9ydCB7IEhhc3VyYUdyYXBoUUxDb2x1bW5UeXBlLCBIYXN1cmFHcmFwaFFMV2hlcmUgfSBmcm9tICcuLi9lbnVtcydcbmltcG9ydCB7IENvbHVtbk9wdGlvbnMsIEdyYXBoUUxSZXBvc2l0b3J5LCBIYXN1cmFHcmFwaFFMRmllbGRzLCBWYXJpYWJsZU9wdGlvbnMgfSBmcm9tICcuLi90eXBlcydcblxuaW1wb3J0IHsgQXR0cmlidXRlT3B0aW9uSGVscGVyLCBGaWx0ZXJPcHRpb25IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCBjb25zdCB3aXRoRmluZEhhc3VyYUdyYXBoUUwgPSA8XG4gIE1CYXNlIGV4dGVuZHMgTW9kZWxCYXNlU3RydWN0dXJlLFxuICBUTWl4aW5CYXNlIGV4dGVuZHMgTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4sXG4+KFxuICBNaXhpbkJhc2U6IE1peGluQ3RvcjxHcmFwaFFMUmVwb3NpdG9yeTxNQmFzZT4+ICYgVE1peGluQmFzZSxcbikgPT4ge1xuICByZXR1cm4gY2xhc3MgRmluZEhhc3VyYUdyYXBoUUxNaXhpbiBleHRlbmRzIE1peGluQmFzZSBpbXBsZW1lbnRzIEZpbmRSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgYXN5bmMgZmluZChvcHRpb25zPzoge1xuICAgICAgZmlsdGVycz86IFJlcG9zaXRvcnlGaW5kRmllbHRlcnM8TUJhc2U+XG4gICAgICBmaWVsZHM/OiBOb25GdW5jdGlvblByb3BlcnR5TmFtZXM8TUJhc2U+W11cbiAgICAgIGxpbWl0cz86IFJlcG9zaXRvcnlMaW1pdE9wdGlvbnM8TUJhc2U+XG4gICAgICBvcmRlckJ5PzogUmVwb3NpdG9yeU9yZGVyQnk8TUJhc2U+XG4gICAgfSk6IFByb21pc2U8UmVwb3NpdG9yeUZpbmRSZXN1bHQ8TUJhc2U+PiB7XG4gICAgICBjb25zdCB7IGZpbHRlcnMsIGxpbWl0cywgb3JkZXJCeSB9ID0gb3B0aW9ucyB8fCB7fVxuICAgICAgY29uc3QgdmFyaWFibGVzQ291bnQgPSB7XG4gICAgICAgIC4uLihpc05pbChvcmRlckJ5KSA/IHt9IDogeyBvcmRlcl9ieTogeyB0eXBlOiBgJHt0aGlzLnRhYmxlTmFtZX1fb3JkZXJfYnkhYCwgbGlzdDogdHJ1ZSwgdmFsdWU6IG9yZGVyQnkgfSB9KSxcbiAgICAgICAgLi4uKGlzTmlsKGZpbHRlcnMpXG4gICAgICAgICAgPyB7fVxuICAgICAgICAgIDoge1xuICAgICAgICAgICAgICB3aGVyZToge1xuICAgICAgICAgICAgICAgIHZhbHVlOiB0aGlzLm1ha2VHcmFwaFFMV2hlcmUoZmlsdGVycywgdGhpcy5maWVsZHMpLFxuICAgICAgICAgICAgICAgIHR5cGU6IGAke3RoaXMudGFibGVOYW1lfV9ib29sX2V4cGAsXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6IHRydWUsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgIH1cbiAgICAgIGNvbnN0IHZhcmlhYmxlcyA9IHtcbiAgICAgICAgLi4uKGlzTmlsKGxpbWl0cykgPyB7fSA6IGxpbWl0cyksXG4gICAgICAgIC4uLnZhcmlhYmxlc0NvdW50LFxuICAgICAgfVxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgdGhpcy5xdWVyeShbXG4gICAgICAgIHtcbiAgICAgICAgICBvcGVyYXRpb246IHRoaXMudGFibGVOYW1lLFxuICAgICAgICAgIGZpZWxkczogb3B0aW9ucy5maWVsZHNcbiAgICAgICAgICAgID8gb3B0aW9ucy5maWVsZHNcbiAgICAgICAgICAgICAgICAubWFwKFxuICAgICAgICAgICAgICAgICAgKGZpZWxkTmFtZSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5maWVsZHMuZmluZCgoZmllbGRPcHRpb24pID0+IGZpZWxkT3B0aW9uID09PSBmaWVsZE5hbWUpID8/XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZmllbGRzLmZpbmQoKGZpZWxkT3B0aW9uKSA9PiBPYmplY3Qua2V5cyhmaWVsZE9wdGlvbikuc2hpZnQoKSA9PT0gZmllbGROYW1lKSxcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgOiB0aGlzLmZpZWxkcyxcbiAgICAgICAgICB2YXJpYWJsZXMsXG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBvcGVyYXRpb246IGAke3RoaXMudGFibGVOYW1lfV9hZ2dyZWdhdGVgLFxuICAgICAgICAgIGZpZWxkczogW3sgYWdncmVnYXRlOiBbJ2NvdW50J10gfV0sXG4gICAgICAgICAgdmFyaWFibGVzOiB2YXJpYWJsZXNDb3VudCxcbiAgICAgICAgfSxcbiAgICAgIF0pXG4gICAgICBjb25zdCBkYXRhOiBNQmFzZVtdID0gcmVzdWx0W3RoaXMudGFibGVOYW1lXS5tYXAoKHJvdykgPT4gdGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocm93KSlcbiAgICAgIGNvbnN0IGNvdW50ID0gcmVzdWx0W2Ake3RoaXMudGFibGVOYW1lfV9hZ2dyZWdhdGVgXS5hZ2dyZWdhdGUuY291bnRcblxuICAgICAgcmV0dXJuIHsgY291bnQsIGRhdGEgfVxuICAgIH1cblxuICAgIG1ha2VHcmFwaFFMV2hlcmUgPSAoZmlsdGVyOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzPE1CYXNlPiwgZmllbGRzOiBIYXN1cmFHcmFwaFFMRmllbGRzPE1CYXNlPik6IFZhcmlhYmxlT3B0aW9ucyA9PlxuICAgICAgT2JqZWN0LmtleXMoZmlsdGVyKS5yZWR1Y2UoKHZhcmlhYmxlczogVmFyaWFibGVPcHRpb25zLCBmaWVsZE5hbWU6IHN0cmluZykgPT4ge1xuICAgICAgICBjb25zdCBjb2x1bW5PcHRpb24gPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKFxuICAgICAgICAgIGZpZWxkTmFtZSBhcyBOb25GdW5jdGlvbkFuZElkZW50aWZpZXJQcm9wZXJ0eU5hbWVzPE1CYXNlPixcbiAgICAgICAgICBmaWVsZHMsXG4gICAgICAgIClcblxuICAgICAgICBpZiAoIWNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcilcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAgICAgLi4ueyBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiB0aGlzLmJ1aWxkV2hlcmVTZW50ZW5jZShmaWVsZE5hbWUgYXMgYW55LCBmaWx0ZXJbZmllbGROYW1lXSwgZmllbGRzKSB9LFxuICAgICAgICAgIH1cblxuICAgICAgICBjb25zdCBidWlsdEZpbHRlciA9IGNvbHVtbk9wdGlvbi5iaW5kRmluZEZpbHRlcihmaWx0ZXJbZmllbGROYW1lXSlcblxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIC4uLnZhcmlhYmxlcyxcbiAgICAgICAgICAuLi5PYmplY3Qua2V5cyhidWlsdEZpbHRlcikucmVkdWNlKFxuICAgICAgICAgICAgKHZhcmlhYmxlc0xpc3Q6IFZhcmlhYmxlT3B0aW9ucywgY29sdW1uTmFtZTogc3RyaW5nKSA9PiAoe1xuICAgICAgICAgICAgICAuLi52YXJpYWJsZXNMaXN0LFxuICAgICAgICAgICAgICBbY29sdW1uTmFtZV06IHRoaXMuYnVpbGRXaGVyZVNlbnRlbmNlKGZpZWxkTmFtZSBhcyBhbnksIGJ1aWx0RmlsdGVyW2NvbHVtbk5hbWVdIGFzIGFueSwgZmllbGRzKSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAge30sXG4gICAgICAgICAgKSxcbiAgICAgICAgfVxuICAgICAgfSwge30pXG5cbiAgICBidWlsZFdoZXJlU2VudGVuY2UgPSAoXG4gICAgICBmaWVsZDogTm9uRnVuY3Rpb25BbmRJZGVudGlmaWVyUHJvcGVydHlOYW1lczxNQmFzZT4sXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXG4gICAgICBmaWVsZHM6IEhhc3VyYUdyYXBoUUxGaWVsZHM8TUJhc2U+LFxuICAgICk6IFZhcmlhYmxlT3B0aW9ucyA9PiB7XG4gICAgICBjb25zdCBmaWVsZFNlbnRlbmNlT3B0aW9ucyA9IEF0dHJpYnV0ZU9wdGlvbkhlbHBlci5GaW5kQnlBdHRyaWJ1dGUoZmllbGQsIGZpZWxkcylcblxuICAgICAgaWYgKFxuICAgICAgICAhQXJyYXkuaXNBcnJheShvcHRpb25zKSAmJlxuICAgICAgICBpc09iamVjdChvcHRpb25zKSAmJlxuICAgICAgICBpc05pbChvcHRpb25zPy5vcGVyYXRvcikgJiZcbiAgICAgICAgaXNOaWwob3B0aW9ucz8udmFsdWUpICYmXG4gICAgICAgIGlzTmlsKGZpZWxkU2VudGVuY2VPcHRpb25zPy50bylcbiAgICAgIClcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKG9wdGlvbnMpLnJlZHVjZSgodmFyaWFibGVzLCBrZXkpID0+IHtcbiAgICAgICAgICBjb25zdCBmaWVsZE9wdGlvbnMgPSBBdHRyaWJ1dGVPcHRpb25IZWxwZXIuRmluZEJ5QXR0cmlidXRlKFxuICAgICAgICAgICAga2V5IGFzIGFueSxcbiAgICAgICAgICAgIGZpZWxkU2VudGVuY2VPcHRpb25zPy5maWVsZHMgfHwgKGZpZWxkcyBhcyBhbnkpLFxuICAgICAgICAgIClcbiAgICAgICAgICBjb25zdCBjb2x1bW5OYW1lID0gZmllbGRPcHRpb25zLmNvbHVtbk5hbWVcbiAgICAgICAgICBjb25zdCBjb2x1bW5GaWVsZHMgPSBmaWVsZE9wdGlvbnMuZmllbGRzXG5cbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgLi4udmFyaWFibGVzLFxuICAgICAgICAgICAgW2NvbHVtbk5hbWVdOiB0aGlzLmJ1aWxkV2hlcmVTZW50ZW5jZShrZXkgYXMgYW55LCBvcHRpb25zW2tleV0sIGNvbHVtbkZpZWxkcyB8fCAoW10gYXMgYW55KSksXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSlcblxuICAgICAgaWYgKCFBcnJheS5pc0FycmF5KG9wdGlvbnMpICYmICFpc05pbChmaWVsZFNlbnRlbmNlT3B0aW9ucy5maWVsZHMpKVxuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIFtmaWVsZFNlbnRlbmNlT3B0aW9ucy5maWVsZHNbMF0gYXMgYW55XTogdGhpcy5idWlsZE9wZXJhdG9yU2VudGVuY2Uob3B0aW9ucywgZmllbGRTZW50ZW5jZU9wdGlvbnMgYXMgYW55KSxcbiAgICAgICAgfVxuXG4gICAgICBpZiAoaXNPYmplY3Qob3B0aW9ucykgJiYgIUZpbHRlck9wdGlvbkhlbHBlci5DaGVja0lmSXNGaWx0ZXJPcHRpb24ob3B0aW9ucykpXG4gICAgICAgIG9wdGlvbnMgPSBPYmplY3QudmFsdWVzKG9wdGlvbnMpWzBdIGFzIFJlcG9zaXRvcnlGaW5kRmllbHRlcnNPcHRpb25zPE1CYXNlLCBhbnk+XG5cbiAgICAgIHJldHVybiBBcnJheS5pc0FycmF5KG9wdGlvbnMpXG4gICAgICAgID8gb3B0aW9ucy5yZWR1Y2UoXG4gICAgICAgICAgICAod2hlcmVTZW50ZW5jZSwgb3B0aW9uKSA9PiAoe1xuICAgICAgICAgICAgICAuLi53aGVyZVNlbnRlbmNlLFxuICAgICAgICAgICAgICAuLi50aGlzLmJ1aWxkT3BlcmF0b3JTZW50ZW5jZShvcHRpb24sIGZpZWxkU2VudGVuY2VPcHRpb25zIGFzIGFueSksXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIHt9LFxuICAgICAgICAgIClcbiAgICAgICAgOiB0aGlzLmJ1aWxkT3BlcmF0b3JTZW50ZW5jZShvcHRpb25zLCBmaWVsZFNlbnRlbmNlT3B0aW9ucyBhcyBhbnkpXG4gICAgfVxuXG4gICAgYnVpbGRPcGVyYXRvclNlbnRlbmNlID0gKFxuICAgICAgb3B0aW9uczogUmVwb3NpdG9yeUZpbmRGaWVsdGVyc09wdGlvbnM8TUJhc2UsIGFueT4sXG4gICAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICAgKTogVmFyaWFibGVPcHRpb25zID0+ICh7XG4gICAgICBbdGhpcy5nZXRIYXN1cmFPcGVyYXRvcihvcHRpb25zLCBmaWVsZE9wdGlvbildOiBGaWx0ZXJPcHRpb25IZWxwZXIuR2V0VmFsdWVGcm9tRmlsdGVyKG9wdGlvbnMsIGZpZWxkT3B0aW9uKSxcbiAgICB9KVxuXG4gICAgZ2V0SGFzdXJhT3BlcmF0b3IgPSAoXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXG4gICAgICBmaWVsZE9wdGlvbjogQ29sdW1uT3B0aW9uczxhbnksIGFueT4sXG4gICAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+XG4gICAgICBGaWx0ZXJPcHRpb25IZWxwZXIuQ2hlY2tJZklzRmlsdGVyT3B0aW9uKG9wdGlvbnMpXG4gICAgICAgID8gZmllbGRPcHRpb24udHlwZSA9PT0gSGFzdXJhR3JhcGhRTENvbHVtblR5cGUuSnNvbmJcbiAgICAgICAgICA/IHRoaXMuZ2V0SGFzdXJhSnNvbmJPcGVyYXRvcihvcHRpb25zKVxuICAgICAgICAgIDogSGFzdXJhR3JhcGhRTFdoZXJlW1xuICAgICAgICAgICAgICBPYmplY3Qua2V5cyhIYXN1cmFHcmFwaFFMV2hlcmUpLmZpbmQoXG4gICAgICAgICAgICAgICAgKGdyYXBoUUxPcGVyYXRvcikgPT5cbiAgICAgICAgICAgICAgICAgIGdyYXBoUUxPcGVyYXRvciA9PT0gT2JqZWN0LmtleXMoV2hlcmUpLmZpbmQoKG9wZXJhdG9yKSA9PiBXaGVyZVtvcGVyYXRvcl0gPT09IG9wdGlvbnM/Lm9wZXJhdG9yKSxcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgXVxuICAgICAgICA6IEhhc3VyYUdyYXBoUUxXaGVyZS5FUVVBTFNcblxuICAgIGdldEhhc3VyYUpzb25iT3BlcmF0b3IgPSAoXG4gICAgICBvcHRpb25zOiBSZXBvc2l0b3J5RmluZEZpZWx0ZXJzT3B0aW9uczxNQmFzZSwgTm9uRnVuY3Rpb25Qcm9wZXJ0eU5hbWVzPE1CYXNlPj4sXG4gICAgKTogSGFzdXJhR3JhcGhRTFdoZXJlID0+XG4gICAgICBvcHRpb25zLm9wZXJhdG9yID09PSBXaGVyZS5JTlxuICAgICAgICA/ICdfY29udGFpbnMnXG4gICAgICAgIDogb3B0aW9ucy5vcGVyYXRvciA9PT0gV2hlcmUuTElLRVxuICAgICAgICA/ICdfaGFzX2tleXNfYW55J1xuICAgICAgICA6IEhhc3VyYUdyYXBoUUxXaGVyZVtcbiAgICAgICAgICAgIE9iamVjdC5rZXlzKEhhc3VyYUdyYXBoUUxXaGVyZSkuZmluZChcbiAgICAgICAgICAgICAgKGdyYXBoUUxPcGVyYXRvcikgPT5cbiAgICAgICAgICAgICAgICBncmFwaFFMT3BlcmF0b3IgPT09IE9iamVjdC5rZXlzKFdoZXJlKS5maW5kKChvcGVyYXRvcikgPT4gV2hlcmVbb3BlcmF0b3JdID09PSBvcHRpb25zPy5vcGVyYXRvciksXG4gICAgICAgICAgICApXG4gICAgICAgICAgXVxuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { __awaiter } from "tslib";
|
|
2
|
+
import { NotFoundError } from '../../../errors';
|
|
3
|
+
import { isNil } from '../../../utils';
|
|
4
|
+
import { AttributeOptionHelper } from './helpers';
|
|
5
|
+
export const withGetHasuraGraphQL = (MixinBase) => {
|
|
6
|
+
return class GetHasuraGraphQLMixin extends MixinBase {
|
|
7
|
+
constructor(...params) {
|
|
8
|
+
const options = params === null || params === void 0 ? void 0 : params[0];
|
|
9
|
+
super(...params);
|
|
10
|
+
this.getGraphQLOperation = (options === null || options === void 0 ? void 0 : options.getGraphQLOperation) || `${this.tableName}_by_pk`;
|
|
11
|
+
}
|
|
12
|
+
get(identifiers) {
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
14
|
+
const instance = this.model.toInstance(identifiers);
|
|
15
|
+
const result = yield this.query(this.getGraphQLOperation, this.fields, this.model.identifiersFields.reduce((ids, identifier) => {
|
|
16
|
+
var _a;
|
|
17
|
+
if (isNil(instance[identifier]))
|
|
18
|
+
return ids;
|
|
19
|
+
const columnOption = AttributeOptionHelper.FindByAttribute(identifier, this.fields);
|
|
20
|
+
const value = ((_a = columnOption === null || columnOption === void 0 ? void 0 : columnOption.to) === null || _a === void 0 ? void 0 : _a.call(columnOption, identifiers[identifier.toString()], instance)) || identifiers[identifier.toString()];
|
|
21
|
+
return Object.assign(Object.assign({}, ids), { [columnOption.columnName]: {
|
|
22
|
+
type: this.getAttributeGraphQLTypeOf(columnOption.type || value),
|
|
23
|
+
value,
|
|
24
|
+
required: true,
|
|
25
|
+
} });
|
|
26
|
+
}, {}));
|
|
27
|
+
const data = result[this.getGraphQLOperation];
|
|
28
|
+
if (isNil(data))
|
|
29
|
+
throw new NotFoundError(`${instance.constructor.name} not found`);
|
|
30
|
+
return this.convertDataFromHasura(result[this.getGraphQLOperation]);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb25uZWN0L3NyYy9pbmZyYS9oYXN1cmEtZ3JhcGhxbC9taXhpbnMvd2l0aC1nZXQtaGFzdXJhLWdyYXBocWwubWl4aW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUNBLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQTtBQUMvQyxPQUFPLEVBQUUsS0FBSyxFQUFhLE1BQU0sZ0JBQWdCLENBQUE7QUFHakQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sV0FBVyxDQUFBO0FBTWpELE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLENBSWxDLFNBQTJELEVBQzNELEVBQUU7SUFDRixPQUFPLE1BQU0scUJBQXNCLFNBQVEsU0FBUztRQUdsRCxZQUFZLEdBQUcsTUFBTTtZQUNuQixNQUFNLE9BQU8sR0FBeUIsTUFBTSxhQUFOLE1BQU0sdUJBQU4sTUFBTSxDQUFHLENBQUMsQ0FBQyxDQUFBO1lBRWpELEtBQUssQ0FBQyxHQUFHLE1BQU0sQ0FBQyxDQUFBO1lBRWhCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFBLE9BQU8sYUFBUCxPQUFPLHVCQUFQLE9BQU8sQ0FBRSxtQkFBbUIsS0FBSSxHQUFHLElBQUksQ0FBQyxTQUFTLFFBQVEsQ0FBQTtRQUN0RixDQUFDO1FBRUssR0FBRyxDQUFDLFdBQXVDOztnQkFDL0MsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLENBQUE7Z0JBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLEtBQUssQ0FDN0IsSUFBSSxDQUFDLG1CQUFtQixFQUN4QixJQUFJLENBQUMsTUFBTSxFQUNYLElBQUksQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLFVBQVUsRUFBRSxFQUFFOztvQkFDdEQsSUFBSSxLQUFLLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO3dCQUFFLE9BQU8sR0FBRyxDQUFBO29CQUUzQyxNQUFNLFlBQVksR0FBRyxxQkFBcUIsQ0FBQyxlQUFlLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQTtvQkFDbkYsTUFBTSxLQUFLLEdBQ1QsQ0FBQSxNQUFBLFlBQVksYUFBWixZQUFZLHVCQUFaLFlBQVksQ0FBRSxFQUFFLCtDQUFoQixZQUFZLEVBQU8sV0FBVyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxFQUFFLFFBQVEsQ0FBQyxLQUFJLFdBQVcsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQTtvQkFFeEcsdUNBQ0ssR0FBRyxLQUNOLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxFQUFFOzRCQUN6QixJQUFJLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxJQUFJLElBQUksS0FBSyxDQUFDOzRCQUNoRSxLQUFLOzRCQUNMLFFBQVEsRUFBRSxJQUFJO3lCQUNmLElBQ0Y7Z0JBQ0gsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNQLENBQUE7Z0JBQ0QsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO2dCQUU3QyxJQUFJLEtBQUssQ0FBQyxJQUFJLENBQUM7b0JBQUUsTUFBTSxJQUFJLGFBQWEsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxZQUFZLENBQUMsQ0FBQTtnQkFFbEYsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLENBQUE7WUFDckUsQ0FBQztTQUFBO0tBQ0YsQ0FBQTtBQUNILENBQUMsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEdldFJlcG9zaXRvcnksIEdldFJlcG9zaXRvcnlQYXJhbXMsIE1vZGVsQmFzZVN0cnVjdHVyZSB9IGZyb20gJy4uLy4uLy4uL2RvbWFpbidcbmltcG9ydCB7IE5vdEZvdW5kRXJyb3IgfSBmcm9tICcuLi8uLi8uLi9lcnJvcnMnXG5pbXBvcnQgeyBpc05pbCwgTWl4aW5DdG9yIH0gZnJvbSAnLi4vLi4vLi4vdXRpbHMnXG5pbXBvcnQgeyBHcmFwaFFMUmVwb3NpdG9yeSB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBBdHRyaWJ1dGVPcHRpb25IZWxwZXIgfSBmcm9tICcuL2hlbHBlcnMnXG5cbmV4cG9ydCB0eXBlIEdldENvbnN0cnVjdG9yUGFyYW1zID0ge1xuICBnZXRHcmFwaFFMT3BlcmF0aW9uPzogc3RyaW5nXG59XG5cbmV4cG9ydCBjb25zdCB3aXRoR2V0SGFzdXJhR3JhcGhRTCA9IDxcbiAgTUJhc2UgZXh0ZW5kcyBNb2RlbEJhc2VTdHJ1Y3R1cmUsXG4gIFRNaXhpbkJhc2UgZXh0ZW5kcyBNaXhpbkN0b3I8R3JhcGhRTFJlcG9zaXRvcnk8TUJhc2U+Pixcbj4oXG4gIE1peGluQmFzZTogTWl4aW5DdG9yPEdyYXBoUUxSZXBvc2l0b3J5PE1CYXNlPj4gJiBUTWl4aW5CYXNlLFxuKSA9PiB7XG4gIHJldHVybiBjbGFzcyBHZXRIYXN1cmFHcmFwaFFMTWl4aW4gZXh0ZW5kcyBNaXhpbkJhc2UgaW1wbGVtZW50cyBHZXRSZXBvc2l0b3J5PE1CYXNlPiB7XG4gICAgZ2V0R3JhcGhRTE9wZXJhdGlvbjogc3RyaW5nXG5cbiAgICBjb25zdHJ1Y3RvciguLi5wYXJhbXMpIHtcbiAgICAgIGNvbnN0IG9wdGlvbnM6IEdldENvbnN0cnVjdG9yUGFyYW1zID0gcGFyYW1zPy5bMF1cblxuICAgICAgc3VwZXIoLi4ucGFyYW1zKVxuXG4gICAgICB0aGlzLmdldEdyYXBoUUxPcGVyYXRpb24gPSBvcHRpb25zPy5nZXRHcmFwaFFMT3BlcmF0aW9uIHx8IGAke3RoaXMudGFibGVOYW1lfV9ieV9wa2BcbiAgICB9XG5cbiAgICBhc3luYyBnZXQoaWRlbnRpZmllcnM6IEdldFJlcG9zaXRvcnlQYXJhbXM8TUJhc2U+KTogUHJvbWlzZTxNQmFzZT4ge1xuICAgICAgY29uc3QgaW5zdGFuY2UgPSB0aGlzLm1vZGVsLnRvSW5zdGFuY2UoaWRlbnRpZmllcnMpXG4gICAgICBjb25zdCByZXN1bHQgPSBhd2FpdCB0aGlzLnF1ZXJ5KFxuICAgICAgICB0aGlzLmdldEdyYXBoUUxPcGVyYXRpb24sXG4gICAgICAgIHRoaXMuZmllbGRzLFxuICAgICAgICB0aGlzLm1vZGVsLmlkZW50aWZpZXJzRmllbGRzLnJlZHVjZSgoaWRzLCBpZGVudGlmaWVyKSA9PiB7XG4gICAgICAgICAgaWYgKGlzTmlsKGluc3RhbmNlW2lkZW50aWZpZXJdKSkgcmV0dXJuIGlkc1xuXG4gICAgICAgICAgY29uc3QgY29sdW1uT3B0aW9uID0gQXR0cmlidXRlT3B0aW9uSGVscGVyLkZpbmRCeUF0dHJpYnV0ZShpZGVudGlmaWVyLCB0aGlzLmZpZWxkcylcbiAgICAgICAgICBjb25zdCB2YWx1ZSA9XG4gICAgICAgICAgICBjb2x1bW5PcHRpb24/LnRvPy4oaWRlbnRpZmllcnNbaWRlbnRpZmllci50b1N0cmluZygpXSwgaW5zdGFuY2UpIHx8IGlkZW50aWZpZXJzW2lkZW50aWZpZXIudG9TdHJpbmcoKV1cblxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAuLi5pZHMsXG4gICAgICAgICAgICBbY29sdW1uT3B0aW9uLmNvbHVtbk5hbWVdOiB7XG4gICAgICAgICAgICAgIHR5cGU6IHRoaXMuZ2V0QXR0cmlidXRlR3JhcGhRTFR5cGVPZihjb2x1bW5PcHRpb24udHlwZSB8fCB2YWx1ZSksXG4gICAgICAgICAgICAgIHZhbHVlLFxuICAgICAgICAgICAgICByZXF1aXJlZDogdHJ1ZSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfVxuICAgICAgICB9LCB7fSksXG4gICAgICApXG4gICAgICBjb25zdCBkYXRhID0gcmVzdWx0W3RoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbl1cblxuICAgICAgaWYgKGlzTmlsKGRhdGEpKSB0aHJvdyBuZXcgTm90Rm91bmRFcnJvcihgJHtpbnN0YW5jZS5jb25zdHJ1Y3Rvci5uYW1lfSBub3QgZm91bmRgKVxuXG4gICAgICByZXR1cm4gdGhpcy5jb252ZXJ0RGF0YUZyb21IYXN1cmEocmVzdWx0W3RoaXMuZ2V0R3JhcGhRTE9wZXJhdGlvbl0pXG4gICAgfVxuICB9XG59XG4iXX0=
|