@elsikora/nestjs-crud-automator 1.10.0 → 1.10.1-dev.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +193 -0
- package/dist/cjs/class/api/subscriber/discovery-service.class.js +4 -0
- package/dist/cjs/class/api/subscriber/discovery-service.class.js.map +1 -1
- package/dist/cjs/class/api/subscriber/executor.class.d.ts +8 -8
- package/dist/cjs/class/api/subscriber/executor.class.js +3 -3
- package/dist/cjs/class/api/subscriber/executor.class.js.map +1 -1
- package/dist/cjs/class/api/subscriber/registry.class.d.ts +3 -3
- package/dist/cjs/class/api/subscriber/registry.class.js +11 -11
- package/dist/cjs/class/api/subscriber/registry.class.js.map +1 -1
- package/dist/cjs/constant/date.constant.js.map +1 -1
- package/dist/cjs/constant/decorator/api/controller.constant.js.map +1 -1
- package/dist/cjs/constant/decorator/api/function.constant.js.map +1 -1
- package/dist/cjs/constant/decorator/api/property-describe.constant.js.map +1 -1
- package/dist/cjs/constant/decorator/api/service.constant.js.map +1 -1
- package/dist/cjs/constant/decorator/api/subscriber.constant.js.map +1 -1
- package/dist/cjs/constant/dto/exception.constant.js.map +1 -1
- package/dist/cjs/constant/dto/list.constant.js.map +1 -1
- package/dist/cjs/constant/dto/transformer-value.constant.js.map +1 -1
- package/dist/cjs/constant/factory/dto/get-list-query.constant.js.map +1 -1
- package/dist/cjs/constant/interface/api/filter.constant.js.map +1 -1
- package/dist/cjs/constant/interface/api/property/string.constant.js.map +1 -1
- package/dist/cjs/constant/interface/api/property/wallet.constant.js.map +1 -1
- package/dist/cjs/constant/number.constant.js.map +1 -1
- package/dist/cjs/constant/utility/dto/constant.d.ts +1 -1
- package/dist/cjs/constant/utility/dto/constant.js.map +1 -1
- package/dist/cjs/constant/utility/dto/generate.constant.js.map +1 -1
- package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js +2 -1
- package/dist/cjs/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -1
- package/dist/cjs/decorator/api/controller/observable.decorator.d.ts +3 -1
- package/dist/cjs/decorator/api/controller/observable.decorator.js +3 -1
- package/dist/cjs/decorator/api/controller/observable.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/controller.decorator.d.ts +2 -1
- package/dist/cjs/decorator/api/controller.decorator.js +2 -1
- package/dist/cjs/decorator/api/controller.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/create.decorator.d.ts +1 -0
- package/dist/cjs/decorator/api/function/create.decorator.js +12 -10
- package/dist/cjs/decorator/api/function/create.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/decorator.js +1 -0
- package/dist/cjs/decorator/api/function/decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/delete.decorator.d.ts +2 -5
- package/dist/cjs/decorator/api/function/delete.decorator.js +13 -15
- package/dist/cjs/decorator/api/function/delete.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get-list.decorator.d.ts +2 -5
- package/dist/cjs/decorator/api/function/get-list.decorator.js +30 -16
- package/dist/cjs/decorator/api/function/get-list.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get-many.decorator.d.ts +2 -5
- package/dist/cjs/decorator/api/function/get-many.decorator.js +13 -15
- package/dist/cjs/decorator/api/function/get-many.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/get.decorator.d.ts +2 -5
- package/dist/cjs/decorator/api/function/get.decorator.js +13 -15
- package/dist/cjs/decorator/api/function/get.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/function/update.decorator.d.ts +2 -5
- package/dist/cjs/decorator/api/function/update.decorator.js +13 -15
- package/dist/cjs/decorator/api/function/update.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/method.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/boolean.decorator.js +2 -0
- package/dist/cjs/decorator/api/property/boolean.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/copy.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/date.decorator.js +2 -0
- package/dist/cjs/decorator/api/property/date.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/describe.decorator.d.ts +1 -1
- package/dist/cjs/decorator/api/property/describe.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/enum.decorator.js +2 -0
- package/dist/cjs/decorator/api/property/enum.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/number.decorator.js +4 -0
- package/dist/cjs/decorator/api/property/number.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/object.decorator.js +4 -2
- package/dist/cjs/decorator/api/property/object.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/string.decorator.js +21 -3
- package/dist/cjs/decorator/api/property/string.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/property/uuid.decorator.js +2 -0
- package/dist/cjs/decorator/api/property/uuid.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/service/observable.decorator.d.ts +3 -1
- package/dist/cjs/decorator/api/service/observable.decorator.js +3 -1
- package/dist/cjs/decorator/api/service/observable.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/service.decorator.js +39 -0
- package/dist/cjs/decorator/api/service.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/subscriber/function.decorator.d.ts +23 -5
- package/dist/cjs/decorator/api/subscriber/function.decorator.js +21 -3
- package/dist/cjs/decorator/api/subscriber/function.decorator.js.map +1 -1
- package/dist/cjs/decorator/api/subscriber/route.decorator.d.ts +23 -5
- package/dist/cjs/decorator/api/subscriber/route.decorator.js +21 -3
- package/dist/cjs/decorator/api/subscriber/route.decorator.js.map +1 -1
- package/dist/cjs/enum/decorator/api/action.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/authentication-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/controller/load-relations-strategy.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/controller/request-transformer-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/dto-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/function/type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/on-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/property/data-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/property/date/identifier.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/property/date/type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/property/desribe-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/property/number-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/property/string-type.enum.js.map +1 -1
- package/dist/cjs/enum/decorator/api/route-type.enum.js.map +1 -1
- package/dist/cjs/enum/exception.enum.js.map +1 -1
- package/dist/cjs/enum/filter-operation.enum.js.map +1 -1
- package/dist/cjs/enum/filter-order-direction.enum.js.map +1 -1
- package/dist/cjs/enum/utility/error-string/action.enum.js.map +1 -1
- package/dist/cjs/enum/utility/error-string/composite-action.enum.js.map +1 -1
- package/dist/cjs/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js.map +1 -1
- package/dist/cjs/enum/validator/must-match-one-of-schemas-error-type.enum.js.map +1 -1
- package/dist/cjs/factory/api/controller.factory.js +23 -18
- package/dist/cjs/factory/api/controller.factory.js.map +1 -1
- package/dist/cjs/interceptor/correlation-id-response-body.interceptor.d.ts +1 -1
- package/dist/cjs/interceptor/correlation-id-response-body.interceptor.js.map +1 -1
- package/dist/cjs/interface/api-dto-validator.interface.d.ts +1 -1
- package/dist/cjs/interface/class/api/subscriber/execution-context.interface.d.ts +2 -2
- package/dist/cjs/interface/class/api/subscriber/function-execution-context.interface.d.ts +1 -1
- package/dist/cjs/interface/class/api/subscriber/function.interface.d.ts +1 -1
- package/dist/cjs/interface/class/api/subscriber/index.d.ts +6 -0
- package/dist/cjs/interface/class/api/subscriber/route-execution-context.interface.d.ts +1 -1
- package/dist/cjs/interface/class/api/subscriber/route.interface.d.ts +0 -1
- package/dist/cjs/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/delete-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/function/properties.interface.d.ts +1 -1
- package/dist/cjs/interface/decorator/api/function/update-executor-properties.interface.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/index.d.ts +6 -6
- package/dist/cjs/interface/decorator/api/subscriber/function-properties.interface.d.ts +1 -1
- package/dist/cjs/interface/decorator/api/subscriber/index.d.ts +2 -2
- package/dist/cjs/interface/decorator/api/subscriber/route-properties.interface.d.ts +1 -1
- package/dist/cjs/interface/entity/column.interface.d.ts +1 -1
- package/dist/cjs/type/decorator/api/controller/constructor.type.d.ts +2 -2
- package/dist/cjs/type/decorator/api/property/describe/enum-properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/property/object/with-discriminator-properties.type.d.ts +1 -1
- package/dist/cjs/type/decorator/api/service/keys.type.d.ts +1 -1
- package/dist/cjs/type/factory/api/controller/target-methods.type.d.ts +1 -1
- package/dist/cjs/type/utility/dto/generate-get-list-response-resource-class.type.d.ts +1 -0
- package/dist/cjs/type/utility/dto/index.d.ts +1 -0
- package/dist/cjs/utility/api/controller/apply-decorators.utility.d.ts +2 -1
- package/dist/cjs/utility/api/controller/apply-decorators.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.d.ts +1 -1
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js +0 -1
- package/dist/cjs/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.d.ts +1 -6
- package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js +0 -5
- package/dist/cjs/utility/api/controller/get-list/transform-operation.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-method-name.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/get-primary-column.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/handle-request-relations.utility.js.map +1 -1
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js +3 -0
- package/dist/cjs/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js +0 -1
- package/dist/cjs/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/cjs/utility/dto/build-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-dynamic.utility.js +3 -0
- package/dist/cjs/utility/dto/generate-dynamic.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-filter-decorator.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-get-list-response.utility.d.ts +4 -5
- package/dist/cjs/utility/dto/generate-get-list-response.utility.js +2 -2
- package/dist/cjs/utility/dto/generate-get-list-response.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate-relation-response.utility.js.map +1 -1
- package/dist/cjs/utility/dto/generate.utility.js +15 -0
- package/dist/cjs/utility/dto/generate.utility.js.map +1 -1
- package/dist/cjs/utility/dto/get-get-list-query-base-class.utility.js.map +1 -1
- package/dist/cjs/utility/dto/handle-date-property.utility.js.map +1 -1
- package/dist/cjs/utility/dto/is-property-should-be-marked.utility.js.map +1 -1
- package/dist/cjs/utility/dto/validate-property-config.utility.js.map +1 -1
- package/dist/cjs/utility/generate-entity-information.utility.js.map +1 -1
- package/dist/cjs/utility/is-error-of-type.utility.js.map +1 -1
- package/dist/cjs/utility/logger.utility.js +3 -5
- package/dist/cjs/utility/logger.utility.js.map +1 -1
- package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js +1 -0
- package/dist/cjs/validator/all-or-none-of-listed-properties.validator.js.map +1 -1
- package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js +1 -0
- package/dist/cjs/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -1
- package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js +1 -0
- package/dist/cjs/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -1
- package/dist/cjs/validator/has-at-least-one-property.validator.js +1 -0
- package/dist/cjs/validator/has-at-least-one-property.validator.js.map +1 -1
- package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js +1 -0
- package/dist/cjs/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -1
- package/dist/cjs/validator/must-match-one-of-schemas.validator.js +1 -0
- package/dist/cjs/validator/must-match-one-of-schemas.validator.js.map +1 -1
- package/dist/cjs/validator/only-one-of-listed-properties.validator.js +1 -0
- package/dist/cjs/validator/only-one-of-listed-properties.validator.js.map +1 -1
- package/dist/esm/class/api/subscriber/discovery-service.class.js +4 -0
- package/dist/esm/class/api/subscriber/discovery-service.class.js.map +1 -1
- package/dist/esm/class/api/subscriber/executor.class.d.ts +8 -8
- package/dist/esm/class/api/subscriber/executor.class.js +3 -3
- package/dist/esm/class/api/subscriber/executor.class.js.map +1 -1
- package/dist/esm/class/api/subscriber/registry.class.d.ts +3 -3
- package/dist/esm/class/api/subscriber/registry.class.js +11 -11
- package/dist/esm/class/api/subscriber/registry.class.js.map +1 -1
- package/dist/esm/constant/date.constant.js.map +1 -1
- package/dist/esm/constant/decorator/api/controller.constant.js.map +1 -1
- package/dist/esm/constant/decorator/api/function.constant.js.map +1 -1
- package/dist/esm/constant/decorator/api/property-describe.constant.js.map +1 -1
- package/dist/esm/constant/decorator/api/service.constant.js.map +1 -1
- package/dist/esm/constant/decorator/api/subscriber.constant.js.map +1 -1
- package/dist/esm/constant/dto/exception.constant.js.map +1 -1
- package/dist/esm/constant/dto/list.constant.js.map +1 -1
- package/dist/esm/constant/dto/transformer-value.constant.js.map +1 -1
- package/dist/esm/constant/factory/dto/get-list-query.constant.js.map +1 -1
- package/dist/esm/constant/interface/api/filter.constant.js.map +1 -1
- package/dist/esm/constant/interface/api/property/string.constant.js.map +1 -1
- package/dist/esm/constant/interface/api/property/wallet.constant.js.map +1 -1
- package/dist/esm/constant/number.constant.js.map +1 -1
- package/dist/esm/constant/utility/dto/constant.d.ts +1 -1
- package/dist/esm/constant/utility/dto/constant.js.map +1 -1
- package/dist/esm/constant/utility/dto/generate.constant.js.map +1 -1
- package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js +2 -1
- package/dist/esm/constant/validator/has-paired-custom-suffixes-fields.constant.js.map +1 -1
- package/dist/esm/decorator/api/controller/observable.decorator.d.ts +3 -1
- package/dist/esm/decorator/api/controller/observable.decorator.js +3 -1
- package/dist/esm/decorator/api/controller/observable.decorator.js.map +1 -1
- package/dist/esm/decorator/api/controller.decorator.d.ts +2 -1
- package/dist/esm/decorator/api/controller.decorator.js +2 -1
- package/dist/esm/decorator/api/controller.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/create.decorator.d.ts +1 -0
- package/dist/esm/decorator/api/function/create.decorator.js +12 -10
- package/dist/esm/decorator/api/function/create.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/decorator.js +1 -0
- package/dist/esm/decorator/api/function/decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/delete.decorator.d.ts +2 -5
- package/dist/esm/decorator/api/function/delete.decorator.js +13 -15
- package/dist/esm/decorator/api/function/delete.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/get-list.decorator.d.ts +2 -5
- package/dist/esm/decorator/api/function/get-list.decorator.js +30 -16
- package/dist/esm/decorator/api/function/get-list.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/get-many.decorator.d.ts +2 -5
- package/dist/esm/decorator/api/function/get-many.decorator.js +13 -15
- package/dist/esm/decorator/api/function/get-many.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/get.decorator.d.ts +2 -5
- package/dist/esm/decorator/api/function/get.decorator.js +13 -15
- package/dist/esm/decorator/api/function/get.decorator.js.map +1 -1
- package/dist/esm/decorator/api/function/update.decorator.d.ts +2 -5
- package/dist/esm/decorator/api/function/update.decorator.js +13 -15
- package/dist/esm/decorator/api/function/update.decorator.js.map +1 -1
- package/dist/esm/decorator/api/method.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/boolean.decorator.js +2 -0
- package/dist/esm/decorator/api/property/boolean.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/copy.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/date.decorator.js +2 -0
- package/dist/esm/decorator/api/property/date.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/describe.decorator.d.ts +1 -1
- package/dist/esm/decorator/api/property/describe.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/enum.decorator.js +2 -0
- package/dist/esm/decorator/api/property/enum.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/number.decorator.js +4 -0
- package/dist/esm/decorator/api/property/number.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/object.decorator.js +4 -2
- package/dist/esm/decorator/api/property/object.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/string.decorator.js +21 -3
- package/dist/esm/decorator/api/property/string.decorator.js.map +1 -1
- package/dist/esm/decorator/api/property/uuid.decorator.js +2 -0
- package/dist/esm/decorator/api/property/uuid.decorator.js.map +1 -1
- package/dist/esm/decorator/api/service/observable.decorator.d.ts +3 -1
- package/dist/esm/decorator/api/service/observable.decorator.js +3 -1
- package/dist/esm/decorator/api/service/observable.decorator.js.map +1 -1
- package/dist/esm/decorator/api/service.decorator.js +39 -0
- package/dist/esm/decorator/api/service.decorator.js.map +1 -1
- package/dist/esm/decorator/api/subscriber/function.decorator.d.ts +23 -5
- package/dist/esm/decorator/api/subscriber/function.decorator.js +21 -3
- package/dist/esm/decorator/api/subscriber/function.decorator.js.map +1 -1
- package/dist/esm/decorator/api/subscriber/route.decorator.d.ts +23 -5
- package/dist/esm/decorator/api/subscriber/route.decorator.js +21 -3
- package/dist/esm/decorator/api/subscriber/route.decorator.js.map +1 -1
- package/dist/esm/enum/decorator/api/action.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/authentication-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/controller/load-relations-strategy.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/controller/request-transformer-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/dto-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/function/type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/on-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/property/data-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/property/date/identifier.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/property/date/type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/property/desribe-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/property/number-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/property/string-type.enum.js.map +1 -1
- package/dist/esm/enum/decorator/api/route-type.enum.js.map +1 -1
- package/dist/esm/enum/exception.enum.js.map +1 -1
- package/dist/esm/enum/filter-operation.enum.js.map +1 -1
- package/dist/esm/enum/filter-order-direction.enum.js.map +1 -1
- package/dist/esm/enum/utility/error-string/action.enum.js.map +1 -1
- package/dist/esm/enum/utility/error-string/composite-action.enum.js.map +1 -1
- package/dist/esm/enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js.map +1 -1
- package/dist/esm/enum/validator/must-match-one-of-schemas-error-type.enum.js.map +1 -1
- package/dist/esm/factory/api/controller.factory.js +23 -18
- package/dist/esm/factory/api/controller.factory.js.map +1 -1
- package/dist/esm/interceptor/correlation-id-response-body.interceptor.d.ts +1 -1
- package/dist/esm/interceptor/correlation-id-response-body.interceptor.js.map +1 -1
- package/dist/esm/interface/api-dto-validator.interface.d.ts +1 -1
- package/dist/esm/interface/class/api/subscriber/execution-context.interface.d.ts +2 -2
- package/dist/esm/interface/class/api/subscriber/function-execution-context.interface.d.ts +1 -1
- package/dist/esm/interface/class/api/subscriber/function.interface.d.ts +1 -1
- package/dist/esm/interface/class/api/subscriber/index.d.ts +6 -0
- package/dist/esm/interface/class/api/subscriber/route-execution-context.interface.d.ts +1 -1
- package/dist/esm/interface/class/api/subscriber/route.interface.d.ts +0 -1
- package/dist/esm/interface/decorator/api/function/create-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/delete-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/get-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/get-list-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/get-many-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/function/properties.interface.d.ts +1 -1
- package/dist/esm/interface/decorator/api/function/update-executor-properties.interface.d.ts +2 -2
- package/dist/esm/interface/decorator/api/index.d.ts +6 -6
- package/dist/esm/interface/decorator/api/subscriber/function-properties.interface.d.ts +1 -1
- package/dist/esm/interface/decorator/api/subscriber/index.d.ts +2 -2
- package/dist/esm/interface/decorator/api/subscriber/route-properties.interface.d.ts +1 -1
- package/dist/esm/interface/entity/column.interface.d.ts +1 -1
- package/dist/esm/module/api-subscriber.module.js.map +1 -1
- package/dist/esm/type/decorator/api/controller/constructor.type.d.ts +2 -2
- package/dist/esm/type/decorator/api/property/describe/enum-properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/property/object/with-discriminator-properties.type.d.ts +1 -1
- package/dist/esm/type/decorator/api/service/keys.type.d.ts +1 -1
- package/dist/esm/type/factory/api/controller/target-methods.type.d.ts +1 -1
- package/dist/esm/type/utility/dto/generate-get-list-response-resource-class.type.d.ts +1 -0
- package/dist/esm/type/utility/dto/index.d.ts +1 -0
- package/dist/esm/utility/api/controller/apply-decorators.utility.d.ts +2 -1
- package/dist/esm/utility/api/controller/apply-decorators.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/apply-metadata.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.d.ts +1 -1
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js +0 -1
- package/dist/esm/utility/api/controller/get-list/transform-filter.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/get-list/transform-operation.utility.d.ts +1 -6
- package/dist/esm/utility/api/controller/get-list/transform-operation.utility.js +0 -5
- package/dist/esm/utility/api/controller/get-list/transform-operation.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/get-method-name.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/get-primary-column.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/handle-request-relations.utility.js.map +1 -1
- package/dist/esm/utility/api/controller/write-dto-swagger.utility.js +3 -0
- package/dist/esm/utility/api/controller/write-dto-swagger.utility.js.map +1 -1
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js +0 -1
- package/dist/esm/utility/api/filter-order-by-from-entity.utility.js.map +1 -1
- package/dist/esm/utility/dto/build-decorator.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-decorator.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-dynamic.utility.js +3 -0
- package/dist/esm/utility/dto/generate-dynamic.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-exception.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-filter-decorator.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-get-list-response.utility.d.ts +4 -5
- package/dist/esm/utility/dto/generate-get-list-response.utility.js +2 -2
- package/dist/esm/utility/dto/generate-get-list-response.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate-relation-response.utility.js.map +1 -1
- package/dist/esm/utility/dto/generate.utility.js +15 -0
- package/dist/esm/utility/dto/generate.utility.js.map +1 -1
- package/dist/esm/utility/dto/get-get-list-query-base-class.utility.js.map +1 -1
- package/dist/esm/utility/dto/handle-date-property.utility.js.map +1 -1
- package/dist/esm/utility/dto/is-property-should-be-marked.utility.js.map +1 -1
- package/dist/esm/utility/dto/validate-property-config.utility.js.map +1 -1
- package/dist/esm/utility/generate-entity-information.utility.js.map +1 -1
- package/dist/esm/utility/is-error-of-type.utility.js.map +1 -1
- package/dist/esm/utility/logger.utility.js +3 -5
- package/dist/esm/utility/logger.utility.js.map +1 -1
- package/dist/esm/validator/all-or-none-of-listed-properties.validator.js +1 -0
- package/dist/esm/validator/all-or-none-of-listed-properties.validator.js.map +1 -1
- package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js +1 -0
- package/dist/esm/validator/has-at-least-one-and-only-one-of-listed-properties.validator.js.map +1 -1
- package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.js +1 -0
- package/dist/esm/validator/has-at-least-one-of-listed-properties.validator.js.map +1 -1
- package/dist/esm/validator/has-at-least-one-property.validator.js +1 -0
- package/dist/esm/validator/has-at-least-one-property.validator.js.map +1 -1
- package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.js +1 -0
- package/dist/esm/validator/has-paired-custom-suffixes-fields.validator.js.map +1 -1
- package/dist/esm/validator/is-regular-expression.validator.js.map +1 -1
- package/dist/esm/validator/must-match-one-of-schemas.validator.js +1 -0
- package/dist/esm/validator/must-match-one-of-schemas.validator.js.map +1 -1
- package/dist/esm/validator/only-one-of-listed-properties.validator.js +1 -0
- package/dist/esm/validator/only-one-of-listed-properties.validator.js.map +1 -1
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -17,6 +17,10 @@
|
|
|
17
17
|
- [Features](#-features)
|
|
18
18
|
- [Installation](#-installation)
|
|
19
19
|
- [Usage](#-usage)
|
|
20
|
+
- [Basic Usage](#basic-usage)
|
|
21
|
+
- [Advanced Usage](#advanced-usage)
|
|
22
|
+
- [Subscriber System (Hooks)](#subscriber-system-hooks-intercepting-and-extending-logic)
|
|
23
|
+
- [Swagger Documentation](#swagger-documentation)
|
|
20
24
|
- [Roadmap](#-roadmap)
|
|
21
25
|
- [FAQ](#-faq)
|
|
22
26
|
- [License](#-license)
|
|
@@ -25,6 +29,8 @@
|
|
|
25
29
|
## 📖 Description
|
|
26
30
|
NestJS-Crud-Automator is a comprehensive library designed to eliminate repetitive code when building RESTful APIs with NestJS. It provides a suite of decorators, utilities, and validation tools that automatically generate controllers, DTOs, and service methods for handling Create, Read, Update, and Delete operations. This library significantly reduces development time by providing a declarative approach to API development. By simply describing your entity properties once, the library auto-generates all the necessary boilerplate code including Swagger documentation, validation rules, and transformation logic. Perfect for developers working on data-heavy applications who want to focus on business logic rather than repetitive CRUD implementation.
|
|
27
31
|
|
|
32
|
+
The core philosophy of this library is built on four pillars: being **Declarative** (describe your API, don't code it), writing **Minimum Code** (drastically reduce boilerplate), ensuring **Flexibility** (override or extend any automated behavior), and guaranteeing **Type-Safety** (leverage TypeScript to prevent errors). It achieves this through real-time in-memory code generation, a heavy reliance on decorators for configuration, and smart conventions to reduce setup.
|
|
33
|
+
|
|
28
34
|
## 🚀 Features
|
|
29
35
|
- ✨ **🏗️ Automatic generation of controllers, DTOs, and service methods for CRUD operations**
|
|
30
36
|
- ✨ **📝 Comprehensive Swagger/OpenAPI documentation generation for all endpoints**
|
|
@@ -36,6 +42,11 @@ NestJS-Crud-Automator is a comprehensive library designed to eliminate repetitiv
|
|
|
36
42
|
- ✨ **📚 Support for object relations with automatic loading strategies**
|
|
37
43
|
- ✨ **⚡ Performance optimized with TypeORM integration for database operations**
|
|
38
44
|
- ✨ **🌐 Full support for TypeScript with strong typing throughout the library**
|
|
45
|
+
- ✨ **Hooks and Subscriber System:** Intercept and extend business logic at both the controller and service level.
|
|
46
|
+
- ✨ **Dynamic and Polymorphic DTOs:** Generate DTOs on-the-fly based on discriminator fields.
|
|
47
|
+
- ✨ **Field-Level RBAC:** Show/hide fields in responses based on user roles using guards.
|
|
48
|
+
- ✨ **Request Tracing:** Built-in `CorrelationIDResponseBodyInterceptor` to correlate requests and logs.
|
|
49
|
+
- ✨ **Convention over Configuration:** Smart defaults for service and DTO naming to reduce boilerplate.
|
|
39
50
|
|
|
40
51
|
## 🛠 Installation
|
|
41
52
|
```bash
|
|
@@ -338,6 +349,187 @@ export class UserController {
|
|
|
338
349
|
}
|
|
339
350
|
```
|
|
340
351
|
|
|
352
|
+
### `CorrelationIDResponseBodyInterceptor`: Request Tracing
|
|
353
|
+
|
|
354
|
+
To simplify debugging and request tracing in complex systems, the library provides the `CorrelationIDResponseBodyInterceptor`. This interceptor should be registered globally in your `main.ts`.
|
|
355
|
+
|
|
356
|
+
**What it does:**
|
|
357
|
+
|
|
358
|
+
1. Intercepts all exceptions in the application (`HttpException` and others).
|
|
359
|
+
2. Looks for the `x-correlation-id` header in the incoming request headers.
|
|
360
|
+
3. If the header is found, its value is added to the body of the error response.
|
|
361
|
+
4. If the header is not found, a new `UUID` is generated, which is added to both the response and the logs (if `LoggerUtility` is used).
|
|
362
|
+
5. Adds a `timestamp` field to the error response body.
|
|
363
|
+
|
|
364
|
+
This allows you to link a specific client request with the logs on the server, which is invaluable when investigating incidents.
|
|
365
|
+
|
|
366
|
+
**Registration:** `main.ts`
|
|
367
|
+
```typescript
|
|
368
|
+
import { CorrelationIDResponseBodyInterceptor } from '@elsikora/nestjs-crud-automator';
|
|
369
|
+
|
|
370
|
+
async function bootstrap() {
|
|
371
|
+
const app = await NestFactory.create(AppModule);
|
|
372
|
+
// ...
|
|
373
|
+
app.useGlobalInterceptors(new CorrelationIDResponseBodyInterceptor());
|
|
374
|
+
// ...
|
|
375
|
+
await app.listen(3000);
|
|
376
|
+
}
|
|
377
|
+
```
|
|
378
|
+
|
|
379
|
+
### Subscriber System (Hooks): Intercepting and Extending Logic
|
|
380
|
+
|
|
381
|
+
This is the most powerful feature for extending the default behavior. It allows you to "subscribe" to events in the CRUD request lifecycle and execute your code before, after, or in case of an error in the main operation. This is an ideal solution for tasks such as:
|
|
382
|
+
|
|
383
|
+
- Auditing.
|
|
384
|
+
- Sending notifications.
|
|
385
|
+
- Complex, context-dependent validation.
|
|
386
|
+
- Data enrichment before saving.
|
|
387
|
+
- Custom error handling.
|
|
388
|
+
|
|
389
|
+
#### Enabling the Subscriber System
|
|
390
|
+
|
|
391
|
+
To get the subscriber system working, you need to follow **three mandatory steps**:
|
|
392
|
+
|
|
393
|
+
1. **Import `ApiSubscriberModule`**: This module provides the `ApiSubscriberDiscoveryService`, which is responsible for discovering your subscribers. You need to import it into the root module of your application.
|
|
394
|
+
`app.module.ts`
|
|
395
|
+
```typescript
|
|
396
|
+
import { ApiSubscriberModule } from "@elsikora/nestjs-crud-automator";
|
|
397
|
+
|
|
398
|
+
@Module({
|
|
399
|
+
imports: [
|
|
400
|
+
// ... other modules
|
|
401
|
+
ApiSubscriberModule, // <--- IMPORTANT
|
|
402
|
+
],
|
|
403
|
+
// ...
|
|
404
|
+
})
|
|
405
|
+
export class AppModule {}
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
2. **Make the controller "observable"**: Add the `@ApiControllerObservable()` decorator to the controller class whose events you want to monitor.
|
|
409
|
+
```typescript
|
|
410
|
+
import { ApiController, ApiControllerObservable } from "@elsikora/nestjs-crud-automator";
|
|
411
|
+
|
|
412
|
+
@Controller("posts")
|
|
413
|
+
@ApiController({
|
|
414
|
+
/* ... */
|
|
415
|
+
})
|
|
416
|
+
@ApiControllerObservable() // <--- IMPORTANT
|
|
417
|
+
export class PostController {
|
|
418
|
+
/* ... */
|
|
419
|
+
}
|
|
420
|
+
```
|
|
421
|
+
|
|
422
|
+
3. **Make the service "observable"**: Similarly, add the `@ApiServiceObservable()` decorator to the service class.
|
|
423
|
+
```typescript
|
|
424
|
+
import { ApiService, ApiServiceBase, ApiServiceObservable } from "@elsikora/nestjs-crud-automator";
|
|
425
|
+
|
|
426
|
+
@Injectable()
|
|
427
|
+
@ApiService({
|
|
428
|
+
/* ... */
|
|
429
|
+
})
|
|
430
|
+
@ApiServiceObservable() // <--- IMPORTANT
|
|
431
|
+
export class PostService extends ApiServiceBase<Post> {
|
|
432
|
+
/* ... */
|
|
433
|
+
}
|
|
434
|
+
```
|
|
435
|
+
Without these steps, your subscriber classes will simply not be discovered and called.
|
|
436
|
+
|
|
437
|
+
#### Two Levels of Interception
|
|
438
|
+
|
|
439
|
+
There are two types of subscribers that operate at different levels of abstraction:
|
|
440
|
+
|
|
441
|
+
1. **`ApiRouteSubscriberBase`** (Controller Level): Intercepts data at the highest level. Ideal for working with the HTTP context: headers, IP address, authenticated user (`request.user`). The hooks of this subscriber are called before and after the main logic of the _controller_.
|
|
442
|
+
2. **`ApiFunctionSubscriberBase`** (Service Level): Intercepts data immediately before and after calling a repository method (database). Ideal for manipulating data that is to be saved or data that has just been retrieved from the DB.
|
|
443
|
+
|
|
444
|
+
#### Lifecycle and Execution Order
|
|
445
|
+
|
|
446
|
+
Understanding the order in which hooks are called is critically important:
|
|
447
|
+
|
|
448
|
+
1. **Incoming Request**
|
|
449
|
+
2. `onBefore...` hooks of **Route** subscribers (executed in `priority` order from highest to lowest).
|
|
450
|
+
3. Internal controller logic (transformers for `request`, `query`, `body`; validators).
|
|
451
|
+
4. A service method is called (e.g., `service.create(body)`).
|
|
452
|
+
5. `onBefore...` hooks of **Function** subscribers (executed in `priority` order).
|
|
453
|
+
6. The main logic of `@ApiFunction` is executed (e.g., `repository.save(body)`).
|
|
454
|
+
7. `onAfter...` hooks of **Function** subscribers (executed in **reverse** `priority` order).
|
|
455
|
+
8. The result is returned to the controller.
|
|
456
|
+
9. `onAfter...` hooks of **Route** subscribers (executed in **reverse** `priority` order).
|
|
457
|
+
10. **The response is sent to the client.**
|
|
458
|
+
|
|
459
|
+
In case of an error at any stage, execution is interrupted, and the corresponding `on...Error...` hooks are called.
|
|
460
|
+
|
|
461
|
+
#### Example 1: Auditing with `ApiRouteSubscriberBase`
|
|
462
|
+
|
|
463
|
+
**Task**: Log which user created which post.
|
|
464
|
+
|
|
465
|
+
1. **Create the subscriber:** `post-audit.subscriber.ts`
|
|
466
|
+
```typescript
|
|
467
|
+
import { Injectable } from "@nestjs/common";
|
|
468
|
+
import { ApiRouteSubscriber, ApiRouteSubscriberBase, IApiSubscriberRouteExecutionContext } from "@elsikora/nestjs-crud-automator";
|
|
469
|
+
import { Post } from "./post.entity";
|
|
470
|
+
import { User } from "../user/user.entity"; // Assuming User is in request.user
|
|
471
|
+
|
|
472
|
+
@Injectable()
|
|
473
|
+
@ApiRouteSubscriber({ entity: Post, priority: 10 }) // Specify entity and priority
|
|
474
|
+
export class PostAuditSubscriber extends ApiRouteSubscriberBase<Post> {
|
|
475
|
+
// Hook is called AFTER a post is successfully created in the controller
|
|
476
|
+
async onAfterCreate(context: IApiSubscriberRouteExecutionContext<Post, Post, { user: User }>): Promise<Post> {
|
|
477
|
+
const createdPost = context.result; // Result of the controller's operation
|
|
478
|
+
const currentUser = context.data.user; // Immutable input data, including request.user
|
|
479
|
+
|
|
480
|
+
if (createdPost && currentUser) {
|
|
481
|
+
console.log(`AUDIT: User ${currentUser.id} created Post ${createdPost.id} with title "${createdPost.title}"`);
|
|
482
|
+
}
|
|
483
|
+
|
|
484
|
+
// We don't want to change the result, so we just return it
|
|
485
|
+
return createdPost;
|
|
486
|
+
}
|
|
487
|
+
}
|
|
488
|
+
```
|
|
489
|
+
|
|
490
|
+
2. **Register the subscriber:** Add `PostAuditSubscriber` to the `providers` of your module.
|
|
491
|
+
|
|
492
|
+
#### Example 2: Data Enrichment with `ApiFunctionSubscriberBase`
|
|
493
|
+
|
|
494
|
+
**Task**: When creating a post, automatically generate a `slug` from the `title` before saving it to the database.
|
|
495
|
+
|
|
496
|
+
1. **Create the subscriber:** `post-slug.subscriber.ts`
|
|
497
|
+
```typescript
|
|
498
|
+
import { Injectable } from "@nestjs/common";
|
|
499
|
+
import { ApiFunctionSubscriber, ApiFunctionSubscriberBase, IApiSubscriberFunctionExecutionContext, TApiFunctionCreateProperties } from "@elsikora/nestjs-crud-automator";
|
|
500
|
+
import { Post } from "./post.entity";
|
|
501
|
+
import slugify from "slugify"; // third-party library
|
|
502
|
+
|
|
503
|
+
@Injectable()
|
|
504
|
+
@ApiFunctionSubscriber({ entity: Post })
|
|
505
|
+
export class PostSlugSubscriber extends ApiFunctionSubscriberBase<Post> {
|
|
506
|
+
// Hook is called BEFORE repository.save() is called
|
|
507
|
+
async onBeforeCreate(context: IApiSubscriberFunctionExecutionContext<Post, TApiFunctionCreateProperties<Post>>): Promise<TApiFunctionCreateProperties<Post>> {
|
|
508
|
+
const postData = context.result; // This is the object that will go into repository.save()
|
|
509
|
+
|
|
510
|
+
if (postData.body.title) {
|
|
511
|
+
// Modify the object, adding the slug
|
|
512
|
+
postData.body.slug = slugify(postData.body.title, { lower: true, strict: true });
|
|
513
|
+
console.log(`ENRICHMENT: Generated slug: ${postData.body.slug}`);
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
// Return the modified object, which will be saved
|
|
517
|
+
return postData;
|
|
518
|
+
}
|
|
519
|
+
}
|
|
520
|
+
```
|
|
521
|
+
|
|
522
|
+
2. **Register the subscriber:** Add `PostSlugSubscriber` to the module's `providers`.
|
|
523
|
+
```typescript
|
|
524
|
+
// ...
|
|
525
|
+
providers: [
|
|
526
|
+
UserService,
|
|
527
|
+
PostService,
|
|
528
|
+
PostSlugSubscriber, // <-- Register our subscriber as a provider
|
|
529
|
+
],
|
|
530
|
+
// ...
|
|
531
|
+
```
|
|
532
|
+
|
|
341
533
|
### Swagger Documentation
|
|
342
534
|
|
|
343
535
|
The library automatically generates Swagger/OpenAPI documentation for all endpoints. To enable it in your NestJS application:
|
|
@@ -394,6 +586,7 @@ This query would search for users with "john" in their username and created betw
|
|
|
394
586
|
| Error handling with standardized responses | ✅ Done |
|
|
395
587
|
| Support for TypeScript decorators | ✅ Done |
|
|
396
588
|
| Support for ESM and CommonJS modules | ✅ Done |
|
|
589
|
+
| Subscriber System | ✅ Done |
|
|
397
590
|
| MongoDB support | 🚧 In Progress |
|
|
398
591
|
| GraphQL integration | 🚧 In Progress |
|
|
399
592
|
| Support for soft deletes | 🚧 In Progress |
|
|
@@ -25,7 +25,9 @@ exports.ApiSubscriberDiscoveryService = class ApiSubscriberDiscoveryService {
|
|
|
25
25
|
registerFunctionSubscribers(providers) {
|
|
26
26
|
const functionSubscribers = providers.filter((wrapper) => wrapper.instance && wrapper.metatype && wrapper.instance instanceof functionBase_class.ApiFunctionSubscriberBase && Reflect.hasMetadata(subscriber_constant.SUBSCRIBER_API_DECORATOR_CONSTANT.FUNCTION_METADATA_KEY, wrapper.metatype));
|
|
27
27
|
for (const wrapper of functionSubscribers) {
|
|
28
|
+
// eslint-disable-next-line @elsikora/typescript/no-non-null-assertion
|
|
28
29
|
const properties = Reflect.getMetadata(subscriber_constant.SUBSCRIBER_API_DECORATOR_CONSTANT.FUNCTION_METADATA_KEY, wrapper.metatype);
|
|
30
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-argument
|
|
29
31
|
registry_class.apiSubscriberRegistry.registerFunctionSubscriber(properties, wrapper.instance);
|
|
30
32
|
subscriberLogger.verbose(`Registered function subscriber ${wrapper.name} for entity ${properties.entity.name} with priority ${properties.priority ?? 0}`);
|
|
31
33
|
}
|
|
@@ -33,7 +35,9 @@ exports.ApiSubscriberDiscoveryService = class ApiSubscriberDiscoveryService {
|
|
|
33
35
|
registerRouteSubscribers(providers) {
|
|
34
36
|
const routeSubscribers = providers.filter((wrapper) => wrapper.instance && wrapper.metatype && wrapper.instance instanceof routeBase_class.ApiRouteSubscriberBase && Reflect.hasMetadata(subscriber_constant.SUBSCRIBER_API_DECORATOR_CONSTANT.ROUTE_METADATA_KEY, wrapper.metatype));
|
|
35
37
|
for (const wrapper of routeSubscribers) {
|
|
38
|
+
// eslint-disable-next-line @elsikora/typescript/no-non-null-assertion
|
|
36
39
|
const properties = Reflect.getMetadata(subscriber_constant.SUBSCRIBER_API_DECORATOR_CONSTANT.ROUTE_METADATA_KEY, wrapper.metatype);
|
|
40
|
+
// eslint-disable-next-line @elsikora/typescript/no-unsafe-argument
|
|
37
41
|
registry_class.apiSubscriberRegistry.registerRouteSubscriber(properties, wrapper.instance);
|
|
38
42
|
subscriberLogger.verbose(`Registered route subscriber ${wrapper.name} for entity ${properties.entity.name} with priority ${properties.priority ?? 0}`);
|
|
39
43
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"discovery-service.class.js","sources":["../../../../../../src/class/api/subscriber/discovery-service.class.ts"],"sourcesContent":[null],"names":["LoggerUtility","ApiSubscriberDiscoveryService","ApiFunctionSubscriberBase","SUBSCRIBER_API_DECORATOR_CONSTANT","apiSubscriberRegistry","ApiRouteSubscriberBase","__decorate","Injectable","DiscoveryService"],"mappings":";;;;;;;;;;;AAYA,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"discovery-service.class.js","sources":["../../../../../../src/class/api/subscriber/discovery-service.class.ts"],"sourcesContent":[null],"names":["LoggerUtility","ApiSubscriberDiscoveryService","ApiFunctionSubscriberBase","SUBSCRIBER_API_DECORATOR_CONSTANT","apiSubscriberRegistry","ApiRouteSubscriberBase","__decorate","Injectable","DiscoveryService"],"mappings":";;;;;;;;;;;AAYA,MAAM,gBAAgB,GAAkBA,4BAAa,CAAC,SAAS,CAAC,+BAA+B,CAAC;AAGnFC,qCAA6B,GAAnC,MAAM,6BAA6B,CAAA;AACZ,IAAA,gBAAA;AAA7B,IAAA,WAAA,CAA6B,gBAAkC,EAAA;QAAlC,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;;IAE7C,YAAY,GAAA;AACX,QAAA,gBAAgB,CAAC,OAAO,CAAC,kCAAkC,CAAC;QAC5D,MAAM,SAAS,GAA2B,IAAI,CAAC,gBAAgB,CAAC,YAAY,EAAE;AAC9E,QAAA,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC;AAC3C,QAAA,IAAI,CAAC,wBAAwB,CAAC,SAAS,CAAC;AACxC,QAAA,gBAAgB,CAAC,OAAO,CAAC,gCAAgC,CAAC;;AAGnD,IAAA,2BAA2B,CAAC,SAAiC,EAAA;AACpE,QAAA,MAAM,mBAAmB,GAA2B,SAAS,CAAC,MAAM,CAAC,CAAC,OAAwB,KAAK,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,YAAYC,4CAAyB,IAAI,OAAO,CAAC,WAAW,CAACC,qDAAiC,CAAC,qBAAqB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEnS,QAAA,KAAK,MAAM,OAAO,IAAI,mBAAmB,EAAE;;AAE1C,YAAA,MAAM,UAAU,GAAqD,OAAO,CAAC,WAAW,CAACA,qDAAiC,CAAC,qBAAqB,EAAE,OAAO,CAAC,QAAS,CAAqD;;YAExNC,oCAAqB,CAAC,0BAA0B,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;YAC9E,gBAAgB,CAAC,OAAO,CAAC,CAAA,+BAAA,EAAkC,OAAO,CAAC,IAAI,eAAe,UAAU,CAAC,MAAM,CAAC,IAAI,kBAAkB,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAA,CAAE,CAAC;;;AAInJ,IAAA,wBAAwB,CAAC,SAAiC,EAAA;AACjE,QAAA,MAAM,gBAAgB,GAA2B,SAAS,CAAC,MAAM,CAAC,CAAC,OAAwB,KAAK,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,QAAQ,YAAYC,sCAAsB,IAAI,OAAO,CAAC,WAAW,CAACF,qDAAiC,CAAC,kBAAkB,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAC;AAE1R,QAAA,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE;;AAEvC,YAAA,MAAM,UAAU,GAAkD,OAAO,CAAC,WAAW,CAACA,qDAAiC,CAAC,kBAAkB,EAAE,OAAO,CAAC,QAAS,CAAkD;;YAE/MC,oCAAqB,CAAC,uBAAuB,CAAC,UAAU,EAAE,OAAO,CAAC,QAAQ,CAAC;YAC3E,gBAAgB,CAAC,OAAO,CAAC,CAAA,4BAAA,EAA+B,OAAO,CAAC,IAAI,eAAe,UAAU,CAAC,MAAM,CAAC,IAAI,kBAAkB,UAAU,CAAC,QAAQ,IAAI,CAAC,CAAA,CAAE,CAAC;;;;AA/B5IH,qCAA6B,GAAAK,oBAAA,CAAA;AADzC,IAAAC,iBAAU,EAAE;+CAEmCC,qBAAgB,CAAA;AADnD,CAAA,EAAAP,qCAA6B,CAkCzC;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { EApiRouteType } from '../../../enum/decorator/api/route-type.enum';
|
|
4
|
-
import { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
5
|
-
import { IApiSubscriberFunctionExecutionContext } from '../../../interface/class/api/subscriber/function-execution-context.interface';
|
|
6
|
-
import { IApiSubscriberRouteExecutionContext } from '../../../interface/class/api/subscriber/route-execution-context.interface';
|
|
1
|
+
import type { EApiFunctionType } from '../../../enum/decorator/api/function/index';
|
|
2
|
+
import type { EApiSubscriberOnType } from '../../../enum/decorator/api/on-type.enum';
|
|
3
|
+
import type { EApiRouteType } from '../../../enum/decorator/api/route-type.enum';
|
|
4
|
+
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
5
|
+
import type { IApiSubscriberFunctionExecutionContext } from '../../../interface/class/api/subscriber/function-execution-context.interface';
|
|
6
|
+
import type { IApiSubscriberRouteExecutionContext } from '../../../interface/class/api/subscriber/route-execution-context.interface';
|
|
7
7
|
export declare class ApiSubscriberExecutor {
|
|
8
|
-
static executeFunctionSubscribers<E extends IApiBaseEntity, TResult, TInput>(constructor: new (...
|
|
9
|
-
static executeRouteSubscribers<E extends IApiBaseEntity, TResult, TInput>(constructor: new (...
|
|
8
|
+
static executeFunctionSubscribers<E extends IApiBaseEntity, TResult, TInput>(constructor: new (...arguments_: Array<unknown>) => unknown, entity: E, functionType: EApiFunctionType, onType: EApiSubscriberOnType, context: IApiSubscriberFunctionExecutionContext<E, TResult, TInput>, error?: Error): Promise<TResult | undefined>;
|
|
9
|
+
static executeRouteSubscribers<E extends IApiBaseEntity, TResult, TInput>(constructor: new (...arguments_: Array<unknown>) => unknown, entity: E, routeType: EApiRouteType, onType: EApiSubscriberOnType, context: IApiSubscriberRouteExecutionContext<E, TResult, TInput>, error?: Error): Promise<TResult | undefined>;
|
|
10
10
|
}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
|
|
3
3
|
var controller_constant = require('../../../constant/decorator/api/controller.constant.js');
|
|
4
4
|
var service_constant = require('../../../constant/decorator/api/service.constant.js');
|
|
5
|
-
var registry_class = require('./registry.class.js');
|
|
6
5
|
var capitalizeString_utility = require('../../../utility/capitalize-string.utility.js');
|
|
7
6
|
var logger_utility = require('../../../utility/logger.utility.js');
|
|
7
|
+
var registry_class = require('./registry.class.js');
|
|
8
8
|
|
|
9
9
|
const subscriberLogger = logger_utility.LoggerUtility.getLogger("ApiSubscriberExecutor");
|
|
10
10
|
class ApiSubscriberExecutor {
|
|
@@ -19,7 +19,7 @@ class ApiSubscriberExecutor {
|
|
|
19
19
|
const hook = subscriber[hookName];
|
|
20
20
|
if (typeof hook === "function") {
|
|
21
21
|
subscriberLogger.verbose(`Executing function hook ${hookName} from ${subscriber.constructor.name} for entity ${entity.constructor.name}`);
|
|
22
|
-
const hookResult = await hook.call(subscriber, { ...context, result }, error);
|
|
22
|
+
const hookResult = (await hook.call(subscriber, { ...context, result }, error));
|
|
23
23
|
if (hookResult !== undefined) {
|
|
24
24
|
result = hookResult;
|
|
25
25
|
}
|
|
@@ -38,7 +38,7 @@ class ApiSubscriberExecutor {
|
|
|
38
38
|
const hook = subscriber[hookName];
|
|
39
39
|
if (typeof hook === "function") {
|
|
40
40
|
subscriberLogger.verbose(`Executing route hook ${hookName} from ${subscriber.constructor.name} for entity ${entity.constructor.name}`);
|
|
41
|
-
const hookResult = await hook.call(subscriber, { ...context, result }, error);
|
|
41
|
+
const hookResult = (await hook.call(subscriber, { ...context, result }, error));
|
|
42
42
|
if (hookResult !== undefined) {
|
|
43
43
|
result = hookResult;
|
|
44
44
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"executor.class.js","sources":["../../../../../../src/class/api/subscriber/executor.class.ts"],"sourcesContent":[null],"names":["LoggerUtility","SERVICE_API_DECORATOR_CONSTANT","apiSubscriberRegistry","CapitalizeString","CONTROLLER_API_DECORATOR_CONSTANT"],"mappings":";;;;;;;;
|
|
1
|
+
{"version":3,"file":"executor.class.js","sources":["../../../../../../src/class/api/subscriber/executor.class.ts"],"sourcesContent":[null],"names":["LoggerUtility","SERVICE_API_DECORATOR_CONSTANT","apiSubscriberRegistry","CapitalizeString","CONTROLLER_API_DECORATOR_CONSTANT"],"mappings":";;;;;;;;AAeA,MAAM,gBAAgB,GAAkBA,4BAAa,CAAC,SAAS,CAAC,uBAAuB,CAAC;MAE3E,qBAAqB,CAAA;AAC1B,IAAA,aAAa,0BAA0B,CAA4C,WAA2D,EAAE,MAAS,EAAE,YAA8B,EAAE,MAA4B,EAAE,OAAmE,EAAE,KAAa,EAAA;AACjT,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAACC,+CAA8B,CAAC,uBAAuB,EAAE,WAAW,CAAC,EAAE;YAC9F,OAAO,OAAO,CAAC,MAAiB;;AAGjC,QAAA,MAAM,WAAW,GAAkDC,oCAAqB,CAAC,sBAAsB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;AACxI,QAAA,IAAI,MAAM,GAAwB,OAAO,CAAC,MAAM;AAEhD,QAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACrC,MAAM,QAAQ,GAAW,CAAA,EAAA,EAAK,MAAM,CAAA,EAAGC,yCAAgB,CAAC,YAAY,CAAC,CAAA,CAAE;AACvE,YAAA,MAAM,IAAI,GAAY,UAAU,CAAC,QAAQ,CAAC;AAE1C,YAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC/B,gBAAA,gBAAgB,CAAC,OAAO,CAAC,2BAA2B,QAAQ,CAAA,MAAA,EAAS,UAAU,CAAC,WAAW,CAAC,IAAI,CAAA,YAAA,EAAe,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;gBACzI,MAAM,UAAU,IAAyB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAwB;AAE3H,gBAAA,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC7B,MAAM,GAAG,UAAqB;;;;AAKjC,QAAA,OAAO,MAAM;;AAGP,IAAA,aAAa,uBAAuB,CAA4C,WAA2D,EAAE,MAAS,EAAE,SAAwB,EAAE,MAA4B,EAAE,OAAgE,EAAE,KAAa,EAAA;AACrS,QAAA,IAAI,CAAC,OAAO,CAAC,WAAW,CAACC,qDAAiC,CAAC,uBAAuB,EAAE,WAAW,CAAC,EAAE;YACjG,OAAO,OAAO,CAAC,MAAiB;;AAGjC,QAAA,MAAM,WAAW,GAA+CF,oCAAqB,CAAC,mBAAmB,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;AAClI,QAAA,IAAI,MAAM,GAAwB,OAAO,CAAC,MAAM;AAEhD,QAAA,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE;YACrC,MAAM,QAAQ,GAAW,CAAA,EAAA,EAAK,MAAM,CAAA,EAAGC,yCAAgB,CAAC,SAAS,CAAC,CAAA,CAAE;AACpE,YAAA,MAAM,IAAI,GAAY,UAAU,CAAC,QAAQ,CAAC;AAE1C,YAAA,IAAI,OAAO,IAAI,KAAK,UAAU,EAAE;AAC/B,gBAAA,gBAAgB,CAAC,OAAO,CAAC,wBAAwB,QAAQ,CAAA,MAAA,EAAS,UAAU,CAAC,WAAW,CAAC,IAAI,CAAA,YAAA,EAAe,MAAM,CAAC,WAAW,CAAC,IAAI,CAAA,CAAE,CAAC;gBACtI,MAAM,UAAU,IAAyB,MAAM,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,CAAwB;AAE3H,gBAAA,IAAI,UAAU,KAAK,SAAS,EAAE;oBAC7B,MAAM,GAAG,UAAU;;;;AAKtB,QAAA,OAAO,MAAM;;AAEd;;;;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { IApiBaseEntity } from '../../../interface/api-base-entity.interface';
|
|
2
2
|
import type { IApiSubscriberFunction } from '../../../interface/class/api/subscriber/function.interface';
|
|
3
3
|
import type { IApiSubscriberRoute } from '../../../interface/class/api/subscriber/route.interface';
|
|
4
|
-
import { IApiFunctionSubscriberProperties, IApiRouteSubscriberProperties } from '../../../interface/decorator/api/subscriber/index';
|
|
4
|
+
import type { IApiFunctionSubscriberProperties, IApiRouteSubscriberProperties } from '../../../interface/decorator/api/subscriber/index';
|
|
5
5
|
declare class ApiSubscriberRegistry {
|
|
6
|
-
private readonly
|
|
7
|
-
private readonly
|
|
6
|
+
private readonly FUNCTION_SUBSCRIBERS;
|
|
7
|
+
private readonly ROUTE_SUBSCRIBERS;
|
|
8
8
|
constructor();
|
|
9
9
|
getFunctionSubscribers<E extends IApiBaseEntity>(entityName: string): Array<IApiSubscriberFunction<E>>;
|
|
10
10
|
getRouteSubscribers<E extends IApiBaseEntity>(entityName: string): Array<IApiSubscriberRoute<E>>;
|
|
@@ -5,33 +5,33 @@ require('../../../external/@elsikora/cladi/dist/esm/infrastructure/constant/cons
|
|
|
5
5
|
var registry_utility = require('../../../external/@elsikora/cladi/dist/esm/presentation/utility/create/registry.utility.js');
|
|
6
6
|
|
|
7
7
|
class ApiSubscriberRegistry {
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
FUNCTION_SUBSCRIBERS;
|
|
9
|
+
ROUTE_SUBSCRIBERS;
|
|
10
10
|
constructor() {
|
|
11
|
-
this.
|
|
12
|
-
this.
|
|
11
|
+
this.FUNCTION_SUBSCRIBERS = registry_utility.createRegistry({});
|
|
12
|
+
this.ROUTE_SUBSCRIBERS = registry_utility.createRegistry({});
|
|
13
13
|
}
|
|
14
14
|
getFunctionSubscribers(entityName) {
|
|
15
|
-
return (this.
|
|
15
|
+
return (this.FUNCTION_SUBSCRIBERS.get(entityName)?.subscribers ?? []).map((s) => s.subscriber);
|
|
16
16
|
}
|
|
17
17
|
getRouteSubscribers(entityName) {
|
|
18
|
-
return (this.
|
|
18
|
+
return (this.ROUTE_SUBSCRIBERS.get(entityName)?.subscribers ?? []).map((s) => s.subscriber);
|
|
19
19
|
}
|
|
20
20
|
registerFunctionSubscriber(properties, subscriber) {
|
|
21
21
|
const entityName = properties.entity.name;
|
|
22
|
-
let wrapper = this.
|
|
22
|
+
let wrapper = this.FUNCTION_SUBSCRIBERS.get(entityName);
|
|
23
23
|
if (!wrapper) {
|
|
24
24
|
wrapper = new SubscriberWrapper(entityName);
|
|
25
|
-
this.
|
|
25
|
+
this.FUNCTION_SUBSCRIBERS.register(wrapper);
|
|
26
26
|
}
|
|
27
27
|
wrapper.addSubscriber(subscriber, properties.priority);
|
|
28
28
|
}
|
|
29
29
|
registerRouteSubscriber(properties, subscriber) {
|
|
30
30
|
const entityName = properties.entity.name;
|
|
31
|
-
let wrapper = this.
|
|
31
|
+
let wrapper = this.ROUTE_SUBSCRIBERS.get(entityName);
|
|
32
32
|
if (!wrapper) {
|
|
33
33
|
wrapper = new SubscriberWrapper(entityName);
|
|
34
|
-
this.
|
|
34
|
+
this.ROUTE_SUBSCRIBERS.register(wrapper);
|
|
35
35
|
}
|
|
36
36
|
wrapper.addSubscriber(subscriber, properties.priority);
|
|
37
37
|
}
|
|
@@ -44,7 +44,7 @@ class SubscriberWrapper {
|
|
|
44
44
|
this.subscribers = subscribers;
|
|
45
45
|
}
|
|
46
46
|
addSubscriber(subscriber, priority = 0) {
|
|
47
|
-
this.subscribers.push({
|
|
47
|
+
this.subscribers.push({ priority, subscriber });
|
|
48
48
|
this.subscribers.sort((a, b) => b.priority - a.priority);
|
|
49
49
|
}
|
|
50
50
|
getName() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.class.js","sources":["../../../../../../src/class/api/subscriber/registry.class.ts"],"sourcesContent":[null],"names":["createRegistry"],"mappings":";;;;;;AAQA,MAAM,qBAAqB,CAAA;AACT,IAAA,
|
|
1
|
+
{"version":3,"file":"registry.class.js","sources":["../../../../../../src/class/api/subscriber/registry.class.ts"],"sourcesContent":[null],"names":["createRegistry"],"mappings":";;;;;;AAQA,MAAM,qBAAqB,CAAA;AACT,IAAA,oBAAoB;AAEpB,IAAA,iBAAiB;AAElC,IAAA,WAAA,GAAA;AACC,QAAA,IAAI,CAAC,oBAAoB,GAAGA,+BAAc,CAA4D,EAAE,CAAC;AACzG,QAAA,IAAI,CAAC,iBAAiB,GAAGA,+BAAc,CAAyD,EAAE,CAAC;;AAG7F,IAAA,sBAAsB,CAA2B,UAAkB,EAAA;QACzE,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAA2E,KAAK,CAAC,CAAC,UAAU,CAAqC;;AAGtM,IAAA,mBAAmB,CAA2B,UAAkB,EAAA;QACtE,OAAO,CAAC,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,WAAW,IAAI,EAAE,EAAE,GAAG,CAAC,CAAC,CAAwE,KAAK,CAAC,CAAC,UAAU,CAAkC;;IAG7L,0BAA0B,CAA2B,UAA+C,EAAE,UAAqC,EAAA;AACjJ,QAAA,MAAM,UAAU,GAAW,UAAU,CAAC,MAAM,CAAC,IAAI;QACjD,IAAI,OAAO,GAA0E,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC;QAE9H,IAAI,CAAC,OAAO,EAAE;AACb,YAAA,OAAO,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAC3C,YAAA,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,OAAO,CAAC;;QAG5C,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC;;IAGhD,uBAAuB,CAA2B,UAA4C,EAAE,UAAkC,EAAA;AACxI,QAAA,MAAM,UAAU,GAAW,UAAU,CAAC,MAAM,CAAC,IAAI;QACjD,IAAI,OAAO,GAAuE,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,UAAU,CAAC;QAExH,IAAI,CAAC,OAAO,EAAE;AACb,YAAA,OAAO,GAAG,IAAI,iBAAiB,CAAC,UAAU,CAAC;AAC3C,YAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,OAAO,CAAC;;QAGzC,OAAO,CAAC,aAAa,CAAC,UAAU,EAAE,UAAU,CAAC,QAAQ,CAAC;;AAEvD;AAED,MAAM,iBAAiB,CAAA;AAEJ,IAAA,IAAA;AACV,IAAA,WAAA;IAFR,WAAA,CACkB,IAAY,EACtB,WAAA,GAA0D,EAAE,EAAA;QADlD,IAAA,CAAA,IAAI,GAAJ,IAAI;QACd,IAAA,CAAA,WAAW,GAAX,WAAW;;AAGnB,IAAA,aAAa,CAAC,UAAa,EAAE,QAAA,GAAmB,CAAC,EAAA;QAChD,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC;QAC/C,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAsC,EAAE,CAAsC,KAAK,CAAC,CAAC,QAAQ,GAAG,CAAC,CAAC,QAAQ,CAAC;;IAGnI,OAAO,GAAA;QACN,OAAO,IAAI,CAAC,IAAI;;AAEjB;AAEM,MAAM,qBAAqB,GAA0B,IAAI,qBAAqB;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date.constant.js","sources":["../../../../src/constant/date.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,iBAAiB,GAAW,CAAC;AACnC,MAAM,iBAAiB,GAAW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"date.constant.js","sources":["../../../../src/constant/date.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,iBAAiB,GAAW,CAAC;AACnC,MAAM,iBAAiB,GAAW,iBAAiB;AAE5C,MAAM,aAAa,GAGtB;IACH,iBAAiB;IACjB,iBAAiB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.constant.js","sources":["../../../../../../src/constant/decorator/api/controller.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,sBAAsB,GAAW,EAAE;AACzC,MAAM,uBAAuB,GAAW,wCAAwC;
|
|
1
|
+
{"version":3,"file":"controller.constant.js","sources":["../../../../../../src/constant/decorator/api/controller.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,sBAAsB,GAAW,EAAE;AACzC,MAAM,uBAAuB,GAAW,wCAAwC;AAEzE,MAAM,iCAAiC,GAG1C;IACH,uBAAuB;IACvB,sBAAsB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"function.constant.js","sources":["../../../../../../src/constant/decorator/api/function.constant.ts"],"sourcesContent":[null],"names":["EFilterOrderDirection"],"mappings":";;;;AAEA,MAAM,iCAAiC,GAA0BA,+CAAqB,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"function.constant.js","sources":["../../../../../../src/constant/decorator/api/function.constant.ts"],"sourcesContent":[null],"names":["EFilterOrderDirection"],"mappings":";;;;AAEA,MAAM,iCAAiC,GAA0BA,+CAAqB,CAAC,GAAG;AAEnF,MAAM,+BAA+B,GAExC;IACH,iCAAiC;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"property-describe.constant.js","sources":["../../../../../../src/constant/decorator/api/property-describe.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,YAAY,GAAW,oCAAoC;
|
|
1
|
+
{"version":3,"file":"property-describe.constant.js","sources":["../../../../../../src/constant/decorator/api/property-describe.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,YAAY,GAAW,oCAAoC;AAE1D,MAAM,wCAAwC,GAAsC;IAC1F,YAAY;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"service.constant.js","sources":["../../../../../../src/constant/decorator/api/service.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,uBAAuB,GAAW,qCAAqC;
|
|
1
|
+
{"version":3,"file":"service.constant.js","sources":["../../../../../../src/constant/decorator/api/service.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,uBAAuB,GAAW,qCAAqC;AAEtE,MAAM,8BAA8B,GAEvC;IACH,uBAAuB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"subscriber.constant.js","sources":["../../../../../../src/constant/decorator/api/subscriber.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,qBAAqB,GAAW,sCAAsC;AAC5E,MAAM,kBAAkB,GAAW,mCAAmC;
|
|
1
|
+
{"version":3,"file":"subscriber.constant.js","sources":["../../../../../../src/constant/decorator/api/subscriber.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,qBAAqB,GAAW,sCAAsC;AAC5E,MAAM,kBAAkB,GAAW,mCAAmC;AAE/D,MAAM,iCAAiC,GAG1C;IACH,qBAAqB;IACrB,kBAAkB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exception.constant.js","sources":["../../../../../src/constant/dto/exception.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAW,CAAC;AACtC,MAAM,oBAAoB,GAAW,EAAE;AACvC,MAAM,4BAA4B,GAAW,CAAC;AAC9C,MAAM,4BAA4B,GAAW,EAAE;
|
|
1
|
+
{"version":3,"file":"exception.constant.js","sources":["../../../../../src/constant/dto/exception.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAW,CAAC;AACtC,MAAM,oBAAoB,GAAW,EAAE;AACvC,MAAM,4BAA4B,GAAW,CAAC;AAC9C,MAAM,4BAA4B,GAAW,EAAE;AAExC,MAAM,sBAAsB,GAK/B;IACH,oBAAoB;IACpB,4BAA4B;IAC5B,oBAAoB;IACpB,4BAA4B;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.constant.js","sources":["../../../../../src/constant/dto/list.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,mBAAmB,GAAW,CAAC;AACrC,MAAM,mBAAmB,GAAW,GAAG;AACvC,MAAM,wBAAwB,GAAW,CAAC;AAC1C,MAAM,wBAAwB,GAAW,GAAG;
|
|
1
|
+
{"version":3,"file":"list.constant.js","sources":["../../../../../src/constant/dto/list.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,mBAAmB,GAAW,CAAC;AACrC,MAAM,mBAAmB,GAAW,GAAG;AACvC,MAAM,wBAAwB,GAAW,CAAC;AAC1C,MAAM,wBAAwB,GAAW,GAAG;AAErC,MAAM,iBAAiB,GAK1B;IACH,mBAAmB;IACnB,wBAAwB;IACxB,mBAAmB;IACnB,wBAAwB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer-value.constant.js","sources":["../../../../../src/constant/dto/transformer-value.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,iBAAiB,GAAW,MAAM,CAAC,mBAAmB,CAAC;AAC7D,MAAM,UAAU,GAAW,MAAM,CAAC,YAAY,CAAC;AAC/C,MAAM,kBAAkB,GAAW,MAAM,CAAC,oBAAoB,CAAC;AAC/D,MAAM,iBAAiB,GAAW,MAAM,CAAC,mBAAmB,CAAC;AAC7D,MAAM,iBAAiB,GAAW,MAAM,CAAC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"transformer-value.constant.js","sources":["../../../../../src/constant/dto/transformer-value.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,iBAAiB,GAAW,MAAM,CAAC,mBAAmB,CAAC;AAC7D,MAAM,UAAU,GAAW,MAAM,CAAC,YAAY,CAAC;AAC/C,MAAM,kBAAkB,GAAW,MAAM,CAAC,oBAAoB,CAAC;AAC/D,MAAM,iBAAiB,GAAW,MAAM,CAAC,mBAAmB,CAAC;AAC7D,MAAM,iBAAiB,GAAW,MAAM,CAAC,mBAAmB,CAAC;AAEtD,MAAM,8BAA8B,GAMvC;IACH,iBAAiB;IACjB,UAAU;IACV,iBAAiB;IACjB,iBAAiB;IACjB,kBAAkB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-list-query.constant.js","sources":["../../../../../../src/constant/factory/dto/get-list-query.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,mBAAmB,GAAW,CAAC;AACrC,MAAM,mBAAmB,GAAW,GAAG;AACvC,MAAM,wBAAwB,GAAW,CAAC;AAC1C,MAAM,wBAAwB,GAAW,GAAG;AAC5C,MAAM,gBAAgB,GAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"get-list-query.constant.js","sources":["../../../../../../src/constant/factory/dto/get-list-query.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,mBAAmB,GAAW,CAAC;AACrC,MAAM,mBAAmB,GAAW,GAAG;AACvC,MAAM,wBAAwB,GAAW,CAAC;AAC1C,MAAM,wBAAwB,GAAW,GAAG;AAC5C,MAAM,gBAAgB,GAAW,CAAC;AAE3B,MAAM,mCAAmC,GAM5C;IACH,gBAAgB;IAChB,mBAAmB;IACnB,wBAAwB;IACxB,mBAAmB;IACnB,wBAAwB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.constant.js","sources":["../../../../../../src/constant/interface/api/filter.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,gCAAgC,GAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"filter.constant.js","sources":["../../../../../../src/constant/interface/api/filter.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,gCAAgC,GAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,CAAC;AAE/N,MAAM,6BAA6B,GAEtC;IACH,gCAAgC;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"string.constant.js","sources":["../../../../../../../src/constant/interface/api/property/string.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,mBAAmB,GAAW,CAAC;AACrC,MAAM,iBAAiB,GAAW,CAAC;AACnC,MAAM,UAAU,GAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"string.constant.js","sources":["../../../../../../../src/constant/interface/api/property/string.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAEA,MAAM,mBAAmB,GAAW,CAAC;AACrC,MAAM,iBAAiB,GAAW,CAAC;AACnC,MAAM,UAAU,GAAgB,CAAC;AAE1B,MAAM,sCAAsC,GAI/C;IACH,UAAU;IACV,iBAAiB;IACjB,mBAAmB;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.constant.js","sources":["../../../../../../../src/constant/interface/api/property/wallet.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,OAAO,GAAW,cAAc;AACtC,MAAM,OAAO,GAAW,eAAe;AACvC,MAAM,OAAO,GAAW,cAAc;
|
|
1
|
+
{"version":3,"file":"wallet.constant.js","sources":["../../../../../../../src/constant/interface/api/property/wallet.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,OAAO,GAAW,cAAc;AACtC,MAAM,OAAO,GAAW,eAAe;AACvC,MAAM,OAAO,GAAW,cAAc;AAE/B,MAAM,sCAAsC,GAI/C;IACH,OAAO;IACP,OAAO;IACP,OAAO;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"number.constant.js","sources":["../../../../src/constant/number.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAW,CAAC;AAClC,MAAM,IAAI,GAAW,CAAC;AACtB,MAAM,GAAG,GAAW,CAAC;AACrB,MAAM,YAAY,GAAW,EAAE;AAC/B,MAAM,yBAAyB,GAAW,CAAC;AAC3C,MAAM,yBAAyB,GAAW,GAAG;AAC7C,MAAM,yBAAyB,GAAW,CAAC;AAC3C,MAAM,qBAAqB,GAAW,GAAG;AACzC,MAAM,oBAAoB,GAAW,CAAC;AACtC,MAAM,kBAAkB,GAAW,EAAE;AACrC,MAAM,kBAAkB,GAAW,CAAC;AACpC,MAAM,WAAW,GAAW,WAAc;AAC1C,MAAM,WAAW,GAAW,aAAa;AACzC,MAAM,UAAU,GAAW,mBAA0B;AACrD;AACA,MAAM,UAAU,GAAW,yBAAyB;AACpD,MAAM,sBAAsB,GAAW,IAAI;
|
|
1
|
+
{"version":3,"file":"number.constant.js","sources":["../../../../src/constant/number.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAW,CAAC;AAClC,MAAM,IAAI,GAAW,CAAC;AACtB,MAAM,GAAG,GAAW,CAAC;AACrB,MAAM,YAAY,GAAW,EAAE;AAC/B,MAAM,yBAAyB,GAAW,CAAC;AAC3C,MAAM,yBAAyB,GAAW,GAAG;AAC7C,MAAM,yBAAyB,GAAW,CAAC;AAC3C,MAAM,qBAAqB,GAAW,GAAG;AACzC,MAAM,oBAAoB,GAAW,CAAC;AACtC,MAAM,kBAAkB,GAAW,EAAE;AACrC,MAAM,kBAAkB,GAAW,CAAC;AACpC,MAAM,WAAW,GAAW,WAAc;AAC1C,MAAM,WAAW,GAAW,aAAa;AACzC,MAAM,UAAU,GAAW,mBAA0B;AACrD;AACA,MAAM,UAAU,GAAW,yBAAyB;AACpD,MAAM,sBAAsB,GAAW,IAAI;AAEpC,MAAM,eAAe,GAiBxB;IACH,yBAAyB;IACzB,UAAU;IACV,yBAAyB;IACzB,WAAW;IACX,sBAAsB;IACtB,UAAU;IACV,yBAAyB;IACzB,WAAW;IACX,YAAY;IACZ,GAAG;IACH,qBAAqB;IACrB,oBAAoB;IACpB,kBAAkB;IAClB,kBAAkB;IAClB,IAAI;IACJ,gBAAgB;;;;;"}
|
|
@@ -3,5 +3,5 @@ import type { IDtoGenerateFactory } from '../../../interface/dto-generate-factor
|
|
|
3
3
|
import { EApiDtoType, EApiPropertyDescribeType } from '../../../enum/decorator/api/index';
|
|
4
4
|
export declare const DTO_UTILITY_CONSTANT: {
|
|
5
5
|
readonly DTO_STRATEGIES: Record<EApiDtoType, IDtoStrategy>;
|
|
6
|
-
readonly PROPERTY_DECORATOR_FACTORIES: Record<EApiPropertyDescribeType, IDtoGenerateFactory<
|
|
6
|
+
readonly PROPERTY_DECORATOR_FACTORIES: Record<EApiPropertyDescribeType, IDtoGenerateFactory<unknown>>;
|
|
7
7
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constant.js","sources":["../../../../../../src/constant/utility/dto/constant.ts"],"sourcesContent":[null],"names":["EApiDtoType","DtoStrategyBody","DtoStrategyQuery","DtoStrategyRequest","DtoStrategyResponse","EApiPropertyDescribeType","DtoPropertyFactoryBoolean","DtoPropertyFactoryDate","DtoPropertyFactoryEnum","DtoPropertyFactoryNumber","DtoPropertyFactoryObject","DtoPropertyFactoryRelation","DtoPropertyFactoryString","DtoPropertyFactoryUuid"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,cAAc,GAAsC;AACzD,IAAA,CAACA,wBAAW,CAAC,IAAI,GAAG,IAAIC,0BAAe,EAAE;AACzC,IAAA,CAACD,wBAAW,CAAC,KAAK,GAAG,IAAIE,4BAAgB,EAAE;AAC3C,IAAA,CAACF,wBAAW,CAAC,OAAO,GAAG,IAAIG,gCAAkB,EAAE;AAC/C,IAAA,CAACH,wBAAW,CAAC,QAAQ,GAAG,IAAII,kCAAmB,EAAE;CACjD;AAED,MAAM,4BAA4B,
|
|
1
|
+
{"version":3,"file":"constant.js","sources":["../../../../../../src/constant/utility/dto/constant.ts"],"sourcesContent":[null],"names":["EApiDtoType","DtoStrategyBody","DtoStrategyQuery","DtoStrategyRequest","DtoStrategyResponse","EApiPropertyDescribeType","DtoPropertyFactoryBoolean","DtoPropertyFactoryDate","DtoPropertyFactoryEnum","DtoPropertyFactoryNumber","DtoPropertyFactoryObject","DtoPropertyFactoryRelation","DtoPropertyFactoryString","DtoPropertyFactoryUuid"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAcA,MAAM,cAAc,GAAsC;AACzD,IAAA,CAACA,wBAAW,CAAC,IAAI,GAAG,IAAIC,0BAAe,EAAE;AACzC,IAAA,CAACD,wBAAW,CAAC,KAAK,GAAG,IAAIE,4BAAgB,EAAE;AAC3C,IAAA,CAACF,wBAAW,CAAC,OAAO,GAAG,IAAIG,gCAAkB,EAAE;AAC/C,IAAA,CAACH,wBAAW,CAAC,QAAQ,GAAG,IAAII,kCAAmB,EAAE;CACjD;AAED,MAAM,4BAA4B,GAAmE;AACpG,IAAA,CAACC,yCAAwB,CAAC,OAAO,GAAG,IAAIC,uCAAyB,EAAE;AACnE,IAAA,CAACD,yCAAwB,CAAC,IAAI,GAAG,IAAIE,iCAAsB,EAAE;AAC7D,IAAA,CAACF,yCAAwB,CAAC,IAAI,GAAG,IAAIG,iCAAsB,EAAE;AAC7D,IAAA,CAACH,yCAAwB,CAAC,MAAM,GAAG,IAAII,qCAAwB,EAAE;AACjE,IAAA,CAACJ,yCAAwB,CAAC,MAAM,GAAG,IAAIK,qCAAwB,EAAE;AACjE,IAAA,CAACL,yCAAwB,CAAC,QAAQ,GAAG,IAAIM,yCAA0B,EAAE;AACrE,IAAA,CAACN,yCAAwB,CAAC,MAAM,GAAG,IAAIO,qCAAwB,EAAE;AACjE,IAAA,CAACP,yCAAwB,CAAC,IAAI,GAAG,IAAIQ,iCAAsB,EAAE;CAC7D;AAEM,MAAM,oBAAoB,GAG7B;IACH,cAAc;IACd,4BAA4B;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generate.constant.js","sources":["../../../../../../src/constant/utility/dto/generate.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,yBAAyB,GAAW,GAAG;AAC7C,MAAM,yBAAyB,GAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"generate.constant.js","sources":["../../../../../../src/constant/utility/dto/generate.constant.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAAA,MAAM,yBAAyB,GAAW,GAAG;AAC7C,MAAM,yBAAyB,GAAW,CAAC;AAEpC,MAAM,qBAAqB,GAA6E;IAC9G,yBAAyB;IACzB,yBAAyB;;;;;"}
|
|
@@ -4,10 +4,11 @@ var filterOperation_enum = require('../../enum/filter-operation.enum.js');
|
|
|
4
4
|
var hasPairedCustomSuffixesFieldsArgumentType_enum = require('../../enum/validator/has-paired-custom-suffixes-fields-argument-type.enum.js');
|
|
5
5
|
require('../../enum/validator/must-match-one-of-schemas-error-type.enum.js');
|
|
6
6
|
|
|
7
|
+
const BETWEEN_EXACT_LENGTH = 2;
|
|
7
8
|
const DEFAULT_OPERATION_CONFIGS = {
|
|
8
9
|
[filterOperation_enum.EFilterOperation.BETWEEN]: {
|
|
9
10
|
argumentType: hasPairedCustomSuffixesFieldsArgumentType_enum.EHasPairedCustomSuffixesFieldsArgumentType.ARRAY,
|
|
10
|
-
exactLength:
|
|
11
|
+
exactLength: BETWEEN_EXACT_LENGTH,
|
|
11
12
|
},
|
|
12
13
|
[filterOperation_enum.EFilterOperation.CONT]: {
|
|
13
14
|
argumentType: hasPairedCustomSuffixesFieldsArgumentType_enum.EHasPairedCustomSuffixesFieldsArgumentType.SINGLE,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"has-paired-custom-suffixes-fields.constant.js","sources":["../../../../../src/constant/validator/has-paired-custom-suffixes-fields.constant.ts"],"sourcesContent":[null],"names":["EFilterOperation","EHasPairedCustomSuffixesFieldsArgumentType"],"mappings":";;;;;;AAKA,MAAM,yBAAyB,GAA4E;AAC1G,IAAA,CAACA,qCAAgB,CAAC,OAAO,GAAG;QAC3B,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAE9D,QAAA,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"has-paired-custom-suffixes-fields.constant.js","sources":["../../../../../src/constant/validator/has-paired-custom-suffixes-fields.constant.ts"],"sourcesContent":[null],"names":["EFilterOperation","EHasPairedCustomSuffixesFieldsArgumentType"],"mappings":";;;;;;AAKA,MAAM,oBAAoB,GAAW,CAAC;AAEtC,MAAM,yBAAyB,GAA4E;AAC1G,IAAA,CAACA,qCAAgB,CAAC,OAAO,GAAG;QAC3B,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAE9D,QAAA,WAAW,EAAE,oBAAoB;AACjC,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,IAAI,GAAG;QACxB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,KAAK,GAAG;QACzB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,IAAI,GAAG;QACxB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,KAAK,GAAG;QACzB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,EAAE,GAAG;QACtB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,GAAG,GAAG;QACvB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,IAAI,GAAG;QACxB,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAC9D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,KAAK,GAAG;QACzB,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAC9D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,EAAE,GAAG;QACtB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,GAAG,GAAG;QACvB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,EAAE,GAAG;QACtB,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAC9D,QAAA,SAAS,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,GAAG,GAAG;QACvB,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAC9D,QAAA,SAAS,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,MAAM,GAAG;QAC1B,YAAY,EAAEC,yFAA0C,CAAC,IAAI;AAC7D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,EAAE,GAAG;QACtB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,GAAG,GAAG;QACvB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,EAAE,GAAG;QACtB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,GAAG,GAAG;QACvB,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,KAAK,GAAG;QACzB,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAC9D,QAAA,SAAS,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,MAAM,GAAG;QAC1B,YAAY,EAAEC,yFAA0C,CAAC,KAAK;AAC9D,QAAA,SAAS,EAAE,CAAC;AACZ,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,OAAO,GAAG;QAC3B,YAAY,EAAEC,yFAA0C,CAAC,IAAI;AAC7D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,MAAM,GAAG;QAC1B,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;AACD,IAAA,CAACD,qCAAgB,CAAC,OAAO,GAAG;QAC3B,YAAY,EAAEC,yFAA0C,CAAC,MAAM;AAC/D,KAAA;CACD;AAEM,MAAM,oDAAoD,GAE7D;IACH,yBAAyB;;;;;"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
2
|
+
* Decorator that marks a controller as observable, allowing it to be monitored by subscribers.
|
|
3
|
+
* When a controller is marked as observable, its methods can be intercepted by subscribers that listen for specific events.
|
|
4
|
+
* @returns {ClassDecorator} - A decorator that marks a controller as observable.
|
|
3
5
|
*/
|
|
4
6
|
export declare function ApiControllerObservable(): ClassDecorator;
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
var controller_constant = require('../../../constant/decorator/api/controller.constant.js');
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Decorator that marks a controller as observable, allowing it to be monitored by subscribers.
|
|
7
|
+
* When a controller is marked as observable, its methods can be intercepted by subscribers that listen for specific events.
|
|
8
|
+
* @returns {ClassDecorator} - A decorator that marks a controller as observable.
|
|
7
9
|
*/
|
|
8
10
|
function ApiControllerObservable() {
|
|
9
11
|
return (target) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"observable.decorator.js","sources":["../../../../../../src/decorator/api/controller/observable.decorator.ts"],"sourcesContent":[null],"names":["CONTROLLER_API_DECORATOR_CONSTANT"],"mappings":";;;;AAEA
|
|
1
|
+
{"version":3,"file":"observable.decorator.js","sources":["../../../../../../src/decorator/api/controller/observable.decorator.ts"],"sourcesContent":[null],"names":["CONTROLLER_API_DECORATOR_CONSTANT"],"mappings":";;;;AAEA;;;;AAIG;SACa,uBAAuB,GAAA;IACtC,OAAO,CAAC,MAAc,KAAI;QACzB,OAAO,CAAC,cAAc,CAACA,qDAAiC,CAAC,uBAAuB,EAAE,IAAI,EAAE,MAAM,CAAC;AAChG,KAAC;AACF;;;;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { IApiBaseEntity } from '../../interface/api-base-entity.interface';
|
|
2
2
|
import type { IApiControllerProperties } from '../../interface/decorator/api/index';
|
|
3
3
|
import type { TApiControllerConstructor } from '../../type/decorator/api/controller/index';
|
|
4
|
-
|
|
4
|
+
import type { TApiControllerTargetMethod } from '../../type/factory/api/controller/index';
|
|
5
|
+
export declare const ApiController: <E extends IApiBaseEntity>(options: IApiControllerProperties<E>) => (target: TApiControllerTargetMethod<E>) => TApiControllerConstructor;
|
|
@@ -5,8 +5,9 @@ var controller_factory = require('../../factory/api/controller.factory.js');
|
|
|
5
5
|
const ApiController = (options) => (target) => {
|
|
6
6
|
const factory = new controller_factory.ApiControllerFactory(target, options);
|
|
7
7
|
factory.init();
|
|
8
|
+
// eslint-disable-next-line @elsikora/typescript/no-explicit-any
|
|
8
9
|
const ValidatedController = class extends target {
|
|
9
|
-
// eslint-disable-next-line @elsikora/typescript/no-useless-constructor
|
|
10
|
+
// eslint-disable-next-line @elsikora/typescript/no-useless-constructor, @elsikora/typescript/no-explicit-any
|
|
10
11
|
constructor(..._arguments) {
|
|
11
12
|
// eslint-disable-next-line @elsikora/typescript/no-unsafe-argument
|
|
12
13
|
super(..._arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.decorator.js","sources":["../../../../../src/decorator/api/controller.decorator.ts"],"sourcesContent":[null],"names":["ApiControllerFactory"],"mappings":";;;;
|
|
1
|
+
{"version":3,"file":"controller.decorator.js","sources":["../../../../../src/decorator/api/controller.decorator.ts"],"sourcesContent":[null],"names":["ApiControllerFactory"],"mappings":";;;;AAOO,MAAM,aAAa,GACzB,CAA2B,OAAoC,KAC/D,CAAC,MAAqC,KAA+B;IACpE,MAAM,OAAO,GAA4B,IAAIA,uCAAoB,CAAI,MAAM,EAAE,OAAO,CAAC;IACrF,OAAO,CAAC,IAAI,EAAE;;AAGd,IAAA,MAAM,mBAAmB,GAA2D,cAAc,MAAM,CAAA;;AAEvG,QAAA,WAAA,CAAY,GAAG,UAAe,EAAA;;AAE7B,YAAA,KAAK,CAAC,GAAG,UAAU,CAAC;;KAErB;AACD,IAAA,MAAM,CAAC,cAAc,CAAC,mBAAmB,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;AAE1E,IAAA,OAAO,mBAAgD;AACxD;;;;"}
|