@nest-omni/core 4.1.3-2 → 4.1.3-20
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/audit/audit.module.d.ts +10 -0
- package/audit/audit.module.js +63 -1
- package/audit/controllers/audit.controller.d.ts +88 -0
- package/audit/controllers/audit.controller.js +74 -0
- package/audit/decorators/audit-action.decorator.d.ts +74 -0
- package/audit/decorators/audit-action.decorator.js +42 -0
- package/audit/decorators/audit-controller.decorator.d.ts +9 -1
- package/audit/decorators/audit-controller.decorator.js +11 -2
- package/audit/decorators/audit-operation.decorator.d.ts +45 -0
- package/audit/decorators/audit-operation.decorator.js +49 -0
- package/audit/decorators/entity-audit.decorator.d.ts +85 -1
- package/audit/decorators/entity-audit.decorator.js +153 -3
- package/audit/decorators/index.d.ts +2 -0
- package/audit/decorators/index.js +2 -0
- package/audit/dto/audit-log-query.dto.d.ts +3 -0
- package/audit/dto/audit-log-query.dto.js +3 -0
- package/audit/dto/begin-transaction.dto.d.ts +3 -0
- package/audit/dto/begin-transaction.dto.js +3 -0
- package/audit/dto/compare-entities.dto.d.ts +3 -0
- package/audit/dto/compare-entities.dto.js +3 -0
- package/audit/dto/pre-check-restore.dto.d.ts +3 -0
- package/audit/dto/pre-check-restore.dto.js +3 -0
- package/audit/dto/restore-entity.dto.d.ts +3 -0
- package/audit/dto/restore-entity.dto.js +3 -0
- package/audit/entities/audit-action-summary.entity.d.ts +23 -0
- package/audit/entities/audit-action-summary.entity.js +101 -0
- package/audit/entities/entity-audit-log.entity.d.ts +11 -0
- package/audit/entities/entity-audit-log.entity.js +57 -2
- package/audit/entities/entity-transaction.entity.d.ts +11 -2
- package/audit/entities/entity-transaction.entity.js +42 -3
- package/audit/entities/index.d.ts +3 -0
- package/audit/entities/index.js +3 -0
- package/audit/entities/manual-operation-log.entity.d.ts +4 -0
- package/audit/entities/manual-operation-log.entity.js +12 -1
- package/audit/entities/operation-template.entity.d.ts +4 -0
- package/audit/entities/operation-template.entity.js +4 -0
- package/audit/enums/audit.enums.d.ts +37 -6
- package/audit/enums/audit.enums.js +40 -7
- package/audit/index.d.ts +4 -1
- package/audit/index.js +34 -1
- package/audit/interceptors/audit-action.interceptor.d.ts +38 -0
- package/audit/interceptors/audit-action.interceptor.js +215 -0
- package/audit/interceptors/audit.interceptor.d.ts +15 -0
- package/audit/interceptors/audit.interceptor.js +23 -1
- package/audit/interceptors/index.d.ts +1 -0
- package/audit/interceptors/index.js +1 -0
- package/audit/interfaces/audit.interfaces.d.ts +187 -2
- package/audit/services/audit-action.service.d.ts +141 -0
- package/audit/services/audit-action.service.js +244 -0
- package/audit/services/audit-context.service.d.ts +97 -0
- package/audit/services/audit-context.service.js +185 -0
- package/audit/services/audit-strategy.service.d.ts +6 -0
- package/audit/services/audit-strategy.service.js +13 -0
- package/audit/services/entity-audit.service.d.ts +230 -3
- package/audit/services/entity-audit.service.js +607 -14
- package/audit/services/index.d.ts +3 -0
- package/audit/services/index.js +3 -0
- package/audit/services/manual-audit-log.service.d.ts +134 -9
- package/audit/services/manual-audit-log.service.js +157 -40
- package/audit/services/multi-database.service.d.ts +9 -2
- package/audit/services/multi-database.service.js +9 -21
- package/audit/services/operation-description.service.d.ts +71 -2
- package/audit/services/operation-description.service.js +231 -20
- package/audit/services/transaction-audit.service.d.ts +30 -0
- package/audit/services/transaction-audit.service.js +53 -5
- package/audit/subscribers/entity-audit.subscriber.d.ts +19 -0
- package/audit/subscribers/entity-audit.subscriber.js +76 -1
- package/cache/cache-metrics.service.d.ts +67 -0
- package/cache/cache-metrics.service.js +68 -4
- package/cache/cache-serialization.service.d.ts +31 -0
- package/cache/cache-serialization.service.js +25 -0
- package/cache/cache.constants.d.ts +9 -0
- package/cache/cache.constants.js +9 -0
- package/cache/cache.health.d.ts +26 -0
- package/cache/cache.health.js +30 -0
- package/cache/cache.module.d.ts +82 -2
- package/cache/cache.module.js +76 -5
- package/cache/cache.service.d.ts +140 -0
- package/cache/cache.service.js +169 -0
- package/cache/cache.warmup.service.d.ts +39 -0
- package/cache/cache.warmup.service.js +32 -0
- package/cache/decorators/cache-evict.decorator.d.ts +47 -0
- package/cache/decorators/cache-evict.decorator.js +56 -0
- package/cache/decorators/cache-put.decorator.d.ts +34 -0
- package/cache/decorators/cache-put.decorator.js +39 -0
- package/cache/decorators/cacheable.decorator.d.ts +40 -0
- package/cache/decorators/cacheable.decorator.js +55 -0
- package/cache/dependencies/callback.dependency.d.ts +33 -0
- package/cache/dependencies/callback.dependency.js +39 -1
- package/cache/dependencies/chain.dependency.d.ts +28 -0
- package/cache/dependencies/chain.dependency.js +34 -0
- package/cache/dependencies/db.dependency.d.ts +83 -7
- package/cache/dependencies/db.dependency.js +89 -14
- package/cache/dependencies/file.dependency.d.ts +32 -0
- package/cache/dependencies/file.dependency.js +34 -0
- package/cache/dependencies/tag.dependency.d.ts +75 -4
- package/cache/dependencies/tag.dependency.js +145 -11
- package/cache/dependencies/time.dependency.d.ts +43 -0
- package/cache/dependencies/time.dependency.js +43 -0
- package/cache/examples/basic-usage.d.ts +15 -0
- package/cache/examples/basic-usage.js +62 -8
- package/cache/index.js +9 -0
- package/cache/interfaces/cache-dependency.interface.d.ts +53 -0
- package/cache/interfaces/cache-options.interface.d.ts +89 -0
- package/cache/interfaces/cache-options.interface.js +6 -0
- package/cache/interfaces/cache-provider.interface.d.ts +78 -0
- package/cache/providers/base-cache.provider.d.ts +14 -0
- package/cache/providers/base-cache.provider.js +16 -0
- package/cache/providers/cls-cache.provider.d.ts +20 -0
- package/cache/providers/cls-cache.provider.js +28 -0
- package/cache/providers/memory-cache.provider.d.ts +43 -0
- package/cache/providers/memory-cache.provider.js +66 -0
- package/cache/providers/redis-cache.provider.d.ts +26 -0
- package/cache/providers/redis-cache.provider.js +29 -0
- package/cache/utils/dependency-manager.util.d.ts +52 -0
- package/cache/utils/dependency-manager.util.js +59 -0
- package/cache/utils/key-generator.util.d.ts +42 -0
- package/cache/utils/key-generator.util.js +53 -1
- package/common/abstract.entity.d.ts +14 -0
- package/common/abstract.entity.js +14 -0
- package/common/boilerplate.polyfill.d.ts +142 -0
- package/common/boilerplate.polyfill.js +18 -1
- package/common/dto/dto-container.d.ts +16 -0
- package/common/dto/dto-container.js +20 -0
- package/common/dto/dto-decorators.d.ts +18 -0
- package/common/dto/dto-decorators.js +14 -0
- package/common/dto/dto-extensions.d.ts +11 -0
- package/common/dto/dto-extensions.js +9 -0
- package/common/dto/dto-service-accessor.d.ts +17 -0
- package/common/dto/dto-service-accessor.js +18 -0
- package/common/dto/dto-transformer.d.ts +12 -0
- package/common/dto/dto-transformer.js +9 -0
- package/common/dto/index.js +2 -0
- package/common/examples/paginate-and-map.example.d.ts +6 -0
- package/common/examples/paginate-and-map.example.js +26 -0
- package/common/utils.d.ts +15 -0
- package/common/utils.js +15 -0
- package/constants/language-code.js +1 -0
- package/decorators/field.decorators.d.ts +1 -1
- package/decorators/field.decorators.js +8 -1
- package/decorators/property.decorators.js +1 -0
- package/decorators/public-route.decorator.js +1 -0
- package/decorators/transform.decorators.d.ts +27 -0
- package/decorators/transform.decorators.js +29 -0
- package/decorators/translate.decorator.js +1 -0
- package/decorators/user.decorator.js +1 -0
- package/decorators/validator.decorators.d.ts +8 -18
- package/decorators/validator.decorators.js +22 -190
- package/file-upload/controllers/file-access.controller.d.ts +23 -0
- package/file-upload/controllers/file-access.controller.js +128 -0
- package/file-upload/decorators/column.decorator.d.ts +151 -0
- package/file-upload/decorators/column.decorator.js +273 -0
- package/file-upload/decorators/csv-data.decorator.d.ts +30 -0
- package/file-upload/decorators/csv-data.decorator.js +85 -0
- package/file-upload/decorators/csv-import.decorator.d.ts +34 -0
- package/file-upload/decorators/csv-import.decorator.js +24 -0
- package/file-upload/decorators/examples/column-mapping.example.d.ts +76 -0
- package/file-upload/decorators/examples/column-mapping.example.js +122 -0
- package/file-upload/decorators/excel-data.decorator.d.ts +30 -0
- package/file-upload/decorators/excel-data.decorator.js +85 -0
- package/file-upload/decorators/file-upload.decorator.d.ts +83 -0
- package/file-upload/decorators/file-upload.decorator.js +172 -0
- package/file-upload/decorators/index.d.ts +5 -0
- package/file-upload/decorators/index.js +38 -0
- package/file-upload/decorators/process.decorator.d.ts +40 -0
- package/file-upload/decorators/process.decorator.js +52 -0
- package/file-upload/decorators/validate-data.decorator.d.ts +91 -0
- package/file-upload/decorators/validate-data.decorator.js +39 -0
- package/file-upload/dto/create-file.dto.d.ts +24 -0
- package/file-upload/dto/create-file.dto.js +112 -0
- package/file-upload/dto/find-files.dto.d.ts +15 -0
- package/file-upload/dto/find-files.dto.js +76 -0
- package/file-upload/dto/index.d.ts +4 -0
- package/file-upload/dto/index.js +20 -0
- package/file-upload/dto/pagination.dto.d.ts +7 -0
- package/file-upload/dto/pagination.dto.js +39 -0
- package/file-upload/dto/update-file.dto.d.ts +15 -0
- package/file-upload/dto/update-file.dto.js +67 -0
- package/file-upload/entities/file-metadata.entity.d.ts +25 -0
- package/file-upload/entities/file-metadata.entity.js +76 -0
- package/file-upload/entities/file.entity.d.ts +114 -0
- package/file-upload/entities/file.entity.js +350 -0
- package/file-upload/entities/index.d.ts +2 -0
- package/file-upload/entities/index.js +18 -0
- package/file-upload/enums/file-type.enum.d.ts +72 -0
- package/file-upload/enums/file-type.enum.js +212 -0
- package/file-upload/exceptions/file-upload.exception.d.ts +57 -0
- package/file-upload/exceptions/file-upload.exception.js +120 -0
- package/file-upload/exceptions/index.d.ts +1 -0
- package/file-upload/exceptions/index.js +17 -0
- package/file-upload/file-upload.module.d.ts +89 -0
- package/file-upload/file-upload.module.js +292 -0
- package/file-upload/index.d.ts +37 -0
- package/file-upload/index.js +77 -0
- package/file-upload/interceptors/file-upload.interceptor.d.ts +101 -0
- package/file-upload/interceptors/file-upload.interceptor.js +594 -0
- package/file-upload/interceptors/index.d.ts +1 -0
- package/file-upload/interceptors/index.js +17 -0
- package/file-upload/interfaces/custom-file-type.interface.d.ts +72 -0
- package/file-upload/interfaces/custom-file-type.interface.js +2 -0
- package/file-upload/interfaces/file-buffer.interface.d.ts +72 -0
- package/file-upload/interfaces/file-buffer.interface.js +2 -0
- package/file-upload/interfaces/file-entity.interface.d.ts +142 -0
- package/file-upload/interfaces/file-entity.interface.js +28 -0
- package/file-upload/interfaces/file-metadata.interface.d.ts +21 -0
- package/file-upload/interfaces/file-metadata.interface.js +2 -0
- package/file-upload/interfaces/file-processor.interface.d.ts +93 -0
- package/file-upload/interfaces/file-processor.interface.js +2 -0
- package/file-upload/interfaces/file-upload-options.interface.d.ts +74 -0
- package/file-upload/interfaces/file-upload-options.interface.js +5 -0
- package/file-upload/interfaces/index.d.ts +7 -0
- package/file-upload/interfaces/index.js +24 -0
- package/file-upload/interfaces/processor-options.interface.d.ts +102 -0
- package/file-upload/interfaces/processor-options.interface.js +2 -0
- package/file-upload/interfaces/storage-provider.interface.d.ts +239 -0
- package/file-upload/interfaces/storage-provider.interface.js +2 -0
- package/file-upload/interfaces/upload-options.interface.d.ts +19 -0
- package/file-upload/interfaces/upload-options.interface.js +2 -0
- package/file-upload/processors/csv.processor.d.ts +98 -0
- package/file-upload/processors/csv.processor.js +391 -0
- package/file-upload/processors/excel.processor.d.ts +130 -0
- package/file-upload/processors/excel.processor.js +547 -0
- package/file-upload/processors/image.processor.d.ts +199 -0
- package/file-upload/processors/image.processor.js +377 -0
- package/file-upload/providers/index.d.ts +2 -0
- package/file-upload/providers/index.js +18 -0
- package/file-upload/providers/local-storage.provider.d.ts +98 -0
- package/file-upload/providers/local-storage.provider.js +484 -0
- package/file-upload/providers/s3-storage.provider.d.ts +87 -0
- package/file-upload/providers/s3-storage.provider.js +455 -0
- package/file-upload/services/file-signature-validator.service.d.ts +118 -0
- package/file-upload/services/file-signature-validator.service.js +376 -0
- package/file-upload/services/file.service.d.ts +193 -0
- package/file-upload/services/file.service.js +638 -0
- package/file-upload/services/index.d.ts +4 -0
- package/file-upload/services/index.js +20 -0
- package/file-upload/services/malicious-file-detector.service.d.ts +300 -0
- package/file-upload/services/malicious-file-detector.service.js +1234 -0
- package/file-upload/services/mime-registry.service.d.ts +47 -0
- package/file-upload/services/mime-registry.service.js +167 -0
- package/file-upload/utils/checksum.util.d.ts +28 -0
- package/file-upload/utils/checksum.util.js +65 -0
- package/file-upload/utils/dynamic-import.util.d.ts +54 -0
- package/file-upload/utils/dynamic-import.util.js +156 -0
- package/file-upload/utils/filename.util.d.ts +59 -0
- package/file-upload/utils/filename.util.js +184 -0
- package/file-upload/utils/filepath.util.d.ts +70 -0
- package/file-upload/utils/filepath.util.js +152 -0
- package/file-upload/utils/index.d.ts +4 -0
- package/file-upload/utils/index.js +20 -0
- package/filters/constraint-errors.js +1 -0
- package/helpers/common.helper.d.ts +13 -0
- package/helpers/common.helper.js +13 -0
- package/http-client/config/http-client.config.d.ts +20 -0
- package/http-client/config/http-client.config.js +48 -21
- package/http-client/decorators/http-client.decorators.d.ts +55 -14
- package/http-client/decorators/http-client.decorators.js +154 -78
- package/http-client/entities/http-log.entity.d.ts +217 -8
- package/http-client/entities/http-log.entity.js +7 -22
- package/http-client/errors/http-client.errors.d.ts +57 -0
- package/http-client/errors/http-client.errors.js +58 -0
- package/http-client/examples/advanced-usage.example.d.ts +40 -0
- package/http-client/examples/advanced-usage.example.js +53 -61
- package/http-client/examples/auth-with-waiting-lock.example.d.ts +31 -0
- package/http-client/examples/auth-with-waiting-lock.example.js +52 -5
- package/http-client/examples/basic-usage.example.d.ts +60 -0
- package/http-client/examples/basic-usage.example.js +60 -0
- package/http-client/examples/multi-api-configuration.example.d.ts +60 -0
- package/http-client/examples/multi-api-configuration.example.js +76 -5
- package/http-client/examples/proxy-from-environment.example.d.ts +133 -0
- package/http-client/examples/proxy-from-environment.example.js +409 -0
- package/http-client/http-client.module.d.ts +48 -2
- package/http-client/http-client.module.js +147 -68
- package/http-client/index.d.ts +1 -1
- package/http-client/index.js +8 -0
- package/http-client/interfaces/api-client-config.interface.d.ts +80 -45
- package/http-client/interfaces/api-client-config.interface.js +3 -0
- package/http-client/interfaces/http-client-config.interface.d.ts +109 -52
- package/http-client/services/api-client-registry.service.d.ts +50 -11
- package/http-client/services/api-client-registry.service.js +90 -250
- package/http-client/services/circuit-breaker.service.d.ts +115 -2
- package/http-client/services/circuit-breaker.service.js +237 -7
- package/http-client/services/http-client.service.d.ts +124 -14
- package/http-client/services/http-client.service.js +437 -148
- package/http-client/services/http-log-query.service.d.ts +83 -0
- package/http-client/services/http-log-query.service.js +121 -13
- package/http-client/services/http-replay.service.d.ts +101 -0
- package/http-client/services/http-replay.service.js +86 -0
- package/http-client/services/index.d.ts +0 -1
- package/http-client/services/index.js +0 -1
- package/http-client/services/log-cleanup.service.d.ts +63 -0
- package/http-client/services/log-cleanup.service.js +54 -2
- package/http-client/services/logging.service.d.ts +116 -7
- package/http-client/services/logging.service.js +349 -86
- package/http-client/utils/call-stack-extractor.util.d.ts +63 -0
- package/http-client/utils/call-stack-extractor.util.js +83 -0
- package/http-client/utils/context-extractor.util.d.ts +49 -0
- package/http-client/utils/context-extractor.util.js +52 -0
- package/http-client/utils/curl-generator.util.d.ts +21 -0
- package/http-client/utils/curl-generator.util.js +44 -3
- package/http-client/utils/index.d.ts +1 -0
- package/http-client/utils/index.js +1 -0
- package/http-client/utils/proxy-environment.util.d.ts +42 -0
- package/http-client/utils/proxy-environment.util.js +148 -0
- package/http-client/utils/request-id.util.d.ts +18 -0
- package/http-client/utils/request-id.util.js +20 -0
- package/http-client/utils/retry-recorder.util.d.ts +42 -0
- package/http-client/utils/retry-recorder.util.js +44 -0
- package/http-client/utils/security-validator.util.d.ts +118 -0
- package/http-client/utils/security-validator.util.js +352 -0
- package/index.d.ts +3 -1
- package/index.js +12 -1
- package/interceptors/translation-interceptor.service.js +5 -0
- package/package.json +11 -7
- package/providers/context.provider.js +2 -0
- package/providers/generator.provider.d.ts +4 -0
- package/providers/generator.provider.js +4 -0
- package/redis-lock/comprehensive-lock-cleanup.service.d.ts +94 -0
- package/redis-lock/comprehensive-lock-cleanup.service.js +253 -0
- package/redis-lock/examples/lock-strategy.examples.d.ts +89 -0
- package/redis-lock/examples/lock-strategy.examples.js +130 -15
- package/redis-lock/index.d.ts +2 -0
- package/redis-lock/index.js +8 -1
- package/redis-lock/lock-heartbeat.service.d.ts +80 -0
- package/redis-lock/lock-heartbeat.service.js +232 -0
- package/redis-lock/redis-lock.decorator.d.ts +101 -0
- package/redis-lock/redis-lock.decorator.js +120 -0
- package/redis-lock/redis-lock.module.d.ts +66 -0
- package/redis-lock/redis-lock.module.js +175 -70
- package/redis-lock/redis-lock.service.d.ts +282 -0
- package/redis-lock/redis-lock.service.js +343 -20
- package/setup/bootstrap.setup.d.ts +1 -0
- package/setup/bootstrap.setup.js +21 -0
- package/setup/index.d.ts +1 -0
- package/setup/index.js +1 -0
- package/setup/mode.setup.d.ts +44 -0
- package/setup/mode.setup.js +44 -0
- package/setup/run-in-mode.decorator.d.ts +56 -0
- package/setup/run-in-mode.decorator.js +92 -0
- package/setup/schedule.decorator.d.ts +227 -0
- package/setup/schedule.decorator.js +240 -12
- package/setup/worker.decorator.d.ts +86 -0
- package/setup/worker.decorator.js +97 -0
- package/shared/index.d.ts +1 -1
- package/shared/index.js +1 -1
- package/shared/{serviceRegistryModule.js → service-registry.module.js} +19 -17
- package/shared/services/api-config.service.d.ts +3 -0
- package/shared/services/api-config.service.js +21 -9
- package/shared/services/index.d.ts +0 -1
- package/shared/services/index.js +0 -1
- package/validator-json/decorators.d.ts +17 -0
- package/validator-json/decorators.js +17 -2
- package/validator-json/default.d.ts +6 -0
- package/validator-json/default.js +30 -2
- package/validator-json/defaultConverters.js +1 -0
- package/validator-json/options.d.ts +23 -0
- package/validators/common-validators.d.ts +143 -0
- package/validators/common-validators.js +249 -0
- package/validators/custom-validate.examples.d.ts +23 -0
- package/validators/custom-validate.examples.js +78 -6
- package/validators/custom-validate.validator.d.ts +108 -0
- package/validators/custom-validate.validator.js +85 -0
- package/validators/file-mimetype.validator.d.ts +0 -2
- package/validators/file-mimetype.validator.js +4 -6
- package/validators/index.d.ts +1 -0
- package/validators/index.js +1 -0
- package/validators/is-exists.validator.d.ts +26 -6
- package/validators/is-exists.validator.js +30 -7
- package/validators/is-unique.validator.d.ts +33 -7
- package/validators/is-unique.validator.js +59 -17
- package/validators/skip-empty.validator.d.ts +5 -0
- package/validators/skip-empty.validator.js +5 -0
- package/vault/interfaces/vault-options.interface.d.ts +9 -0
- package/vault/vault-config.loader.d.ts +30 -0
- package/vault/vault-config.loader.js +48 -1
- package/vault/vault-config.service.d.ts +53 -0
- package/vault/vault-config.service.js +57 -0
- package/vault/vault.module.d.ts +4 -0
- package/vault/vault.module.js +4 -0
- package/decorators/examples/validation-decorators.example.d.ts +0 -69
- package/decorators/examples/validation-decorators.example.js +0 -331
- package/http-client/services/cache.service.d.ts +0 -24
- package/http-client/services/cache.service.js +0 -264
- package/shared/services/validator.service.d.ts +0 -3
- package/shared/services/validator.service.js +0 -20
- /package/shared/{serviceRegistryModule.d.ts → service-registry.module.d.ts} +0 -0
|
@@ -1,14 +1,21 @@
|
|
|
1
1
|
import 'reflect-metadata';
|
|
2
|
-
import { CircuitBreakerConfig,
|
|
2
|
+
import { CircuitBreakerConfig, HttpClientConfig, RetryConfig } from '../interfaces/http-client-config.interface';
|
|
3
3
|
export declare const HTTP_CLIENT_OPTIONS_KEY = "http_client_options";
|
|
4
4
|
export declare const RETRY_OPTIONS_KEY = "http_retry_options";
|
|
5
5
|
export declare const CIRCUIT_BREAKER_OPTIONS_KEY = "http_circuit_breaker_options";
|
|
6
|
-
export declare const CACHE_OPTIONS_KEY = "http_cache_options";
|
|
7
6
|
export declare const LOGGING_OPTIONS_KEY = "http_logging_options";
|
|
8
7
|
export declare const TIMEOUT_OPTIONS_KEY = "http_timeout_options";
|
|
9
8
|
export declare const PROXY_OPTIONS_KEY = "http_proxy_options";
|
|
10
9
|
export declare const CALL_INFO_KEY = "http_call_info";
|
|
10
|
+
/**
|
|
11
|
+
* HTTP客户端装饰器
|
|
12
|
+
* 类似Spring Boot的@RestClient注解
|
|
13
|
+
*/
|
|
11
14
|
export declare const HttpClient: (options?: HttpClientConfig) => (target: any) => void;
|
|
15
|
+
/**
|
|
16
|
+
* 重试装饰器
|
|
17
|
+
* 基于axios-retry库
|
|
18
|
+
*/
|
|
12
19
|
export declare const HttpRetry: (options?: {
|
|
13
20
|
retries?: number;
|
|
14
21
|
retryDelay?: (retryCount: number) => number;
|
|
@@ -16,20 +23,20 @@ export declare const HttpRetry: (options?: {
|
|
|
16
23
|
shouldResetTimeout?: boolean;
|
|
17
24
|
onRetry?: (retryCount: number, error: any, requestConfig: any) => void;
|
|
18
25
|
}) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
26
|
+
/**
|
|
27
|
+
* 熔断器装饰器
|
|
28
|
+
* 类似Spring Cloud CircuitBreaker的@CircuitBreaker注解
|
|
29
|
+
*/
|
|
19
30
|
export declare const HttpCircuitBreaker: (options?: {
|
|
20
31
|
failureThreshold?: number;
|
|
21
32
|
recoveryTimeoutMs?: number;
|
|
22
33
|
monitoringPeriodMs?: number;
|
|
23
34
|
minimumThroughputThreshold?: number;
|
|
24
35
|
}) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
condition?: (...args: any[]) => boolean | Promise<boolean>;
|
|
30
|
-
unless?: string | ((result: any, args: any[]) => boolean);
|
|
31
|
-
namespace?: string;
|
|
32
|
-
}) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
36
|
+
/**
|
|
37
|
+
* 请求日志装饰器
|
|
38
|
+
* 类似Spring Boot的@LogRequest注解
|
|
39
|
+
*/
|
|
33
40
|
export declare const HttpLogRequest: (options?: {
|
|
34
41
|
logHeaders?: boolean;
|
|
35
42
|
logBody?: boolean;
|
|
@@ -40,29 +47,63 @@ export declare const HttpLogRequest: (options?: {
|
|
|
40
47
|
methodName?: string;
|
|
41
48
|
operationName?: string;
|
|
42
49
|
}) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
50
|
+
/**
|
|
51
|
+
* 超时装饰器
|
|
52
|
+
* 类似Spring的@Timeout注解
|
|
53
|
+
*/
|
|
43
54
|
export declare const HttpTimeout: (timeoutMs: number) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
55
|
+
/**
|
|
56
|
+
* 代理装饰器
|
|
57
|
+
*/
|
|
44
58
|
export declare const HttpUseProxy: (options: {
|
|
45
|
-
|
|
46
|
-
|
|
59
|
+
enabled?: boolean;
|
|
60
|
+
fromEnvironment?: boolean;
|
|
61
|
+
host?: string;
|
|
62
|
+
port?: number;
|
|
47
63
|
protocol?: "http" | "https";
|
|
48
64
|
auth?: {
|
|
49
65
|
username: string;
|
|
50
66
|
password: string;
|
|
51
67
|
};
|
|
52
68
|
}) => (target: any, propertyKey: string, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
69
|
+
/**
|
|
70
|
+
* 装饰器工具函数
|
|
71
|
+
*/
|
|
53
72
|
export declare class HttpDecoratorUtils {
|
|
73
|
+
/**
|
|
74
|
+
* 获取方法上的重试配置
|
|
75
|
+
*/
|
|
54
76
|
static getRetryOptions(target: any, propertyKey: string): RetryConfig | undefined;
|
|
77
|
+
/**
|
|
78
|
+
* 获取方法上的熔断器配置
|
|
79
|
+
*/
|
|
55
80
|
static getCircuitBreakerOptions(target: any, propertyKey: string): CircuitBreakerConfig | undefined;
|
|
56
|
-
|
|
81
|
+
/**
|
|
82
|
+
* 获取方法上的日志配置
|
|
83
|
+
*/
|
|
57
84
|
static getLoggingOptions(target: any, propertyKey: string): any;
|
|
85
|
+
/**
|
|
86
|
+
* 获取方法上的超时配置
|
|
87
|
+
*/
|
|
58
88
|
static getTimeoutOptions(target: any, propertyKey: string): number | undefined;
|
|
89
|
+
/**
|
|
90
|
+
* 获取方法上的代理配置
|
|
91
|
+
*/
|
|
59
92
|
static getProxyOptions(target: any, propertyKey: string): any;
|
|
93
|
+
/**
|
|
94
|
+
* 获取类上的HTTP客户端配置
|
|
95
|
+
*/
|
|
60
96
|
static getHttpClientOptions(target: any): HttpClientConfig;
|
|
97
|
+
/**
|
|
98
|
+
* 获取方法上的调用信息配置
|
|
99
|
+
*/
|
|
61
100
|
static getCallInfoOptions(target: any, propertyKey: string): any;
|
|
101
|
+
/**
|
|
102
|
+
* 获取所有装饰器配置
|
|
103
|
+
*/
|
|
62
104
|
static getAllDecoratorConfigs(target: any, propertyKey: string): {
|
|
63
105
|
retry?: RetryConfig;
|
|
64
106
|
circuitBreaker?: CircuitBreakerConfig;
|
|
65
|
-
cache?: HttpCacheConfig;
|
|
66
107
|
logging?: any;
|
|
67
108
|
timeout?: number;
|
|
68
109
|
proxy?: any;
|
|
@@ -1,24 +1,31 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HttpDecoratorUtils = exports.HttpUseProxy = exports.HttpTimeout = exports.HttpLogRequest = exports.
|
|
3
|
+
exports.HttpDecoratorUtils = exports.HttpUseProxy = exports.HttpTimeout = exports.HttpLogRequest = exports.HttpCircuitBreaker = exports.HttpRetry = exports.HttpClient = exports.CALL_INFO_KEY = exports.PROXY_OPTIONS_KEY = exports.TIMEOUT_OPTIONS_KEY = exports.LOGGING_OPTIONS_KEY = exports.CIRCUIT_BREAKER_OPTIONS_KEY = exports.RETRY_OPTIONS_KEY = exports.HTTP_CLIENT_OPTIONS_KEY = void 0;
|
|
4
4
|
require("reflect-metadata");
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
-
const cache_options_interface_1 = require("../../cache/interfaces/cache-options.interface");
|
|
7
6
|
const call_stack_extractor_util_1 = require("../utils/call-stack-extractor.util");
|
|
7
|
+
// 装饰器元数据键
|
|
8
8
|
exports.HTTP_CLIENT_OPTIONS_KEY = 'http_client_options';
|
|
9
9
|
exports.RETRY_OPTIONS_KEY = 'http_retry_options';
|
|
10
10
|
exports.CIRCUIT_BREAKER_OPTIONS_KEY = 'http_circuit_breaker_options';
|
|
11
|
-
exports.CACHE_OPTIONS_KEY = 'http_cache_options';
|
|
12
11
|
exports.LOGGING_OPTIONS_KEY = 'http_logging_options';
|
|
13
12
|
exports.TIMEOUT_OPTIONS_KEY = 'http_timeout_options';
|
|
14
13
|
exports.PROXY_OPTIONS_KEY = 'http_proxy_options';
|
|
15
14
|
exports.CALL_INFO_KEY = 'http_call_info';
|
|
15
|
+
/**
|
|
16
|
+
* HTTP客户端装饰器
|
|
17
|
+
* 类似Spring Boot的@RestClient注解
|
|
18
|
+
*/
|
|
16
19
|
const HttpClient = (options = {}) => {
|
|
17
20
|
return (target) => {
|
|
18
21
|
(0, common_1.SetMetadata)(exports.HTTP_CLIENT_OPTIONS_KEY, options)(target);
|
|
19
22
|
};
|
|
20
23
|
};
|
|
21
24
|
exports.HttpClient = HttpClient;
|
|
25
|
+
/**
|
|
26
|
+
* 重试装饰器
|
|
27
|
+
* 基于axios-retry库
|
|
28
|
+
*/
|
|
22
29
|
const HttpRetry = (options = {}) => {
|
|
23
30
|
return (target, propertyKey, descriptor) => {
|
|
24
31
|
const retryOptions = {
|
|
@@ -27,19 +34,46 @@ const HttpRetry = (options = {}) => {
|
|
|
27
34
|
retryDelay: options.retryDelay || ((retryCount) => Math.pow(2, retryCount) * 1000),
|
|
28
35
|
retryCondition: options.retryCondition ||
|
|
29
36
|
((error) => {
|
|
37
|
+
// 默认重试条件:网络错误、超时、5xx错误、429错误
|
|
30
38
|
if (!error.response)
|
|
31
|
-
return true;
|
|
39
|
+
return true; // 网络错误
|
|
32
40
|
const status = error.response.status;
|
|
33
|
-
return status >= 500 || status === 429;
|
|
41
|
+
return status >= 500 || status === 429; // 5xx错误或429限流
|
|
34
42
|
}),
|
|
35
43
|
shouldResetTimeout: options.shouldResetTimeout !== false,
|
|
36
44
|
onRetry: options.onRetry,
|
|
37
45
|
};
|
|
38
|
-
|
|
46
|
+
// Wrap the method to pass decorator context to HTTP client
|
|
47
|
+
const originalMethod = descriptor.value;
|
|
48
|
+
const wrappedMethod = function (...args) {
|
|
49
|
+
// Set decorator context (reference counting prevents overwriting)
|
|
50
|
+
call_stack_extractor_util_1.CallStackExtractor.setDecoratorContext({
|
|
51
|
+
target,
|
|
52
|
+
propertyKey,
|
|
53
|
+
});
|
|
54
|
+
try {
|
|
55
|
+
return originalMethod.apply(this, args);
|
|
56
|
+
}
|
|
57
|
+
finally {
|
|
58
|
+
call_stack_extractor_util_1.CallStackExtractor.clearDecoratorContext();
|
|
59
|
+
}
|
|
60
|
+
};
|
|
61
|
+
// Copy metadata from original to wrapped method
|
|
62
|
+
const metadataKeys = Reflect.getMetadataKeys(originalMethod);
|
|
63
|
+
for (const key of metadataKeys) {
|
|
64
|
+
Reflect.defineMetadata(key, Reflect.getMetadata(key, originalMethod), wrappedMethod);
|
|
65
|
+
}
|
|
66
|
+
// Store the retry options on the wrapped method
|
|
67
|
+
(0, common_1.SetMetadata)(`${exports.RETRY_OPTIONS_KEY}_${propertyKey}`, retryOptions)(wrappedMethod);
|
|
68
|
+
descriptor.value = wrappedMethod;
|
|
39
69
|
return descriptor;
|
|
40
70
|
};
|
|
41
71
|
};
|
|
42
72
|
exports.HttpRetry = HttpRetry;
|
|
73
|
+
/**
|
|
74
|
+
* 熔断器装饰器
|
|
75
|
+
* 类似Spring Cloud CircuitBreaker的@CircuitBreaker注解
|
|
76
|
+
*/
|
|
43
77
|
const HttpCircuitBreaker = (options = {}) => {
|
|
44
78
|
return (target, propertyKey, descriptor) => {
|
|
45
79
|
const circuitBreakerOptions = {
|
|
@@ -50,66 +84,41 @@ const HttpCircuitBreaker = (options = {}) => {
|
|
|
50
84
|
minimumThroughputThreshold: options.minimumThroughputThreshold || 10,
|
|
51
85
|
countHalfOpenCalls: true,
|
|
52
86
|
};
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
switch (layer) {
|
|
72
|
-
case 'cls':
|
|
73
|
-
return cache_options_interface_1.CacheLayer.CLS;
|
|
74
|
-
case 'memory':
|
|
75
|
-
return cache_options_interface_1.CacheLayer.MEMORY;
|
|
76
|
-
case 'redis':
|
|
77
|
-
return cache_options_interface_1.CacheLayer.REDIS;
|
|
78
|
-
default:
|
|
79
|
-
return cache_options_interface_1.CacheLayer.MEMORY;
|
|
80
|
-
}
|
|
81
|
-
}),
|
|
82
|
-
condition: options.condition,
|
|
83
|
-
prefix: options.namespace,
|
|
84
|
-
},
|
|
85
|
-
cacheableMethods: ['get'],
|
|
86
|
-
cacheableStatusCodes: [200, 201, 202, 204, 301, 302, 304],
|
|
87
|
+
// Wrap the method to pass decorator context to HTTP client
|
|
88
|
+
const originalMethod = descriptor.value;
|
|
89
|
+
const wrappedMethod = function (...args) {
|
|
90
|
+
// Store decorator context in async local storage or call stack
|
|
91
|
+
// Only set if not already set by another decorator
|
|
92
|
+
if (!call_stack_extractor_util_1.CallStackExtractor.getDecoratorContext()) {
|
|
93
|
+
call_stack_extractor_util_1.CallStackExtractor.setDecoratorContext({
|
|
94
|
+
target,
|
|
95
|
+
propertyKey,
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
try {
|
|
99
|
+
return originalMethod.apply(this, args);
|
|
100
|
+
}
|
|
101
|
+
finally {
|
|
102
|
+
// Clean up the context after execution
|
|
103
|
+
call_stack_extractor_util_1.CallStackExtractor.clearDecoratorContext();
|
|
104
|
+
}
|
|
87
105
|
};
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
if (typeof options.unless === 'string') {
|
|
93
|
-
if (evalInContext(options.unless, { result, args })) {
|
|
94
|
-
return result;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
else if (typeof options.unless === 'function') {
|
|
98
|
-
if (options.unless(result, args)) {
|
|
99
|
-
return result;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
(0, common_1.SetMetadata)(`${exports.CACHE_OPTIONS_KEY}_${propertyKey}`, cacheOptions)(originalMethod);
|
|
103
|
-
return result;
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
else {
|
|
107
|
-
(0, common_1.SetMetadata)(`${exports.CACHE_OPTIONS_KEY}_${propertyKey}`, cacheOptions)(descriptor.value);
|
|
106
|
+
// Copy metadata from original to wrapped method
|
|
107
|
+
const metadataKeys = Reflect.getMetadataKeys(originalMethod);
|
|
108
|
+
for (const key of metadataKeys) {
|
|
109
|
+
Reflect.defineMetadata(key, Reflect.getMetadata(key, originalMethod), wrappedMethod);
|
|
108
110
|
}
|
|
111
|
+
// Store the circuit breaker options on the wrapped method
|
|
112
|
+
(0, common_1.SetMetadata)(`${exports.CIRCUIT_BREAKER_OPTIONS_KEY}_${propertyKey}`, circuitBreakerOptions)(wrappedMethod);
|
|
113
|
+
descriptor.value = wrappedMethod;
|
|
109
114
|
return descriptor;
|
|
110
115
|
};
|
|
111
116
|
};
|
|
112
|
-
exports.
|
|
117
|
+
exports.HttpCircuitBreaker = HttpCircuitBreaker;
|
|
118
|
+
/**
|
|
119
|
+
* 请求日志装饰器
|
|
120
|
+
* 类似Spring Boot的@LogRequest注解
|
|
121
|
+
*/
|
|
113
122
|
const HttpLogRequest = (options = {}) => {
|
|
114
123
|
return (target, propertyKey, descriptor) => {
|
|
115
124
|
var _a, _b, _c;
|
|
@@ -128,62 +137,138 @@ const HttpLogRequest = (options = {}) => {
|
|
|
128
137
|
databaseLog: (_c = options.databaseLog) !== null && _c !== void 0 ? _c : false,
|
|
129
138
|
logLevel: options.logLevel || 'info',
|
|
130
139
|
};
|
|
140
|
+
// 提取调用信息
|
|
131
141
|
const decoratorInfo = call_stack_extractor_util_1.CallStackExtractor.extractFromDecorator(target, propertyKey);
|
|
132
142
|
const callInfo = {
|
|
133
143
|
serviceClass: options.serviceClass || decoratorInfo.serviceClass,
|
|
134
144
|
methodName: options.methodName || decoratorInfo.methodName,
|
|
135
145
|
operationName: options.operationName || decoratorInfo.operationName,
|
|
136
146
|
};
|
|
137
|
-
|
|
138
|
-
|
|
147
|
+
// Wrap the method to pass decorator context to HTTP client
|
|
148
|
+
const originalMethod = descriptor.value;
|
|
149
|
+
const wrappedMethod = function (...args) {
|
|
150
|
+
// Set decorator context (reference counting prevents overwriting)
|
|
151
|
+
call_stack_extractor_util_1.CallStackExtractor.setDecoratorContext({
|
|
152
|
+
target,
|
|
153
|
+
propertyKey,
|
|
154
|
+
});
|
|
155
|
+
try {
|
|
156
|
+
return originalMethod.apply(this, args);
|
|
157
|
+
}
|
|
158
|
+
finally {
|
|
159
|
+
call_stack_extractor_util_1.CallStackExtractor.clearDecoratorContext();
|
|
160
|
+
}
|
|
161
|
+
};
|
|
162
|
+
// Copy metadata from original to wrapped method
|
|
163
|
+
const metadataKeys = Reflect.getMetadataKeys(originalMethod);
|
|
164
|
+
for (const key of metadataKeys) {
|
|
165
|
+
Reflect.defineMetadata(key, Reflect.getMetadata(key, originalMethod), wrappedMethod);
|
|
166
|
+
}
|
|
167
|
+
// Store the logging options on the wrapped method
|
|
168
|
+
(0, common_1.SetMetadata)(`${exports.LOGGING_OPTIONS_KEY}_${propertyKey}`, loggingOptions)(wrappedMethod);
|
|
169
|
+
(0, common_1.SetMetadata)(`${exports.CALL_INFO_KEY}_${propertyKey}`, callInfo)(wrappedMethod);
|
|
170
|
+
descriptor.value = wrappedMethod;
|
|
139
171
|
return descriptor;
|
|
140
172
|
};
|
|
141
173
|
};
|
|
142
174
|
exports.HttpLogRequest = HttpLogRequest;
|
|
175
|
+
/**
|
|
176
|
+
* 超时装饰器
|
|
177
|
+
* 类似Spring的@Timeout注解
|
|
178
|
+
*/
|
|
143
179
|
const HttpTimeout = (timeoutMs) => {
|
|
144
180
|
return (target, propertyKey, descriptor) => {
|
|
145
|
-
|
|
181
|
+
// Wrap the method to pass decorator context to HTTP client
|
|
182
|
+
const originalMethod = descriptor.value;
|
|
183
|
+
const wrappedMethod = function (...args) {
|
|
184
|
+
// Set decorator context (reference counting prevents overwriting)
|
|
185
|
+
call_stack_extractor_util_1.CallStackExtractor.setDecoratorContext({
|
|
186
|
+
target,
|
|
187
|
+
propertyKey,
|
|
188
|
+
});
|
|
189
|
+
try {
|
|
190
|
+
return originalMethod.apply(this, args);
|
|
191
|
+
}
|
|
192
|
+
finally {
|
|
193
|
+
call_stack_extractor_util_1.CallStackExtractor.clearDecoratorContext();
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
// Copy metadata from original to wrapped method
|
|
197
|
+
const metadataKeys = Reflect.getMetadataKeys(originalMethod);
|
|
198
|
+
for (const key of metadataKeys) {
|
|
199
|
+
Reflect.defineMetadata(key, Reflect.getMetadata(key, originalMethod), wrappedMethod);
|
|
200
|
+
}
|
|
201
|
+
// Store the timeout options on the wrapped method
|
|
202
|
+
(0, common_1.SetMetadata)(`${exports.TIMEOUT_OPTIONS_KEY}_${propertyKey}`, timeoutMs)(wrappedMethod);
|
|
203
|
+
descriptor.value = wrappedMethod;
|
|
146
204
|
return descriptor;
|
|
147
205
|
};
|
|
148
206
|
};
|
|
149
207
|
exports.HttpTimeout = HttpTimeout;
|
|
208
|
+
/**
|
|
209
|
+
* 代理装饰器
|
|
210
|
+
*/
|
|
150
211
|
const HttpUseProxy = (options) => {
|
|
151
212
|
return (target, propertyKey, descriptor) => {
|
|
152
|
-
|
|
213
|
+
const proxyConfig = Object.assign({ enabled: options.enabled !== false }, options);
|
|
214
|
+
(0, common_1.SetMetadata)(`${exports.PROXY_OPTIONS_KEY}_${propertyKey}`, proxyConfig)(descriptor.value);
|
|
153
215
|
return descriptor;
|
|
154
216
|
};
|
|
155
217
|
};
|
|
156
218
|
exports.HttpUseProxy = HttpUseProxy;
|
|
219
|
+
/**
|
|
220
|
+
* 装饰器工具函数
|
|
221
|
+
*/
|
|
157
222
|
class HttpDecoratorUtils {
|
|
223
|
+
/**
|
|
224
|
+
* 获取方法上的重试配置
|
|
225
|
+
*/
|
|
158
226
|
static getRetryOptions(target, propertyKey) {
|
|
159
227
|
return Reflect.getMetadata(`${exports.RETRY_OPTIONS_KEY}_${propertyKey}`, target[propertyKey]);
|
|
160
228
|
}
|
|
229
|
+
/**
|
|
230
|
+
* 获取方法上的熔断器配置
|
|
231
|
+
*/
|
|
161
232
|
static getCircuitBreakerOptions(target, propertyKey) {
|
|
162
233
|
return Reflect.getMetadata(`${exports.CIRCUIT_BREAKER_OPTIONS_KEY}_${propertyKey}`, target[propertyKey]);
|
|
163
234
|
}
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
235
|
+
/**
|
|
236
|
+
* 获取方法上的日志配置
|
|
237
|
+
*/
|
|
167
238
|
static getLoggingOptions(target, propertyKey) {
|
|
168
239
|
return Reflect.getMetadata(`${exports.LOGGING_OPTIONS_KEY}_${propertyKey}`, target[propertyKey]);
|
|
169
240
|
}
|
|
241
|
+
/**
|
|
242
|
+
* 获取方法上的超时配置
|
|
243
|
+
*/
|
|
170
244
|
static getTimeoutOptions(target, propertyKey) {
|
|
171
245
|
return Reflect.getMetadata(`${exports.TIMEOUT_OPTIONS_KEY}_${propertyKey}`, target[propertyKey]);
|
|
172
246
|
}
|
|
247
|
+
/**
|
|
248
|
+
* 获取方法上的代理配置
|
|
249
|
+
*/
|
|
173
250
|
static getProxyOptions(target, propertyKey) {
|
|
174
251
|
return Reflect.getMetadata(`${exports.PROXY_OPTIONS_KEY}_${propertyKey}`, target[propertyKey]);
|
|
175
252
|
}
|
|
253
|
+
/**
|
|
254
|
+
* 获取类上的HTTP客户端配置
|
|
255
|
+
*/
|
|
176
256
|
static getHttpClientOptions(target) {
|
|
177
257
|
return Reflect.getMetadata(exports.HTTP_CLIENT_OPTIONS_KEY, target) || {};
|
|
178
258
|
}
|
|
259
|
+
/**
|
|
260
|
+
* 获取方法上的调用信息配置
|
|
261
|
+
*/
|
|
179
262
|
static getCallInfoOptions(target, propertyKey) {
|
|
180
263
|
return Reflect.getMetadata(`${exports.CALL_INFO_KEY}_${propertyKey}`, target[propertyKey]);
|
|
181
264
|
}
|
|
265
|
+
/**
|
|
266
|
+
* 获取所有装饰器配置
|
|
267
|
+
*/
|
|
182
268
|
static getAllDecoratorConfigs(target, propertyKey) {
|
|
183
269
|
return {
|
|
184
270
|
retry: this.getRetryOptions(target, propertyKey),
|
|
185
271
|
circuitBreaker: this.getCircuitBreakerOptions(target, propertyKey),
|
|
186
|
-
cache: this.getCacheOptions(target, propertyKey),
|
|
187
272
|
logging: this.getLoggingOptions(target, propertyKey),
|
|
188
273
|
timeout: this.getTimeoutOptions(target, propertyKey),
|
|
189
274
|
proxy: this.getProxyOptions(target, propertyKey),
|
|
@@ -193,12 +278,3 @@ class HttpDecoratorUtils {
|
|
|
193
278
|
}
|
|
194
279
|
}
|
|
195
280
|
exports.HttpDecoratorUtils = HttpDecoratorUtils;
|
|
196
|
-
function evalInContext(expression, context) {
|
|
197
|
-
try {
|
|
198
|
-
const func = new Function(...Object.keys(context), `return ${expression}`);
|
|
199
|
-
return func(...Object.values(context));
|
|
200
|
-
}
|
|
201
|
-
catch (error) {
|
|
202
|
-
return false;
|
|
203
|
-
}
|
|
204
|
-
}
|