@rsdk/core 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintignore +4 -0
- package/.eslintrc.js +4 -0
- package/.prettierignore +1 -0
- package/.prettierrc.json +1 -0
- package/dist/app/platform.app.d.ts +28 -0
- package/dist/app/platform.app.js +49 -0
- package/dist/app/platform.app.js.map +1 -0
- package/dist/app-metadata/app-metadata.const.d.ts +3 -0
- package/dist/app-metadata/app-metadata.const.js +7 -0
- package/dist/app-metadata/app-metadata.const.js.map +1 -0
- package/dist/app-metadata/app-metadata.module.d.ts +5 -0
- package/dist/app-metadata/app-metadata.module.js +41 -0
- package/dist/app-metadata/app-metadata.module.js.map +1 -0
- package/dist/app-metadata/app-name.const.d.ts +1 -0
- package/dist/app-metadata/app-name.const.js +5 -0
- package/dist/app-metadata/app-name.const.js.map +1 -0
- package/dist/app-metadata/app-name.validator.d.ts +2 -0
- package/dist/app-metadata/app-name.validator.js +14 -0
- package/dist/app-metadata/app-name.validator.js.map +1 -0
- package/dist/app-metadata/decorators/app-name.decorator.d.ts +1 -0
- package/dist/app-metadata/decorators/app-name.decorator.js +8 -0
- package/dist/app-metadata/decorators/app-name.decorator.js.map +1 -0
- package/dist/app-metadata/decorators/index.d.ts +1 -0
- package/dist/app-metadata/decorators/index.js +18 -0
- package/dist/app-metadata/decorators/index.js.map +1 -0
- package/dist/app-metadata/exceptions/app-name-validation.exception.d.ts +4 -0
- package/dist/app-metadata/exceptions/app-name-validation.exception.js +38 -0
- package/dist/app-metadata/exceptions/app-name-validation.exception.js.map +1 -0
- package/dist/app-metadata/exceptions/index.d.ts +1 -0
- package/dist/app-metadata/exceptions/index.js +18 -0
- package/dist/app-metadata/exceptions/index.js.map +1 -0
- package/dist/app-metadata/index.d.ts +2 -0
- package/dist/app-metadata/index.js +19 -0
- package/dist/app-metadata/index.js.map +1 -0
- package/dist/config/additional-source/additional-source.initializer.d.ts +38 -0
- package/dist/config/additional-source/additional-source.initializer.js +130 -0
- package/dist/config/additional-source/additional-source.initializer.js.map +1 -0
- package/dist/config/additional-source/additional-source.module.d.ts +24 -0
- package/dist/config/additional-source/additional-source.module.js +32 -0
- package/dist/config/additional-source/additional-source.module.js.map +1 -0
- package/dist/config/config-reload.indicator.d.ts +8 -0
- package/dist/config/config-reload.indicator.js +42 -0
- package/dist/config/config-reload.indicator.js.map +1 -0
- package/dist/config/config.abstract.d.ts +19 -0
- package/dist/config/config.abstract.js +57 -0
- package/dist/config/config.abstract.js.map +1 -0
- package/dist/config/config.module.d.ts +121 -0
- package/dist/config/config.module.js +271 -0
- package/dist/config/config.module.js.map +1 -0
- package/dist/config/exceptions/config-not-bootstrapped.exception.d.ts +4 -0
- package/dist/config/exceptions/config-not-bootstrapped.exception.js +30 -0
- package/dist/config/exceptions/config-not-bootstrapped.exception.js.map +1 -0
- package/dist/config/exceptions/config-property-metadata-not-found.d.ts +4 -0
- package/dist/config/exceptions/config-property-metadata-not-found.js +13 -0
- package/dist/config/exceptions/config-property-metadata-not-found.js.map +1 -0
- package/dist/config/exceptions/index.d.ts +3 -0
- package/dist/config/exceptions/index.js +22 -0
- package/dist/config/exceptions/index.js.map +1 -0
- package/dist/config/exceptions/property.exception.d.ts +5 -0
- package/dist/config/exceptions/property.exception.js +18 -0
- package/dist/config/exceptions/property.exception.js.map +1 -0
- package/dist/config/index.d.ts +10 -0
- package/dist/config/index.js +29 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/metadata/config-metadata.registry.d.ts +17 -0
- package/dist/config/metadata/config-metadata.registry.js +46 -0
- package/dist/config/metadata/config-metadata.registry.js.map +1 -0
- package/dist/config/metadata/decorators/config-section.decorator.d.ts +10 -0
- package/dist/config/metadata/decorators/config-section.decorator.js +19 -0
- package/dist/config/metadata/decorators/config-section.decorator.js.map +1 -0
- package/dist/config/metadata/decorators/declare-property.decorator.d.ts +17 -0
- package/dist/config/metadata/decorators/declare-property.decorator.js +37 -0
- package/dist/config/metadata/decorators/declare-property.decorator.js.map +1 -0
- package/dist/config/metadata/decorators/index.d.ts +4 -0
- package/dist/config/metadata/decorators/index.js +21 -0
- package/dist/config/metadata/decorators/index.js.map +1 -0
- package/dist/config/metadata/decorators/inject-property.decorator.d.ts +19 -0
- package/dist/config/metadata/decorators/inject-property.decorator.js +26 -0
- package/dist/config/metadata/decorators/inject-property.decorator.js.map +1 -0
- package/dist/config/metadata/decorators/property.decorator.d.ts +12 -0
- package/dist/config/metadata/decorators/property.decorator.js +27 -0
- package/dist/config/metadata/decorators/property.decorator.js.map +1 -0
- package/dist/config/metadata/exceptions/duplicate-property.exception.d.ts +4 -0
- package/dist/config/metadata/exceptions/duplicate-property.exception.js +27 -0
- package/dist/config/metadata/exceptions/duplicate-property.exception.js.map +1 -0
- package/dist/config/metadata/exceptions/duplicate-section.exception.d.ts +6 -0
- package/dist/config/metadata/exceptions/duplicate-section.exception.js +27 -0
- package/dist/config/metadata/exceptions/duplicate-section.exception.js.map +1 -0
- package/dist/config/metadata/exceptions/duplicate-source.exception.d.ts +6 -0
- package/dist/config/metadata/exceptions/duplicate-source.exception.js +27 -0
- package/dist/config/metadata/exceptions/duplicate-source.exception.js.map +1 -0
- package/dist/config/metadata/exceptions/index.d.ts +3 -0
- package/dist/config/metadata/exceptions/index.js +20 -0
- package/dist/config/metadata/exceptions/index.js.map +1 -0
- package/dist/config/metadata/index.d.ts +2 -0
- package/dist/config/metadata/index.js +19 -0
- package/dist/config/metadata/index.js.map +1 -0
- package/dist/config/parsers/array.parser.d.ts +11 -0
- package/dist/config/parsers/array.parser.js +33 -0
- package/dist/config/parsers/array.parser.js.map +1 -0
- package/dist/config/parsers/boolean/bool.parser.d.ts +6 -0
- package/dist/config/parsers/boolean/bool.parser.js +20 -0
- package/dist/config/parsers/boolean/bool.parser.js.map +1 -0
- package/dist/config/parsers/boolean/index.d.ts +1 -0
- package/dist/config/parsers/boolean/index.js +18 -0
- package/dist/config/parsers/boolean/index.js.map +1 -0
- package/dist/config/parsers/enum/enum.parser.d.ts +9 -0
- package/dist/config/parsers/enum/enum.parser.js +24 -0
- package/dist/config/parsers/enum/enum.parser.js.map +1 -0
- package/dist/config/parsers/enum/index.d.ts +1 -0
- package/dist/config/parsers/enum/index.js +18 -0
- package/dist/config/parsers/enum/index.js.map +1 -0
- package/dist/config/parsers/index.d.ts +10 -0
- package/dist/config/parsers/index.js +27 -0
- package/dist/config/parsers/index.js.map +1 -0
- package/dist/config/parsers/int/index.d.ts +1 -0
- package/dist/config/parsers/int/index.js +18 -0
- package/dist/config/parsers/int/index.js.map +1 -0
- package/dist/config/parsers/int/int.parser.d.ts +6 -0
- package/dist/config/parsers/int/int.parser.js +20 -0
- package/dist/config/parsers/int/int.parser.js.map +1 -0
- package/dist/config/parsers/number/index.d.ts +1 -0
- package/dist/config/parsers/number/index.js +18 -0
- package/dist/config/parsers/number/index.js.map +1 -0
- package/dist/config/parsers/number/number.parser.d.ts +6 -0
- package/dist/config/parsers/number/number.parser.js +23 -0
- package/dist/config/parsers/number/number.parser.js.map +1 -0
- package/dist/config/parsers/path/fspath.parser.d.ts +8 -0
- package/dist/config/parsers/path/fspath.parser.js +56 -0
- package/dist/config/parsers/path/fspath.parser.js.map +1 -0
- package/dist/config/parsers/path/index.d.ts +1 -0
- package/dist/config/parsers/path/index.js +18 -0
- package/dist/config/parsers/path/index.js.map +1 -0
- package/dist/config/parsers/size/index.d.ts +1 -0
- package/dist/config/parsers/size/index.js +18 -0
- package/dist/config/parsers/size/index.js.map +1 -0
- package/dist/config/parsers/size/size.parser.d.ts +7 -0
- package/dist/config/parsers/size/size.parser.js +21 -0
- package/dist/config/parsers/size/size.parser.js.map +1 -0
- package/dist/config/parsers/string/index.d.ts +1 -0
- package/dist/config/parsers/string/index.js +18 -0
- package/dist/config/parsers/string/index.js.map +1 -0
- package/dist/config/parsers/string/string.parser.d.ts +6 -0
- package/dist/config/parsers/string/string.parser.js +18 -0
- package/dist/config/parsers/string/string.parser.js.map +1 -0
- package/dist/config/parsers/timespan/index.d.ts +1 -0
- package/dist/config/parsers/timespan/index.js +18 -0
- package/dist/config/parsers/timespan/index.js.map +1 -0
- package/dist/config/parsers/timespan/timespan.parser.d.ts +7 -0
- package/dist/config/parsers/timespan/timespan.parser.js +21 -0
- package/dist/config/parsers/timespan/timespan.parser.js.map +1 -0
- package/dist/config/parsers/url/index.d.ts +1 -0
- package/dist/config/parsers/url/index.js +18 -0
- package/dist/config/parsers/url/index.js.map +1 -0
- package/dist/config/parsers/url/url.parser.d.ts +6 -0
- package/dist/config/parsers/url/url.parser.js +18 -0
- package/dist/config/parsers/url/url.parser.js.map +1 -0
- package/dist/config/reload/config-reload.events.d.ts +22 -0
- package/dist/config/reload/config-reload.events.js +19 -0
- package/dist/config/reload/config-reload.events.js.map +1 -0
- package/dist/config/reload/index.d.ts +1 -0
- package/dist/config/reload/index.js +18 -0
- package/dist/config/reload/index.js.map +1 -0
- package/dist/config/sources/base/config-source.abstract.d.ts +23 -0
- package/dist/config/sources/base/config-source.abstract.js +73 -0
- package/dist/config/sources/base/config-source.abstract.js.map +1 -0
- package/dist/config/sources/base/index.d.ts +2 -0
- package/dist/config/sources/base/index.js +19 -0
- package/dist/config/sources/base/index.js.map +1 -0
- package/dist/config/sources/base/reloadable-config-source.abstract.d.ts +12 -0
- package/dist/config/sources/base/reloadable-config-source.abstract.js +30 -0
- package/dist/config/sources/base/reloadable-config-source.abstract.js.map +1 -0
- package/dist/config/sources/config-source.decorator.d.ts +12 -0
- package/dist/config/sources/config-source.decorator.js +22 -0
- package/dist/config/sources/config-source.decorator.js.map +1 -0
- package/dist/config/sources/exceptions/config-source-di.exception.d.ts +6 -0
- package/dist/config/sources/exceptions/config-source-di.exception.js +34 -0
- package/dist/config/sources/exceptions/config-source-di.exception.js.map +1 -0
- package/dist/config/sources/exceptions/config-source.exception.d.ts +4 -0
- package/dist/config/sources/exceptions/config-source.exception.js +11 -0
- package/dist/config/sources/exceptions/config-source.exception.js.map +1 -0
- package/dist/config/sources/exceptions/index.d.ts +2 -0
- package/dist/config/sources/exceptions/index.js +19 -0
- package/dist/config/sources/exceptions/index.js.map +1 -0
- package/dist/config/sources/implementations/json-file.source.d.ts +9 -0
- package/dist/config/sources/implementations/json-file.source.js +46 -0
- package/dist/config/sources/implementations/json-file.source.js.map +1 -0
- package/dist/config/sources/implementations/relodable-json-file.source.d.ts +8 -0
- package/dist/config/sources/implementations/relodable-json-file.source.js +55 -0
- package/dist/config/sources/implementations/relodable-json-file.source.js.map +1 -0
- package/dist/config/sources/index.d.ts +3 -0
- package/dist/config/sources/index.js +20 -0
- package/dist/config/sources/index.js.map +1 -0
- package/dist/config/types.d.ts +65 -0
- package/dist/config/types.js +3 -0
- package/dist/config/types.js.map +1 -0
- package/dist/config/vars.class.d.ts +19 -0
- package/dist/config/vars.class.js +79 -0
- package/dist/config/vars.class.js.map +1 -0
- package/dist/exceptions/base/bootstrap-exception.abstract.d.ts +15 -0
- package/dist/exceptions/base/bootstrap-exception.abstract.js +22 -0
- package/dist/exceptions/base/bootstrap-exception.abstract.js.map +1 -0
- package/dist/exceptions/base/index.d.ts +3 -0
- package/dist/exceptions/base/index.js +20 -0
- package/dist/exceptions/base/index.js.map +1 -0
- package/dist/exceptions/base/pipeline-exception.abstract.d.ts +21 -0
- package/dist/exceptions/base/pipeline-exception.abstract.js +29 -0
- package/dist/exceptions/base/pipeline-exception.abstract.js.map +1 -0
- package/dist/exceptions/base/platform-exception.absract.d.ts +48 -0
- package/dist/exceptions/base/platform-exception.absract.js +49 -0
- package/dist/exceptions/base/platform-exception.absract.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/double-init.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/double-init.exception.js +35 -0
- package/dist/exceptions/implementations/bootstrap/double-init.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/duplicate-protocol.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/duplicate-protocol.exception.js +34 -0
- package/dist/exceptions/implementations/bootstrap/duplicate-protocol.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/index.d.ts +8 -0
- package/dist/exceptions/implementations/bootstrap/index.js +25 -0
- package/dist/exceptions/implementations/bootstrap/index.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/no-http.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/no-http.exception.js +36 -0
- package/dist/exceptions/implementations/bootstrap/no-http.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/no-init.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/no-init.exception.js +35 -0
- package/dist/exceptions/implementations/bootstrap/no-init.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/no-matching-transport.exception.d.ts +5 -0
- package/dist/exceptions/implementations/bootstrap/no-matching-transport.exception.js +37 -0
- package/dist/exceptions/implementations/bootstrap/no-matching-transport.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/sequence.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/sequence.exception.js +31 -0
- package/dist/exceptions/implementations/bootstrap/sequence.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/symbol-key-decoration.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/symbol-key-decoration.exception.js +30 -0
- package/dist/exceptions/implementations/bootstrap/symbol-key-decoration.exception.js.map +1 -0
- package/dist/exceptions/implementations/bootstrap/unknown-bootstrap.exception.d.ts +4 -0
- package/dist/exceptions/implementations/bootstrap/unknown-bootstrap.exception.js +27 -0
- package/dist/exceptions/implementations/bootstrap/unknown-bootstrap.exception.js.map +1 -0
- package/dist/exceptions/implementations/index.d.ts +2 -0
- package/dist/exceptions/implementations/index.js +19 -0
- package/dist/exceptions/implementations/index.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/authentication.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/authentication.exception.js +35 -0
- package/dist/exceptions/implementations/pipeline/authentication.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/conflict.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/conflict.exception.js +36 -0
- package/dist/exceptions/implementations/pipeline/conflict.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/duplicate-entity.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/duplicate-entity.exception.js +35 -0
- package/dist/exceptions/implementations/pipeline/duplicate-entity.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/index.d.ts +9 -0
- package/dist/exceptions/implementations/pipeline/index.js +26 -0
- package/dist/exceptions/implementations/pipeline/index.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/input.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/input.exception.js +35 -0
- package/dist/exceptions/implementations/pipeline/input.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/internal.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/internal.exception.js +35 -0
- package/dist/exceptions/implementations/pipeline/internal.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/not-allowed.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/not-allowed.exception.js +35 -0
- package/dist/exceptions/implementations/pipeline/not-allowed.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/not-found.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/not-found.exception.js +35 -0
- package/dist/exceptions/implementations/pipeline/not-found.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/timeout.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/timeout.exception.js +34 -0
- package/dist/exceptions/implementations/pipeline/timeout.exception.js.map +1 -0
- package/dist/exceptions/implementations/pipeline/validation.exception.d.ts +4 -0
- package/dist/exceptions/implementations/pipeline/validation.exception.js +13 -0
- package/dist/exceptions/implementations/pipeline/validation.exception.js.map +1 -0
- package/dist/exceptions/index.d.ts +5 -0
- package/dist/exceptions/index.js +24 -0
- package/dist/exceptions/index.js.map +1 -0
- package/dist/exceptions/metadata/decorators/exception.decorator.d.ts +2 -0
- package/dist/exceptions/metadata/decorators/exception.decorator.js +13 -0
- package/dist/exceptions/metadata/decorators/exception.decorator.js.map +1 -0
- package/dist/exceptions/metadata/decorators/index.d.ts +2 -0
- package/dist/exceptions/metadata/decorators/index.js +19 -0
- package/dist/exceptions/metadata/decorators/index.js.map +1 -0
- package/dist/exceptions/metadata/decorators/throws.decorator.d.ts +3 -0
- package/dist/exceptions/metadata/decorators/throws.decorator.js +20 -0
- package/dist/exceptions/metadata/decorators/throws.decorator.js.map +1 -0
- package/dist/exceptions/metadata/exceptions.registry.d.ts +23 -0
- package/dist/exceptions/metadata/exceptions.registry.js +30 -0
- package/dist/exceptions/metadata/exceptions.registry.js.map +1 -0
- package/dist/exceptions/metadata/index.d.ts +2 -0
- package/dist/exceptions/metadata/index.js +19 -0
- package/dist/exceptions/metadata/index.js.map +1 -0
- package/dist/exceptions/types.d.ts +18 -0
- package/dist/exceptions/types.js +23 -0
- package/dist/exceptions/types.js.map +1 -0
- package/dist/exceptions/validation/exception.d.ts +4 -0
- package/dist/exceptions/validation/exception.js +13 -0
- package/dist/exceptions/validation/exception.js.map +1 -0
- package/dist/exceptions.handling/constants.d.ts +3 -0
- package/dist/exceptions.handling/constants.js +7 -0
- package/dist/exceptions.handling/constants.js.map +1 -0
- package/dist/exceptions.handling/global-exceptions.config.d.ts +4 -0
- package/dist/exceptions.handling/global-exceptions.config.js +32 -0
- package/dist/exceptions.handling/global-exceptions.config.js.map +1 -0
- package/dist/exceptions.handling/global-exceptions.filter.d.ts +17 -0
- package/dist/exceptions.handling/global-exceptions.filter.js +83 -0
- package/dist/exceptions.handling/global-exceptions.filter.js.map +1 -0
- package/dist/exceptions.handling/global-exceptions.module.d.ts +26 -0
- package/dist/exceptions.handling/global-exceptions.module.js +47 -0
- package/dist/exceptions.handling/global-exceptions.module.js.map +1 -0
- package/dist/exceptions.handling/index.d.ts +2 -0
- package/dist/exceptions.handling/index.js +19 -0
- package/dist/exceptions.handling/index.js.map +1 -0
- package/dist/exceptions.handling/types.d.ts +81 -0
- package/dist/exceptions.handling/types.js +3 -0
- package/dist/exceptions.handling/types.js.map +1 -0
- package/dist/health/exceptions/health-check.exception.d.ts +5 -0
- package/dist/health/exceptions/health-check.exception.js +24 -0
- package/dist/health/exceptions/health-check.exception.js.map +1 -0
- package/dist/health/exceptions/index.d.ts +1 -0
- package/dist/health/exceptions/index.js +18 -0
- package/dist/health/exceptions/index.js.map +1 -0
- package/dist/health/health.const.d.ts +2 -0
- package/dist/health/health.const.js +6 -0
- package/dist/health/health.const.js.map +1 -0
- package/dist/health/health.module.d.ts +5 -0
- package/dist/health/health.module.js +33 -0
- package/dist/health/health.module.js.map +1 -0
- package/dist/health/health.service.d.ts +14 -0
- package/dist/health/health.service.js +118 -0
- package/dist/health/health.service.js.map +1 -0
- package/dist/health/helpers/check-result.class.d.ts +37 -0
- package/dist/health/helpers/check-result.class.js +49 -0
- package/dist/health/helpers/check-result.class.js.map +1 -0
- package/dist/health/helpers/index.d.ts +1 -0
- package/dist/health/helpers/index.js +18 -0
- package/dist/health/helpers/index.js.map +1 -0
- package/dist/health/index.d.ts +6 -0
- package/dist/health/index.js +23 -0
- package/dist/health/index.js.map +1 -0
- package/dist/health/indicators.abstract/fs-access.indicator.d.ts +27 -0
- package/dist/health/indicators.abstract/fs-access.indicator.js +36 -0
- package/dist/health/indicators.abstract/fs-access.indicator.js.map +1 -0
- package/dist/health/indicators.abstract/index.d.ts +2 -0
- package/dist/health/indicators.abstract/index.js +19 -0
- package/dist/health/indicators.abstract/index.js.map +1 -0
- package/dist/health/indicators.abstract/ping.indicator.d.ts +21 -0
- package/dist/health/indicators.abstract/ping.indicator.js +28 -0
- package/dist/health/indicators.abstract/ping.indicator.js.map +1 -0
- package/dist/health/metadata/index.d.ts +2 -0
- package/dist/health/metadata/index.js +19 -0
- package/dist/health/metadata/index.js.map +1 -0
- package/dist/health/metadata/indicator.decorator.d.ts +5 -0
- package/dist/health/metadata/indicator.decorator.js +16 -0
- package/dist/health/metadata/indicator.decorator.js.map +1 -0
- package/dist/health/metadata/indicators.registry.d.ts +12 -0
- package/dist/health/metadata/indicators.registry.js +26 -0
- package/dist/health/metadata/indicators.registry.js.map +1 -0
- package/dist/health/types.d.ts +45 -0
- package/dist/health/types.js +3 -0
- package/dist/health/types.js.map +1 -0
- package/dist/index.d.ts +11 -0
- package/dist/index.js +44 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/adapters/index.d.ts +1 -0
- package/dist/logging/adapters/index.js +18 -0
- package/dist/logging/adapters/index.js.map +1 -0
- package/dist/logging/adapters/nest-logger.adapter.d.ts +11 -0
- package/dist/logging/adapters/nest-logger.adapter.js +27 -0
- package/dist/logging/adapters/nest-logger.adapter.js.map +1 -0
- package/dist/logging/decorators/index.d.ts +1 -0
- package/dist/logging/decorators/index.js +18 -0
- package/dist/logging/decorators/index.js.map +1 -0
- package/dist/logging/decorators/inject-logger.decorator.d.ts +2 -0
- package/dist/logging/decorators/inject-logger.decorator.js +13 -0
- package/dist/logging/decorators/inject-logger.decorator.js.map +1 -0
- package/dist/logging/helpers.d.ts +2 -0
- package/dist/logging/helpers.js +7 -0
- package/dist/logging/helpers.js.map +1 -0
- package/dist/logging/index.d.ts +4 -0
- package/dist/logging/index.js +21 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logging.config.d.ts +6 -0
- package/dist/logging/logging.config.js +38 -0
- package/dist/logging/logging.config.js.map +1 -0
- package/dist/logging/logging.module.d.ts +10 -0
- package/dist/logging/logging.module.js +54 -0
- package/dist/logging/logging.module.js.map +1 -0
- package/dist/logging/types.d.ts +2 -0
- package/dist/logging/types.js +3 -0
- package/dist/logging/types.js.map +1 -0
- package/dist/manifest/manifest.d.ts +7 -0
- package/dist/manifest/manifest.js +23 -0
- package/dist/manifest/manifest.js.map +1 -0
- package/dist/metrics/index.d.ts +4 -0
- package/dist/metrics/index.js +27 -0
- package/dist/metrics/index.js.map +1 -0
- package/dist/metrics/metadata/decorators/index.d.ts +1 -0
- package/dist/metrics/metadata/decorators/index.js +18 -0
- package/dist/metrics/metadata/decorators/index.js.map +1 -0
- package/dist/metrics/metadata/decorators/metric.decorator.d.ts +13 -0
- package/dist/metrics/metadata/decorators/metric.decorator.js +11 -0
- package/dist/metrics/metadata/decorators/metric.decorator.js.map +1 -0
- package/dist/metrics/metadata/index.d.ts +2 -0
- package/dist/metrics/metadata/index.js +19 -0
- package/dist/metrics/metadata/index.js.map +1 -0
- package/dist/metrics/metadata/metrics.registry.d.ts +8 -0
- package/dist/metrics/metadata/metrics.registry.js +26 -0
- package/dist/metrics/metadata/metrics.registry.js.map +1 -0
- package/dist/metrics/metrics.config.d.ts +5 -0
- package/dist/metrics/metrics.config.js +36 -0
- package/dist/metrics/metrics.config.js.map +1 -0
- package/dist/metrics/metrics.module.d.ts +35 -0
- package/dist/metrics/metrics.module.js +98 -0
- package/dist/metrics/metrics.module.js.map +1 -0
- package/dist/metrics/types.d.ts +21 -0
- package/dist/metrics/types.js +12 -0
- package/dist/metrics/types.js.map +1 -0
- package/dist/noop.http-adapter.d.ts +32 -0
- package/dist/noop.http-adapter.js +100 -0
- package/dist/noop.http-adapter.js.map +1 -0
- package/dist/platform.context.d.ts +55 -0
- package/dist/platform.context.js +162 -0
- package/dist/platform.context.js.map +1 -0
- package/dist/platform.module.d.ts +8 -0
- package/dist/platform.module.js +61 -0
- package/dist/platform.module.js.map +1 -0
- package/dist/plugin/plugin.module.d.ts +5 -0
- package/dist/plugin/plugin.module.js +22 -0
- package/dist/plugin/plugin.module.js.map +1 -0
- package/dist/tracing/auto-instrumentations.config.d.ts +1 -0
- package/dist/tracing/auto-instrumentations.config.js +35 -0
- package/dist/tracing/auto-instrumentations.config.js.map +1 -0
- package/dist/tracing/constants.d.ts +5 -0
- package/dist/tracing/constants.js +10 -0
- package/dist/tracing/constants.js.map +1 -0
- package/dist/tracing/decorators/index.d.ts +2 -0
- package/dist/tracing/decorators/index.js +19 -0
- package/dist/tracing/decorators/index.js.map +1 -0
- package/dist/tracing/decorators/no-span.decorator.d.ts +5 -0
- package/dist/tracing/decorators/no-span.decorator.js +12 -0
- package/dist/tracing/decorators/no-span.decorator.js.map +1 -0
- package/dist/tracing/decorators/span.decorator.d.ts +6 -0
- package/dist/tracing/decorators/span.decorator.js +18 -0
- package/dist/tracing/decorators/span.decorator.js.map +1 -0
- package/dist/tracing/index.d.ts +1 -0
- package/dist/tracing/index.js +18 -0
- package/dist/tracing/index.js.map +1 -0
- package/dist/tracing/services/index.d.ts +3 -0
- package/dist/tracing/services/index.js +20 -0
- package/dist/tracing/services/index.js.map +1 -0
- package/dist/tracing/services/instrumentation.service.d.ts +10 -0
- package/dist/tracing/services/instrumentation.service.js +138 -0
- package/dist/tracing/services/instrumentation.service.js.map +1 -0
- package/dist/tracing/services/metadata.scanner.d.ts +11 -0
- package/dist/tracing/services/metadata.scanner.js +50 -0
- package/dist/tracing/services/metadata.scanner.js.map +1 -0
- package/dist/tracing/services/trace.injector.d.ts +12 -0
- package/dist/tracing/services/trace.injector.js +119 -0
- package/dist/tracing/services/trace.injector.js.map +1 -0
- package/dist/tracing/tracing.config.d.ts +5 -0
- package/dist/tracing/tracing.config.js +36 -0
- package/dist/tracing/tracing.config.js.map +1 -0
- package/dist/tracing/tracing.module.d.ts +22 -0
- package/dist/tracing/tracing.module.js +118 -0
- package/dist/tracing/tracing.module.js.map +1 -0
- package/dist/transport/transport.module.d.ts +8 -0
- package/dist/transport/transport.module.js +55 -0
- package/dist/transport/transport.module.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.js +21 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/metadata.d.ts +38 -0
- package/dist/types/metadata.js +30 -0
- package/dist/types/metadata.js.map +1 -0
- package/dist/types/options.d.ts +68 -0
- package/dist/types/options.js +3 -0
- package/dist/types/options.js.map +1 -0
- package/dist/types/plugins.d.ts +51 -0
- package/dist/types/plugins.js +6 -0
- package/dist/types/plugins.js.map +1 -0
- package/dist/types/transports.d.ts +85 -0
- package/dist/types/transports.js +11 -0
- package/dist/types/transports.js.map +1 -0
- package/package.json +53 -0
- package/src/app/platform.app.ts +52 -0
- package/src/app-metadata/app-metadata.const.ts +3 -0
- package/src/app-metadata/app-metadata.module.ts +34 -0
- package/src/app-metadata/app-name.const.ts +1 -0
- package/src/app-metadata/app-name.validator.ts +11 -0
- package/src/app-metadata/decorators/app-name.decorator.ts +5 -0
- package/src/app-metadata/decorators/index.ts +1 -0
- package/src/app-metadata/exceptions/app-name-validation.exception.ts +23 -0
- package/src/app-metadata/exceptions/index.ts +1 -0
- package/src/app-metadata/index.ts +2 -0
- package/src/config/additional-source/additional-source.initializer.ts +165 -0
- package/src/config/additional-source/additional-source.module.ts +48 -0
- package/src/config/config-reload.indicator.ts +36 -0
- package/src/config/config.abstract.ts +70 -0
- package/src/config/config.module.ts +330 -0
- package/src/config/exceptions/config-not-bootstrapped.exception.ts +15 -0
- package/src/config/exceptions/config-property-metadata-not-found.ts +9 -0
- package/src/config/exceptions/index.ts +3 -0
- package/src/config/exceptions/property.exception.ts +15 -0
- package/src/config/index.ts +10 -0
- package/src/config/metadata/config-metadata.registry.ts +76 -0
- package/src/config/metadata/decorators/config-section.decorator.ts +30 -0
- package/src/config/metadata/decorators/declare-property.decorator.ts +37 -0
- package/src/config/metadata/decorators/index.ts +4 -0
- package/src/config/metadata/decorators/inject-property.decorator.ts +29 -0
- package/src/config/metadata/decorators/property.decorator.ts +42 -0
- package/src/config/metadata/exceptions/duplicate-property.exception.ts +12 -0
- package/src/config/metadata/exceptions/duplicate-section.exception.ts +13 -0
- package/src/config/metadata/exceptions/duplicate-source.exception.ts +13 -0
- package/src/config/metadata/exceptions/index.ts +3 -0
- package/src/config/metadata/index.ts +2 -0
- package/src/config/parsers/array.parser.ts +40 -0
- package/src/config/parsers/boolean/bool.parser.ts +20 -0
- package/src/config/parsers/boolean/bool.spec.ts +4 -0
- package/src/config/parsers/boolean/index.ts +1 -0
- package/src/config/parsers/enum/enum.parser.ts +23 -0
- package/src/config/parsers/enum/enum.spec.ts +5 -0
- package/src/config/parsers/enum/index.ts +1 -0
- package/src/config/parsers/index.ts +10 -0
- package/src/config/parsers/int/index.ts +1 -0
- package/src/config/parsers/int/int.parser.ts +20 -0
- package/src/config/parsers/int/int.spec.ts +5 -0
- package/src/config/parsers/number/index.ts +1 -0
- package/src/config/parsers/number/number.parser.ts +23 -0
- package/src/config/parsers/number/number.spec.ts +5 -0
- package/src/config/parsers/path/fspath.parser.ts +65 -0
- package/src/config/parsers/path/index.ts +1 -0
- package/src/config/parsers/size/index.ts +1 -0
- package/src/config/parsers/size/size.parser.ts +22 -0
- package/src/config/parsers/size/size.spec.ts +4 -0
- package/src/config/parsers/string/index.ts +1 -0
- package/src/config/parsers/string/string.parser.ts +19 -0
- package/src/config/parsers/timespan/index.ts +1 -0
- package/src/config/parsers/timespan/timespan.parser.ts +27 -0
- package/src/config/parsers/timespan/timespan.spec.ts +4 -0
- package/src/config/parsers/url/index.ts +1 -0
- package/src/config/parsers/url/url.parser.ts +19 -0
- package/src/config/reload/config-reload.events.ts +43 -0
- package/src/config/reload/index.ts +1 -0
- package/src/config/sources/base/config-source.abstract.ts +90 -0
- package/src/config/sources/base/index.ts +2 -0
- package/src/config/sources/base/reloadable-config-source.abstract.ts +39 -0
- package/src/config/sources/config-source.decorator.ts +37 -0
- package/src/config/sources/exceptions/config-source-di.exception.ts +20 -0
- package/src/config/sources/exceptions/config-source.exception.ts +7 -0
- package/src/config/sources/exceptions/index.ts +2 -0
- package/src/config/sources/implementations/json-file.source.ts +29 -0
- package/src/config/sources/implementations/relodable-json-file.source.ts +39 -0
- package/src/config/sources/index.ts +3 -0
- package/src/config/types.ts +87 -0
- package/src/config/vars.class.ts +103 -0
- package/src/exceptions/base/bootstrap-exception.abstract.ts +20 -0
- package/src/exceptions/base/index.ts +3 -0
- package/src/exceptions/base/pipeline-exception.abstract.ts +29 -0
- package/src/exceptions/base/platform-exception.absract.ts +72 -0
- package/src/exceptions/implementations/bootstrap/double-init.exception.ts +21 -0
- package/src/exceptions/implementations/bootstrap/duplicate-protocol.exception.ts +19 -0
- package/src/exceptions/implementations/bootstrap/index.ts +8 -0
- package/src/exceptions/implementations/bootstrap/no-http.exception.ts +21 -0
- package/src/exceptions/implementations/bootstrap/no-init.exception.ts +21 -0
- package/src/exceptions/implementations/bootstrap/no-matching-transport.exception.ts +24 -0
- package/src/exceptions/implementations/bootstrap/sequence.exception.ts +16 -0
- package/src/exceptions/implementations/bootstrap/symbol-key-decoration.exception.ts +15 -0
- package/src/exceptions/implementations/bootstrap/unknown-bootstrap.exception.ts +11 -0
- package/src/exceptions/implementations/index.ts +2 -0
- package/src/exceptions/implementations/pipeline/authentication.exception.ts +20 -0
- package/src/exceptions/implementations/pipeline/conflict.exception.ts +21 -0
- package/src/exceptions/implementations/pipeline/duplicate-entity.exception.ts +20 -0
- package/src/exceptions/implementations/pipeline/index.ts +9 -0
- package/src/exceptions/implementations/pipeline/input.exception.ts +20 -0
- package/src/exceptions/implementations/pipeline/internal.exception.ts +20 -0
- package/src/exceptions/implementations/pipeline/not-allowed.exception.ts +20 -0
- package/src/exceptions/implementations/pipeline/not-found.exception.ts +20 -0
- package/src/exceptions/implementations/pipeline/timeout.exception.ts +19 -0
- package/src/exceptions/implementations/pipeline/validation.exception.ts +9 -0
- package/src/exceptions/index.ts +5 -0
- package/src/exceptions/metadata/decorators/exception.decorator.ts +10 -0
- package/src/exceptions/metadata/decorators/index.ts +2 -0
- package/src/exceptions/metadata/decorators/throws.decorator.ts +25 -0
- package/src/exceptions/metadata/exceptions.registry.ts +50 -0
- package/src/exceptions/metadata/index.ts +2 -0
- package/src/exceptions/types.ts +18 -0
- package/src/exceptions/validation/exception.ts +9 -0
- package/src/exceptions.handling/constants.ts +3 -0
- package/src/exceptions.handling/global-exceptions.config.ts +15 -0
- package/src/exceptions.handling/global-exceptions.filter.ts +81 -0
- package/src/exceptions.handling/global-exceptions.module.ts +67 -0
- package/src/exceptions.handling/index.ts +2 -0
- package/src/exceptions.handling/types.ts +88 -0
- package/src/health/exceptions/health-check.exception.ts +9 -0
- package/src/health/exceptions/index.ts +1 -0
- package/src/health/health.const.ts +2 -0
- package/src/health/health.module.ts +23 -0
- package/src/health/health.service.ts +125 -0
- package/src/health/helpers/check-result.class.ts +52 -0
- package/src/health/helpers/index.ts +1 -0
- package/src/health/index.ts +6 -0
- package/src/health/indicators.abstract/fs-access.indicator.ts +47 -0
- package/src/health/indicators.abstract/index.ts +2 -0
- package/src/health/indicators.abstract/ping.indicator.ts +36 -0
- package/src/health/metadata/index.ts +2 -0
- package/src/health/metadata/indicator.decorator.ts +25 -0
- package/src/health/metadata/indicators.registry.ts +38 -0
- package/src/health/types.ts +50 -0
- package/src/index.ts +32 -0
- package/src/logging/adapters/index.ts +1 -0
- package/src/logging/adapters/nest-logger.adapter.ts +32 -0
- package/src/logging/decorators/index.ts +1 -0
- package/src/logging/decorators/inject-logger.decorator.ts +15 -0
- package/src/logging/helpers.ts +5 -0
- package/src/logging/index.ts +4 -0
- package/src/logging/logging.config.ts +26 -0
- package/src/logging/logging.module.ts +48 -0
- package/src/logging/types.ts +3 -0
- package/src/manifest/manifest.ts +23 -0
- package/src/metrics/index.ts +4 -0
- package/src/metrics/metadata/decorators/index.ts +1 -0
- package/src/metrics/metadata/decorators/metric.decorator.ts +45 -0
- package/src/metrics/metadata/index.ts +2 -0
- package/src/metrics/metadata/metrics.registry.ts +35 -0
- package/src/metrics/metrics.config.ts +16 -0
- package/src/metrics/metrics.module.ts +100 -0
- package/src/metrics/types.ts +39 -0
- package/src/noop.http-adapter.ts +126 -0
- package/src/platform.context.ts +214 -0
- package/src/platform.module.ts +65 -0
- package/src/plugin/plugin.module.ts +24 -0
- package/src/tracing/auto-instrumentations.config.ts +35 -0
- package/src/tracing/constants.ts +6 -0
- package/src/tracing/decorators/index.ts +2 -0
- package/src/tracing/decorators/no-span.decorator.ts +10 -0
- package/src/tracing/decorators/span.decorator.ts +20 -0
- package/src/tracing/index.ts +1 -0
- package/src/tracing/services/index.ts +3 -0
- package/src/tracing/services/instrumentation.service.ts +145 -0
- package/src/tracing/services/metadata.scanner.ts +40 -0
- package/src/tracing/services/trace.injector.ts +147 -0
- package/src/tracing/tracing.config.ts +22 -0
- package/src/tracing/tracing.module.ts +120 -0
- package/src/transport/transport.module.ts +64 -0
- package/src/types/index.ts +4 -0
- package/src/types/metadata.ts +88 -0
- package/src/types/options.ts +83 -0
- package/src/types/plugins.ts +68 -0
- package/src/types/transports.ts +110 -0
- package/tsconfig.json +10 -0
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConfigReloadIndicator = void 0;
|
|
13
|
+
const common_1 = require("@nestjs/common");
|
|
14
|
+
const helpers_1 = require("../health/helpers");
|
|
15
|
+
const reload_1 = require("./reload");
|
|
16
|
+
let ConfigReloadIndicator = class ConfigReloadIndicator {
|
|
17
|
+
events = reload_1.ReloadEvents.getInstance();
|
|
18
|
+
errors = new Map();
|
|
19
|
+
constructor() {
|
|
20
|
+
this.events
|
|
21
|
+
.on('reload_failure', (source, err) => this.errors.set(source, err))
|
|
22
|
+
.on('update_failure', (config, err) => this.errors.set(config, err))
|
|
23
|
+
.on('reload', (source) => this.errors.delete(source))
|
|
24
|
+
.on('update', (config) => this.errors.delete(config));
|
|
25
|
+
}
|
|
26
|
+
async check() {
|
|
27
|
+
if (this.errors.size === 0) {
|
|
28
|
+
return helpers_1.CheckResult.up({});
|
|
29
|
+
}
|
|
30
|
+
const details = {};
|
|
31
|
+
for (const [key, err] of this.errors.entries()) {
|
|
32
|
+
details[key.constructor.name] = { error: err };
|
|
33
|
+
}
|
|
34
|
+
return helpers_1.CheckResult.down(details);
|
|
35
|
+
}
|
|
36
|
+
};
|
|
37
|
+
ConfigReloadIndicator = __decorate([
|
|
38
|
+
(0, common_1.Injectable)(),
|
|
39
|
+
__metadata("design:paramtypes", [])
|
|
40
|
+
], ConfigReloadIndicator);
|
|
41
|
+
exports.ConfigReloadIndicator = ConfigReloadIndicator;
|
|
42
|
+
//# sourceMappingURL=config-reload.indicator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-reload.indicator.js","sourceRoot":"","sources":["../../src/config/config-reload.indicator.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAA4C;AAG5C,+CAAgD;AAGhD,qCAAwC;AAIjC,IAAM,qBAAqB,GAA3B,MAAM,qBAAqB;IACxB,MAAM,GAAG,qBAAY,CAAC,WAAW,EAAE,CAAC;IACpC,MAAM,GAAG,IAAI,GAAG,EAAgC,CAAC;IAEzD;QACE,IAAI,CAAC,MAAM;aACR,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aACnE,EAAE,CAAC,gBAAgB,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;aACnE,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;aACpD,EAAE,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,EAAE;YAC1B,OAAO,qBAAW,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;SAC3B;QAED,MAAM,OAAO,GAAiB,EAAE,CAAC;QAEjC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE;YAC9C,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC;SAChD;QAED,OAAO,qBAAW,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC;CACF,CAAA;AAzBY,qBAAqB;IADjC,IAAA,mBAAU,GAAE;;GACA,qBAAqB,CAyBjC;AAzBY,sDAAqB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Vars } from './vars.class';
|
|
3
|
+
/**
|
|
4
|
+
* It is unconventional to use raw values from process.env or somewhere
|
|
5
|
+
* else because it will not be autodocumented. Instead developer is strongly
|
|
6
|
+
* encouraged to extends this abstract class and annotate all fields with
|
|
7
|
+
* @Property() decorator providing nesessary metadata.
|
|
8
|
+
*/
|
|
9
|
+
export declare class Config {
|
|
10
|
+
/**
|
|
11
|
+
* Keys are prefixed and sources are added.
|
|
12
|
+
*/
|
|
13
|
+
private readonly propertiesMetadata;
|
|
14
|
+
private readonly events;
|
|
15
|
+
constructor();
|
|
16
|
+
onUpdate(fn: (keys: string[]) => void): void;
|
|
17
|
+
read(vars: Vars): string[];
|
|
18
|
+
tryUpdate(vars: Vars): void;
|
|
19
|
+
}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Config = void 0;
|
|
4
|
+
const lodash_1 = require("lodash");
|
|
5
|
+
require("reflect-metadata");
|
|
6
|
+
const metadata_1 = require("./metadata");
|
|
7
|
+
const reload_1 = require("./reload");
|
|
8
|
+
/**
|
|
9
|
+
* It is unconventional to use raw values from process.env or somewhere
|
|
10
|
+
* else because it will not be autodocumented. Instead developer is strongly
|
|
11
|
+
* encouraged to extends this abstract class and annotate all fields with
|
|
12
|
+
* @Property() decorator providing nesessary metadata.
|
|
13
|
+
*/
|
|
14
|
+
class Config {
|
|
15
|
+
/**
|
|
16
|
+
* Keys are prefixed and sources are added.
|
|
17
|
+
*/
|
|
18
|
+
propertiesMetadata;
|
|
19
|
+
events = reload_1.ReloadEvents.getInstance();
|
|
20
|
+
// TODO: why not to pass this.vars and event emitter?
|
|
21
|
+
constructor() {
|
|
22
|
+
const metadata = Reflect.getMetadata(metadata_1.CONFIG_METADATA_KEY, this.constructor);
|
|
23
|
+
this.propertiesMetadata = metadata.properties;
|
|
24
|
+
}
|
|
25
|
+
onUpdate(fn) {
|
|
26
|
+
this.events.on('update', (_, updatedKeys) => {
|
|
27
|
+
const prefixedKeys = Object.keys(this.propertiesMetadata).map((x) => `${this.constructor.name}/${x}`);
|
|
28
|
+
if ((0, lodash_1.intersection)(prefixedKeys, updatedKeys).length > 0) {
|
|
29
|
+
fn(updatedKeys);
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
read(vars) {
|
|
34
|
+
const updated = [];
|
|
35
|
+
for (const [prop, metadata] of Object.entries(this.propertiesMetadata)) {
|
|
36
|
+
const value = this[prop];
|
|
37
|
+
const newValue = vars.extract(metadata);
|
|
38
|
+
// FIXME: Doesn't work with object types.
|
|
39
|
+
if (!(0, lodash_1.isEqual)(newValue, value)) {
|
|
40
|
+
this[prop] = newValue;
|
|
41
|
+
updated.push(`${this.constructor.name}/${prop}`);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
return updated;
|
|
45
|
+
}
|
|
46
|
+
tryUpdate(vars) {
|
|
47
|
+
try {
|
|
48
|
+
const updated = this.read(vars);
|
|
49
|
+
this.events.emit('update', this, updated);
|
|
50
|
+
}
|
|
51
|
+
catch (err) {
|
|
52
|
+
this.events.emit('update_failure', this, err);
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
exports.Config = Config;
|
|
57
|
+
//# sourceMappingURL=config.abstract.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.abstract.js","sourceRoot":"","sources":["../../src/config/config.abstract.ts"],"names":[],"mappings":";;;AAAA,mCAA+C;AAE/C,4BAA0B;AAE1B,yCAAiD;AACjD,qCAAwC;AAIxC;;;;;GAKG;AACH,MAAa,MAAM;IACjB;;OAEG;IACc,kBAAkB,CAAmC;IACrD,MAAM,GAAiB,qBAAY,CAAC,WAAW,EAAE,CAAC;IAEnE,qDAAqD;IACrD;QACE,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAClC,8BAAmB,EACnB,IAAI,CAAC,WAAW,CACE,CAAC;QAErB,IAAI,CAAC,kBAAkB,GAAG,QAAQ,CAAC,UAAU,CAAC;IAChD,CAAC;IAED,QAAQ,CAAC,EAA4B;QACnC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAS,EAAE,WAAqB,EAAE,EAAE;YAC5D,MAAM,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAC3D,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,CAAC,EAAE,CACvC,CAAC;YACF,IAAI,IAAA,qBAAY,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;gBACtD,EAAE,CAAC,WAAW,CAAC,CAAC;aACjB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,IAAI,CAAC,IAAU;QACb,MAAM,OAAO,GAAa,EAAE,CAAC;QAE7B,KAAK,MAAM,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,kBAAkB,CAAC,EAAE;YACtE,MAAM,KAAK,GAAI,IAAY,CAAC,IAAI,CAAC,CAAC;YAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YAExC,yCAAyC;YACzC,IAAI,CAAC,IAAA,gBAAO,EAAC,QAAQ,EAAE,KAAK,CAAC,EAAE;gBAC5B,IAAY,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC;gBAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;aAClD;SACF;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,SAAS,CAAC,IAAU;QAClB,IAAI;YACF,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAQ,EAAE;YACjB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,gBAAgB,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;SAC/C;IACH,CAAC;CACF;AAtDD,wBAsDC"}
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import type { DynamicModule } from '@nestjs/common';
|
|
2
|
+
import type { Constructor } from '@rsdk/common';
|
|
3
|
+
import type { PlatformOptions } from '../types';
|
|
4
|
+
import type { Config } from './config.abstract';
|
|
5
|
+
import type { ConfigSource } from './sources';
|
|
6
|
+
export interface ConfigModuleOptions {
|
|
7
|
+
/**
|
|
8
|
+
* By convention every configuration key should have unique prefix
|
|
9
|
+
* for current service. It is inferred from application name
|
|
10
|
+
*/
|
|
11
|
+
appName: string;
|
|
12
|
+
/**
|
|
13
|
+
* Additional asynchronous configuration sources. For example a source
|
|
14
|
+
* that loads configuration from Consul or other remote system.
|
|
15
|
+
*/
|
|
16
|
+
sources?: Constructor<ConfigSource>[];
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Configuration is loaded in predictable order. You should take
|
|
20
|
+
* into account chat all repeating keys will be overwritten on each step:
|
|
21
|
+
*
|
|
22
|
+
* 1. .env file if there is any
|
|
23
|
+
* 2. process environment
|
|
24
|
+
* 3. динамические source'ы (если сделать последовательно - то в порядке указания)
|
|
25
|
+
*/
|
|
26
|
+
export declare class PlatformConfigModule {
|
|
27
|
+
private static isBootstrapped;
|
|
28
|
+
private static events;
|
|
29
|
+
private static vars;
|
|
30
|
+
private static prefix;
|
|
31
|
+
/**
|
|
32
|
+
* Проинициализированные секции конфигов
|
|
33
|
+
* @private
|
|
34
|
+
*/
|
|
35
|
+
private static initializedConfigs;
|
|
36
|
+
/**
|
|
37
|
+
* undefined является валидным значением по умолчанию (`defaultValue`)
|
|
38
|
+
* @private
|
|
39
|
+
*/
|
|
40
|
+
private static properties;
|
|
41
|
+
/**
|
|
42
|
+
* We don't use class as context here because it is undefined if
|
|
43
|
+
* tsc target is ES2022
|
|
44
|
+
*/
|
|
45
|
+
private static logger;
|
|
46
|
+
/**
|
|
47
|
+
* Метадата о необходимых приложению значениях конфигурации
|
|
48
|
+
* Зачем храним?
|
|
49
|
+
* Потому что пайплайн такой:
|
|
50
|
+
* 1. Собираем данные о том какие поля нам нужны
|
|
51
|
+
* 2. Приложение запрашивает поле из конфигурации
|
|
52
|
+
* 3. Ищем метаданные
|
|
53
|
+
* 4. По метаданным вытягиваем значение
|
|
54
|
+
* 5. Отдаём значение
|
|
55
|
+
*
|
|
56
|
+
* Это важно так как позволяет прозрачным образом контролировать этот процесс и инициализировать поля в тот момент когда они потребуются
|
|
57
|
+
* А не в тот момент когда их объявили
|
|
58
|
+
* Основной кейс, где это применяется - тесты
|
|
59
|
+
* @private
|
|
60
|
+
*/
|
|
61
|
+
private static propertyMetadata;
|
|
62
|
+
/**
|
|
63
|
+
* This method should be invoked BEFORE bootstrapping nest application.
|
|
64
|
+
*
|
|
65
|
+
* It takes 2 main actions:
|
|
66
|
+
* - load environment variables
|
|
67
|
+
*
|
|
68
|
+
* - instantiates all configuration initializedConfig (classes marked with
|
|
69
|
+
* @ConfigSection() decorator) and adds them into internal storage
|
|
70
|
+
*
|
|
71
|
+
* If any of these actions fails - application should exit.
|
|
72
|
+
*
|
|
73
|
+
* NOTE: This method should be invoked before any other interaction
|
|
74
|
+
* with ConfigurationModule
|
|
75
|
+
*
|
|
76
|
+
* ATTENTION: not load values from additional source
|
|
77
|
+
*/
|
|
78
|
+
static bootstrap(options?: ConfigModuleOptions): void;
|
|
79
|
+
/**
|
|
80
|
+
* Use this method to imports specific configuration property
|
|
81
|
+
* into given module
|
|
82
|
+
*
|
|
83
|
+
* @param alias It's not so easy to use plain property key because
|
|
84
|
+
* of prefix and source key issues. That's why we use aliases. Specify
|
|
85
|
+
* the same string that was used to define property in
|
|
86
|
+
* @Property() or @ExtraEnv() decorator.
|
|
87
|
+
*
|
|
88
|
+
* @returns DynamicModule
|
|
89
|
+
*/
|
|
90
|
+
static forProperty(alias: string): DynamicModule;
|
|
91
|
+
/**
|
|
92
|
+
* Use this method to import specified configuration section
|
|
93
|
+
* into given module
|
|
94
|
+
* @param ctor Pass constructor of configuration section class
|
|
95
|
+
* @returns DynamicModule
|
|
96
|
+
*/
|
|
97
|
+
static forFeature(ctor: Constructor<Config>): DynamicModule;
|
|
98
|
+
static forRoot(options: PlatformOptions): DynamicModule;
|
|
99
|
+
/**
|
|
100
|
+
* Extracting specific instance of configuration section by
|
|
101
|
+
* its class reference. Throws error if called before .bootstrap()
|
|
102
|
+
*
|
|
103
|
+
* ATTENTION: Конфиг будет разрешен с доступными на данный момент переменными,
|
|
104
|
+
* то есть если дополнительные источники конфигурации ещё не были проинициализированы,
|
|
105
|
+
* они не будут учтены в разрешении конфигурации.
|
|
106
|
+
*
|
|
107
|
+
* @param ctor Pass constructor of configuration section class
|
|
108
|
+
* @returns T
|
|
109
|
+
*/
|
|
110
|
+
static resolve<T extends Config>(ctor: Constructor<T>): T;
|
|
111
|
+
private static getPropertyProvider;
|
|
112
|
+
private static readEnvironment;
|
|
113
|
+
private static extractStandaloneProperties;
|
|
114
|
+
/**
|
|
115
|
+
* Инициализирует инстанс секции конфига
|
|
116
|
+
* ATTENTION: не проверяет есть ли ещё проинициализированные, будьте внимательны во избежание неожиданного поведение
|
|
117
|
+
* @param ctor
|
|
118
|
+
* @private
|
|
119
|
+
*/
|
|
120
|
+
private static instantiateSection;
|
|
121
|
+
}
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var PlatformConfigModule_1;
|
|
9
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
+
exports.PlatformConfigModule = void 0;
|
|
11
|
+
const common_1 = require("@nestjs/common");
|
|
12
|
+
const common_2 = require("@rsdk/common");
|
|
13
|
+
const logging_1 = require("@rsdk/logging");
|
|
14
|
+
const exceptions_1 = require("../exceptions");
|
|
15
|
+
const additional_source_initializer_1 = require("./additional-source/additional-source.initializer");
|
|
16
|
+
const additional_source_module_1 = require("./additional-source/additional-source.module");
|
|
17
|
+
const exceptions_2 = require("./exceptions");
|
|
18
|
+
const metadata_1 = require("./metadata");
|
|
19
|
+
const reload_1 = require("./reload");
|
|
20
|
+
const vars_class_1 = require("./vars.class");
|
|
21
|
+
/**
|
|
22
|
+
* Configuration is loaded in predictable order. You should take
|
|
23
|
+
* into account chat all repeating keys will be overwritten on each step:
|
|
24
|
+
*
|
|
25
|
+
* 1. .env file if there is any
|
|
26
|
+
* 2. process environment
|
|
27
|
+
* 3. динамические source'ы (если сделать последовательно - то в порядке указания)
|
|
28
|
+
*/
|
|
29
|
+
let PlatformConfigModule = PlatformConfigModule_1 = class PlatformConfigModule {
|
|
30
|
+
static isBootstrapped = false;
|
|
31
|
+
static events = reload_1.ReloadEvents.getInstance();
|
|
32
|
+
static vars;
|
|
33
|
+
static prefix;
|
|
34
|
+
/**
|
|
35
|
+
* Проинициализированные секции конфигов
|
|
36
|
+
* @private
|
|
37
|
+
*/
|
|
38
|
+
static initializedConfigs = new Map();
|
|
39
|
+
/**
|
|
40
|
+
* undefined является валидным значением по умолчанию (`defaultValue`)
|
|
41
|
+
* @private
|
|
42
|
+
*/
|
|
43
|
+
static properties = new Map();
|
|
44
|
+
/**
|
|
45
|
+
* We don't use class as context here because it is undefined if
|
|
46
|
+
* tsc target is ES2022
|
|
47
|
+
*/
|
|
48
|
+
static logger = logging_1.LoggerFactory.create('PlatformConfigModule');
|
|
49
|
+
/**
|
|
50
|
+
* Метадата о необходимых приложению значениях конфигурации
|
|
51
|
+
* Зачем храним?
|
|
52
|
+
* Потому что пайплайн такой:
|
|
53
|
+
* 1. Собираем данные о том какие поля нам нужны
|
|
54
|
+
* 2. Приложение запрашивает поле из конфигурации
|
|
55
|
+
* 3. Ищем метаданные
|
|
56
|
+
* 4. По метаданным вытягиваем значение
|
|
57
|
+
* 5. Отдаём значение
|
|
58
|
+
*
|
|
59
|
+
* Это важно так как позволяет прозрачным образом контролировать этот процесс и инициализировать поля в тот момент когда они потребуются
|
|
60
|
+
* А не в тот момент когда их объявили
|
|
61
|
+
* Основной кейс, где это применяется - тесты
|
|
62
|
+
* @private
|
|
63
|
+
*/
|
|
64
|
+
static propertyMetadata = new Map();
|
|
65
|
+
/**
|
|
66
|
+
* This method should be invoked BEFORE bootstrapping nest application.
|
|
67
|
+
*
|
|
68
|
+
* It takes 2 main actions:
|
|
69
|
+
* - load environment variables
|
|
70
|
+
*
|
|
71
|
+
* - instantiates all configuration initializedConfig (classes marked with
|
|
72
|
+
* @ConfigSection() decorator) and adds them into internal storage
|
|
73
|
+
*
|
|
74
|
+
* If any of these actions fails - application should exit.
|
|
75
|
+
*
|
|
76
|
+
* NOTE: This method should be invoked before any other interaction
|
|
77
|
+
* with ConfigurationModule
|
|
78
|
+
*
|
|
79
|
+
* ATTENTION: not load values from additional source
|
|
80
|
+
*/
|
|
81
|
+
static bootstrap(options) {
|
|
82
|
+
if (this.isBootstrapped) {
|
|
83
|
+
throw new exceptions_1.SequenceException("Can't bootstrap ConfigurationModule twice");
|
|
84
|
+
}
|
|
85
|
+
this.prefix = options?.appName ?? '';
|
|
86
|
+
if (this.prefix) {
|
|
87
|
+
this.logger.info('Setting configuration keys prefix', {
|
|
88
|
+
prefix: this.prefix,
|
|
89
|
+
});
|
|
90
|
+
}
|
|
91
|
+
this.vars = new vars_class_1.Vars(this.prefix);
|
|
92
|
+
this.readEnvironment();
|
|
93
|
+
/**
|
|
94
|
+
* Reading and validating standalone properties from env.
|
|
95
|
+
*
|
|
96
|
+
* NOTE: Splitting extraction if standalone properties into 2 phases
|
|
97
|
+
* is necessary, some configuration sources can need something
|
|
98
|
+
* from env to be instatiated.
|
|
99
|
+
*/
|
|
100
|
+
const { properties } = metadata_1.ConfigMetadataRegistry.getMetadata();
|
|
101
|
+
this.extractStandaloneProperties(properties, 'expectedInEnv');
|
|
102
|
+
/**
|
|
103
|
+
* NOTE: That properties from .env already loaded.
|
|
104
|
+
* Now loading ones from other sources
|
|
105
|
+
*/
|
|
106
|
+
this.extractStandaloneProperties(properties, 'others');
|
|
107
|
+
this.isBootstrapped = true;
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* Use this method to imports specific configuration property
|
|
111
|
+
* into given module
|
|
112
|
+
*
|
|
113
|
+
* @param alias It's not so easy to use plain property key because
|
|
114
|
+
* of prefix and source key issues. That's why we use aliases. Specify
|
|
115
|
+
* the same string that was used to define property in
|
|
116
|
+
* @Property() or @ExtraEnv() decorator.
|
|
117
|
+
*
|
|
118
|
+
* @returns DynamicModule
|
|
119
|
+
*/
|
|
120
|
+
static forProperty(alias) {
|
|
121
|
+
const token = (0, metadata_1.getPropertyToken)(alias);
|
|
122
|
+
const provider = this.getPropertyProvider(token);
|
|
123
|
+
return {
|
|
124
|
+
module: PlatformConfigModule_1,
|
|
125
|
+
providers: [provider],
|
|
126
|
+
exports: [provider],
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* Use this method to import specified configuration section
|
|
131
|
+
* into given module
|
|
132
|
+
* @param ctor Pass constructor of configuration section class
|
|
133
|
+
* @returns DynamicModule
|
|
134
|
+
*/
|
|
135
|
+
static forFeature(ctor) {
|
|
136
|
+
/**
|
|
137
|
+
* Factory providers are used because at the point of time when
|
|
138
|
+
* forFeature() is executed Config instances don't yet exist
|
|
139
|
+
*/
|
|
140
|
+
const provider = {
|
|
141
|
+
inject: [{ optional: true, token: additional_source_initializer_1.AdditionalSourceInitializer }],
|
|
142
|
+
provide: ctor,
|
|
143
|
+
useFactory: async (additionalSourceModuleInitializer) => {
|
|
144
|
+
/**
|
|
145
|
+
* Да, каждый раз вызываем метод `initialize` более подробно почему так - смотри в `JSDoc` метода
|
|
146
|
+
*/
|
|
147
|
+
await additionalSourceModuleInitializer?.initialize();
|
|
148
|
+
return this.resolve(ctor);
|
|
149
|
+
},
|
|
150
|
+
};
|
|
151
|
+
return {
|
|
152
|
+
module: PlatformConfigModule_1,
|
|
153
|
+
providers: [provider],
|
|
154
|
+
exports: [provider],
|
|
155
|
+
};
|
|
156
|
+
}
|
|
157
|
+
static forRoot(options) {
|
|
158
|
+
const providers = [];
|
|
159
|
+
const imports = [];
|
|
160
|
+
if (options.config?.sources) {
|
|
161
|
+
imports.push(
|
|
162
|
+
// TODO: Эти опции в идеале добавить в сам контейнер и использовать их везде
|
|
163
|
+
additional_source_module_1.AdditionalSourceModule.forRoot({
|
|
164
|
+
sources: options.config?.sources,
|
|
165
|
+
logger: this.logger,
|
|
166
|
+
properties: this.properties,
|
|
167
|
+
vars: this.vars,
|
|
168
|
+
events: this.events,
|
|
169
|
+
prefix: this.prefix,
|
|
170
|
+
propertyMetadata: this.propertyMetadata,
|
|
171
|
+
}));
|
|
172
|
+
}
|
|
173
|
+
return {
|
|
174
|
+
imports,
|
|
175
|
+
module: PlatformConfigModule_1,
|
|
176
|
+
providers,
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Extracting specific instance of configuration section by
|
|
181
|
+
* its class reference. Throws error if called before .bootstrap()
|
|
182
|
+
*
|
|
183
|
+
* ATTENTION: Конфиг будет разрешен с доступными на данный момент переменными,
|
|
184
|
+
* то есть если дополнительные источники конфигурации ещё не были проинициализированы,
|
|
185
|
+
* они не будут учтены в разрешении конфигурации.
|
|
186
|
+
*
|
|
187
|
+
* @param ctor Pass constructor of configuration section class
|
|
188
|
+
* @returns T
|
|
189
|
+
*/
|
|
190
|
+
static resolve(ctor) {
|
|
191
|
+
/**
|
|
192
|
+
* Автор уверен, что здесь не стоит делать bootstrap так как это разные зоны ответственности
|
|
193
|
+
*/
|
|
194
|
+
if (!this.isBootstrapped) {
|
|
195
|
+
throw new exceptions_2.ConfigNotBootstrappedException();
|
|
196
|
+
}
|
|
197
|
+
const instance = this.initializedConfigs.get(ctor);
|
|
198
|
+
if (!instance) {
|
|
199
|
+
const instantiateSection = this.instantiateSection(ctor);
|
|
200
|
+
this.initializedConfigs.set(ctor, instantiateSection);
|
|
201
|
+
return instantiateSection;
|
|
202
|
+
}
|
|
203
|
+
// We know exactly it is T
|
|
204
|
+
return instance;
|
|
205
|
+
}
|
|
206
|
+
static getPropertyProvider(token) {
|
|
207
|
+
return {
|
|
208
|
+
inject: [{ optional: true, token: additional_source_initializer_1.AdditionalSourceInitializer }],
|
|
209
|
+
provide: token,
|
|
210
|
+
useFactory: async (additionalSourceModuleInitializer) => {
|
|
211
|
+
await additionalSourceModuleInitializer?.initialize();
|
|
212
|
+
if (this.properties.has(token)) {
|
|
213
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
214
|
+
return this.properties.get(token);
|
|
215
|
+
}
|
|
216
|
+
const propMeta = this.propertyMetadata.get(token);
|
|
217
|
+
if (!propMeta) {
|
|
218
|
+
throw new exceptions_2.ConfigPropertyMetadataNotFound(token);
|
|
219
|
+
}
|
|
220
|
+
const value = this.vars.extract(propMeta);
|
|
221
|
+
this.properties.set(token, value);
|
|
222
|
+
return value;
|
|
223
|
+
},
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
static readEnvironment() {
|
|
227
|
+
this.logger.info('Loading variables from .env file if exists');
|
|
228
|
+
common_2.dotenv.config();
|
|
229
|
+
this.logger.info('Initializing raw parameters storage');
|
|
230
|
+
/**
|
|
231
|
+
* Copying parameters from process.env, skipping entries
|
|
232
|
+
* for which value is undefined (not sure it's possible,
|
|
233
|
+
* but @types/node says it is).
|
|
234
|
+
*/
|
|
235
|
+
for (const [key, value] of Object.entries(process.env)) {
|
|
236
|
+
if (value !== undefined) {
|
|
237
|
+
this.vars.set(key, value);
|
|
238
|
+
}
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
static extractStandaloneProperties(properties, subset) {
|
|
242
|
+
for (const [alias, metadata] of properties.entries()) {
|
|
243
|
+
if (subset === 'expectedInEnv' && !metadata.expectedInEnv) {
|
|
244
|
+
continue;
|
|
245
|
+
}
|
|
246
|
+
this.propertyMetadata.set((0, metadata_1.getPropertyToken)(alias), metadata);
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Инициализирует инстанс секции конфига
|
|
251
|
+
* ATTENTION: не проверяет есть ли ещё проинициализированные, будьте внимательны во избежание неожиданного поведение
|
|
252
|
+
* @param ctor
|
|
253
|
+
* @private
|
|
254
|
+
*/
|
|
255
|
+
static instantiateSection(ctor) {
|
|
256
|
+
const instance = new ctor();
|
|
257
|
+
this.logger.debug('Initializing configuration section instance', {
|
|
258
|
+
ctor: ctor.name,
|
|
259
|
+
});
|
|
260
|
+
this.events.on('merge', () => {
|
|
261
|
+
instance.tryUpdate(this.vars);
|
|
262
|
+
});
|
|
263
|
+
instance.read(this.vars);
|
|
264
|
+
return instance;
|
|
265
|
+
}
|
|
266
|
+
};
|
|
267
|
+
PlatformConfigModule = PlatformConfigModule_1 = __decorate([
|
|
268
|
+
(0, common_1.Module)({})
|
|
269
|
+
], PlatformConfigModule);
|
|
270
|
+
exports.PlatformConfigModule = PlatformConfigModule;
|
|
271
|
+
//# sourceMappingURL=config.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.module.js","sourceRoot":"","sources":["../../src/config/config.module.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
3
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
4
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
5
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
6
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
7
|
+
};
|
|
8
|
+
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
+
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.ConfigNotBootstrappedException = void 0;
|
|
13
|
+
const common_1 = require("@rsdk/common");
|
|
14
|
+
const exceptions_1 = require("../../exceptions");
|
|
15
|
+
let ConfigNotBootstrappedException = class ConfigNotBootstrappedException extends exceptions_1.BootstrapException {
|
|
16
|
+
constructor() {
|
|
17
|
+
super('Configuration module is not bootstrapped!');
|
|
18
|
+
}
|
|
19
|
+
};
|
|
20
|
+
ConfigNotBootstrappedException = __decorate([
|
|
21
|
+
(0, exceptions_1.Exception)({
|
|
22
|
+
description: (0, common_1.text) `
|
|
23
|
+
Occures when something is calling PlatformConfigModule functionality
|
|
24
|
+
when it is not yet bootstrapped.
|
|
25
|
+
`,
|
|
26
|
+
}),
|
|
27
|
+
__metadata("design:paramtypes", [])
|
|
28
|
+
], ConfigNotBootstrappedException);
|
|
29
|
+
exports.ConfigNotBootstrappedException = ConfigNotBootstrappedException;
|
|
30
|
+
//# sourceMappingURL=config-not-bootstrapped.exception.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-not-bootstrapped.exception.js","sourceRoot":"","sources":["../../../src/config/exceptions/config-not-bootstrapped.exception.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,yCAAoC;AAEpC,iDAAiE;AAQ1D,IAAM,8BAA8B,GAApC,MAAM,8BAA+B,SAAQ,+BAAkB;IACpE;QACE,KAAK,CAAC,2CAA2C,CAAC,CAAC;IACrD,CAAC;CACF,CAAA;AAJY,8BAA8B;IAN1C,IAAA,sBAAS,EAAC;QACT,WAAW,EAAE,IAAA,aAAI,EAAA;;;GAGhB;KACF,CAAC;;GACW,8BAA8B,CAI1C;AAJY,wEAA8B"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ConfigPropertyMetadataNotFound = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
class ConfigPropertyMetadataNotFound extends exceptions_1.InternalException {
|
|
6
|
+
constructor(configPropertyToken) {
|
|
7
|
+
super(`Metadata for config property ${configPropertyToken} not found`, {
|
|
8
|
+
details: configPropertyToken,
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
exports.ConfigPropertyMetadataNotFound = ConfigPropertyMetadataNotFound;
|
|
13
|
+
//# sourceMappingURL=config-property-metadata-not-found.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config-property-metadata-not-found.js","sourceRoot":"","sources":["../../../src/config/exceptions/config-property-metadata-not-found.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAErD,MAAa,8BAA+B,SAAQ,8BAAiB;IACnE,YAAY,mBAA2B;QACrC,KAAK,CAAC,gCAAgC,mBAAmB,YAAY,EAAE;YACrE,OAAO,EAAE,mBAAmB;SAC7B,CAAC,CAAC;IACL,CAAC;CACF;AAND,wEAMC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
exports.ConfigPropertyMetadataNotFound = void 0;
|
|
18
|
+
__exportStar(require("./config-not-bootstrapped.exception"), exports);
|
|
19
|
+
__exportStar(require("./property.exception"), exports);
|
|
20
|
+
var config_property_metadata_not_found_1 = require("./config-property-metadata-not-found");
|
|
21
|
+
Object.defineProperty(exports, "ConfigPropertyMetadataNotFound", { enumerable: true, get: function () { return config_property_metadata_not_found_1.ConfigPropertyMetadataNotFound; } });
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/config/exceptions/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,sEAAoD;AACpD,uDAAqC;AACrC,2FAAsF;AAA7E,oJAAA,8BAA8B,OAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.PropertyException = void 0;
|
|
4
|
+
const exceptions_1 = require("../../exceptions");
|
|
5
|
+
class PropertyException extends exceptions_1.PlatformException {
|
|
6
|
+
constructor(property, msg) {
|
|
7
|
+
super('CONFIG:PROPERTY', msg, {
|
|
8
|
+
details: {
|
|
9
|
+
property,
|
|
10
|
+
},
|
|
11
|
+
});
|
|
12
|
+
}
|
|
13
|
+
static fromError(err, key) {
|
|
14
|
+
return new PropertyException(key, err.message || 'UNKNOWN ERROR');
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.PropertyException = PropertyException;
|
|
18
|
+
//# sourceMappingURL=property.exception.js.map
|