@venok/core 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/application/config.d.ts +35 -0
- package/application/config.js +85 -0
- package/application/context.d.ts +198 -0
- package/application/context.js +325 -0
- package/application/factory.d.ts +43 -0
- package/application/factory.js +147 -0
- package/constants.d.ts +46 -0
- package/constants.js +53 -0
- package/context/creator.d.ts +9 -0
- package/context/creator.js +32 -0
- package/context/execution-host.d.ts +16 -0
- package/context/execution-host.js +30 -0
- package/context/external/creator.d.ts +63 -0
- package/context/external/creator.js +159 -0
- package/context/external/proxy.d.ts +5 -0
- package/context/external/proxy.js +19 -0
- package/decorators/apply.decorator.d.ts +10 -0
- package/decorators/apply.decorator.js +24 -0
- package/decorators/bind.decorator.d.ts +11 -0
- package/decorators/bind.decorator.js +20 -0
- package/decorators/catch.decorator.d.ts +17 -0
- package/decorators/catch.decorator.js +26 -0
- package/decorators/create-param.decorator.d.ts +29 -0
- package/decorators/create-param.decorator.js +51 -0
- package/decorators/dependencies.decorator.d.ts +6 -0
- package/decorators/dependencies.decorator.js +17 -0
- package/decorators/exception-filters.decorator.d.ts +21 -0
- package/decorators/exception-filters.decorator.js +41 -0
- package/decorators/global.decorator.d.ts +10 -0
- package/decorators/global.decorator.js +19 -0
- package/decorators/index.d.ts +15 -0
- package/decorators/index.js +31 -0
- package/decorators/inject.decorator.d.ts +26 -0
- package/decorators/inject.decorator.js +45 -0
- package/decorators/injectable.decorator.d.ts +40 -0
- package/decorators/injectable.decorator.js +51 -0
- package/decorators/module.decorator.d.ts +14 -0
- package/decorators/module.decorator.js +38 -0
- package/decorators/optional.decorator.d.ts +14 -0
- package/decorators/optional.decorator.js +30 -0
- package/decorators/set-metadata.decorator.d.ts +18 -0
- package/decorators/set-metadata.decorator.js +30 -0
- package/decorators/use-guards.decorator.d.ts +21 -0
- package/decorators/use-guards.decorator.js +40 -0
- package/decorators/use-interceptors.decorator.d.ts +21 -0
- package/decorators/use-interceptors.decorator.js +40 -0
- package/decorators/use-pipes.decorator.d.ts +21 -0
- package/decorators/use-pipes.decorator.js +39 -0
- package/discovery/meta-host-collection.d.ts +32 -0
- package/discovery/meta-host-collection.js +79 -0
- package/discovery/module.d.ts +5 -0
- package/discovery/module.js +24 -0
- package/discovery/service.d.ts +68 -0
- package/discovery/service.js +90 -0
- package/errors/exceptions/circular-dependency.exception.d.ts +4 -0
- package/errors/exceptions/circular-dependency.exception.js +11 -0
- package/errors/exceptions/index.d.ts +8 -0
- package/errors/exceptions/index.js +24 -0
- package/errors/exceptions/invalid-class-module.exception.d.ts +4 -0
- package/errors/exceptions/invalid-class-module.exception.js +11 -0
- package/errors/exceptions/invalid-class-scope.exception.d.ts +5 -0
- package/errors/exceptions/invalid-class-scope.exception.js +14 -0
- package/errors/exceptions/invalid-class.exception.d.ts +4 -0
- package/errors/exceptions/invalid-class.exception.js +11 -0
- package/errors/exceptions/invalid-exception-filter.exception.d.ts +4 -0
- package/errors/exceptions/invalid-exception-filter.exception.js +11 -0
- package/errors/exceptions/invalid-module.exception.d.ts +4 -0
- package/errors/exceptions/invalid-module.exception.js +11 -0
- package/errors/exceptions/runtime.exception.d.ts +4 -0
- package/errors/exceptions/runtime.exception.js +12 -0
- package/errors/exceptions/undefined-dependency.exception.d.ts +6 -0
- package/errors/exceptions/undefined-dependency.exception.js +11 -0
- package/errors/exceptions/undefined-forwardref.exception.d.ts +5 -0
- package/errors/exceptions/undefined-forwardref.exception.js +11 -0
- package/errors/exceptions/undefined-module.exception.d.ts +4 -0
- package/errors/exceptions/undefined-module.exception.js +11 -0
- package/errors/exceptions/unknown-dependencies.exception.d.ts +16 -0
- package/errors/exceptions/unknown-dependencies.exception.js +15 -0
- package/errors/exceptions/unknown-element.exception.d.ts +4 -0
- package/errors/exceptions/unknown-element.exception.js +12 -0
- package/errors/exceptions/unknown-export.exception.d.ts +4 -0
- package/errors/exceptions/unknown-export.exception.js +11 -0
- package/errors/exceptions/unknown-module.exception.d.ts +4 -0
- package/errors/exceptions/unknown-module.exception.js +10 -0
- package/errors/messages.d.ts +15 -0
- package/errors/messages.js +126 -0
- package/exceptions/external/filter-context.d.ts +10 -0
- package/exceptions/external/filter-context.js +37 -0
- package/exceptions/external/filter.d.ts +5 -0
- package/exceptions/external/filter.js +16 -0
- package/exceptions/external/handler.d.ts +9 -0
- package/exceptions/external/handler.js +31 -0
- package/exceptions/filter-context.d.ts +14 -0
- package/exceptions/filter-context.js +55 -0
- package/exceptions/select-exception-filter-metadata.d.ts +2 -0
- package/exceptions/select-exception-filter-metadata.js +6 -0
- package/exceptions/zone/handler.d.ts +5 -0
- package/exceptions/zone/handler.js +15 -0
- package/exceptions/zone/zone.d.ts +5 -0
- package/exceptions/zone/zone.js +32 -0
- package/guards/consumer.d.ts +9 -0
- package/guards/consumer.js +33 -0
- package/guards/context-creator.d.ts +17 -0
- package/guards/context-creator.js +69 -0
- package/guards/index.d.ts +2 -0
- package/guards/index.js +18 -0
- package/helpers/color.helper.d.ts +9 -0
- package/helpers/color.helper.js +14 -0
- package/helpers/context-id-factory.helper.d.ts +2 -0
- package/helpers/context-id-factory.helper.js +15 -0
- package/helpers/context.helper.d.ts +23 -0
- package/helpers/context.helper.js +49 -0
- package/helpers/extends-metadata.helper.d.ts +1 -0
- package/helpers/extends-metadata.helper.js +9 -0
- package/helpers/flatten.helper.d.ts +1 -0
- package/helpers/flatten.helper.js +9 -0
- package/helpers/messages.helper.d.ts +2 -0
- package/helpers/messages.helper.js +7 -0
- package/helpers/noop.helper.d.ts +1 -0
- package/helpers/noop.helper.js +5 -0
- package/helpers/random-string-generator.helper.d.ts +1 -0
- package/helpers/random-string-generator.helper.js +6 -0
- package/helpers/rethrow.helper.d.ts +1 -0
- package/helpers/rethrow.helper.js +7 -0
- package/helpers/shared.helper.d.ts +10 -0
- package/helpers/shared.helper.js +33 -0
- package/helpers/silent.helper.d.ts +10 -0
- package/helpers/silent.helper.js +18 -0
- package/helpers/transient.helper.d.ts +12 -0
- package/helpers/transient.helper.js +26 -0
- package/helpers/uuid.helper.d.ts +15 -0
- package/helpers/uuid.helper.js +54 -0
- package/helpers/validate-each.helper.d.ts +8 -0
- package/helpers/validate-each.helper.js +25 -0
- package/hooks/before-app-shutdown.hook.d.ts +9 -0
- package/hooks/before-app-shutdown.hook.js +45 -0
- package/hooks/index.d.ts +5 -0
- package/hooks/index.js +21 -0
- package/hooks/on-app-bootstrap.hook.d.ts +8 -0
- package/hooks/on-app-bootstrap.hook.js +45 -0
- package/hooks/on-app-shutdown.hook.d.ts +9 -0
- package/hooks/on-app-shutdown.hook.js +46 -0
- package/hooks/on-module-destroy.hook.d.ts +8 -0
- package/hooks/on-module-destroy.hook.js +45 -0
- package/hooks/on-module-init.hook.d.ts +8 -0
- package/hooks/on-module-init.hook.js +45 -0
- package/index.d.ts +10 -0
- package/index.js +32 -0
- package/injector/constants.d.ts +2 -0
- package/injector/constants.js +7 -0
- package/injector/container.d.ts +61 -0
- package/injector/container.js +194 -0
- package/injector/helpers/class-scope.helper.d.ts +2 -0
- package/injector/helpers/class-scope.helper.js +9 -0
- package/injector/helpers/classifier.helper.d.ts +4 -0
- package/injector/helpers/classifier.helper.js +17 -0
- package/injector/helpers/is-durable.helper.d.ts +2 -0
- package/injector/helpers/is-durable.helper.js +9 -0
- package/injector/index.d.ts +5 -0
- package/injector/index.js +20 -0
- package/injector/injector.d.ts +87 -0
- package/injector/injector.js +452 -0
- package/injector/instance/links-host.d.ts +22 -0
- package/injector/instance/links-host.js +50 -0
- package/injector/instance/loader.d.ts +21 -0
- package/injector/instance/loader.js +73 -0
- package/injector/instance/resolver.d.ts +16 -0
- package/injector/instance/resolver.js +43 -0
- package/injector/instance/wrapper.d.ts +90 -0
- package/injector/instance/wrapper.js +272 -0
- package/injector/internal-core-module/core-providers.d.ts +4 -0
- package/injector/internal-core-module/core-providers.js +21 -0
- package/injector/internal-core-module/internal-core-module-factory.d.ts +8 -0
- package/injector/internal-core-module/internal-core-module-factory.js +42 -0
- package/injector/internal-core-module/internal-core-module.d.ts +4 -0
- package/injector/internal-core-module/internal-core-module.js +31 -0
- package/injector/module/compiler.d.ts +19 -0
- package/injector/module/compiler.js +27 -0
- package/injector/module/container.d.ts +6 -0
- package/injector/module/container.js +24 -0
- package/injector/module/lazy/loader.d.ts +21 -0
- package/injector/module/lazy/loader.js +49 -0
- package/injector/module/lazy/options.d.ts +6 -0
- package/injector/module/lazy/options.js +2 -0
- package/injector/module/module.d.ts +74 -0
- package/injector/module/module.js +383 -0
- package/injector/module/ref.d.ts +106 -0
- package/injector/module/ref.js +62 -0
- package/injector/module/token-factory.d.ts +13 -0
- package/injector/module/token-factory.js +71 -0
- package/injector/settlement-signal.d.ts +37 -0
- package/injector/settlement-signal.js +55 -0
- package/inspector/graph-inspector.d.ts +26 -0
- package/inspector/graph-inspector.js +163 -0
- package/inspector/initialize-on-preview.allowlist.d.ts +6 -0
- package/inspector/initialize-on-preview.allowlist.js +13 -0
- package/inspector/interfaces/edge.interface.d.ts +28 -0
- package/inspector/interfaces/edge.interface.js +2 -0
- package/inspector/interfaces/enhancer-metadata-cache-entry.interface.d.ts +12 -0
- package/inspector/interfaces/enhancer-metadata-cache-entry.interface.js +2 -0
- package/inspector/interfaces/entrypoint.interface.d.ts +10 -0
- package/inspector/interfaces/entrypoint.interface.js +2 -0
- package/inspector/interfaces/extras.interface.d.ts +18 -0
- package/inspector/interfaces/extras.interface.js +2 -0
- package/inspector/interfaces/node.interface.d.ts +49 -0
- package/inspector/interfaces/node.interface.js +2 -0
- package/inspector/interfaces/serialized-graph-json.interface.d.ts +14 -0
- package/inspector/interfaces/serialized-graph-json.interface.js +2 -0
- package/inspector/interfaces/serialized-graph-metadata.interface.d.ts +10 -0
- package/inspector/interfaces/serialized-graph-metadata.interface.js +2 -0
- package/inspector/noop-graph-inspector.d.ts +2 -0
- package/inspector/noop-graph-inspector.js +8 -0
- package/inspector/partial-graph.host.d.ts +7 -0
- package/inspector/partial-graph.host.js +15 -0
- package/inspector/serialized-graph.d.ts +52 -0
- package/inspector/serialized-graph.js +121 -0
- package/interceptors/consumer.d.ts +9 -0
- package/interceptors/consumer.js +37 -0
- package/interceptors/context-creator.d.ts +17 -0
- package/interceptors/context-creator.js +67 -0
- package/interceptors/index.d.ts +2 -0
- package/interceptors/index.js +18 -0
- package/interfaces/abstract.interface.d.ts +3 -0
- package/interfaces/abstract.interface.js +2 -0
- package/interfaces/application/context-options.interface.d.ts +41 -0
- package/interfaces/application/context-options.interface.js +9 -0
- package/interfaces/application/context.interface.d.ts +162 -0
- package/interfaces/application/context.interface.js +2 -0
- package/interfaces/application/index.d.ts +1 -0
- package/interfaces/application/index.js +17 -0
- package/interfaces/context/arguments-host.interface.d.ts +22 -0
- package/interfaces/context/arguments-host.interface.js +2 -0
- package/interfaces/context/execution.interface.d.ts +18 -0
- package/interfaces/context/execution.interface.js +2 -0
- package/interfaces/features/exception-filter.interface.d.ts +21 -0
- package/interfaces/features/exception-filter.interface.js +2 -0
- package/interfaces/features/guards.interface.d.ts +20 -0
- package/interfaces/features/guards.interface.js +2 -0
- package/interfaces/features/interceptor.interface.d.ts +30 -0
- package/interfaces/features/interceptor.interface.js +2 -0
- package/interfaces/features/pipes.interface.d.ts +37 -0
- package/interfaces/features/pipes.interface.js +2 -0
- package/interfaces/helper.interface.d.ts +3 -0
- package/interfaces/helper.interface.js +2 -0
- package/interfaces/hooks/before-application-shutdown.interface.d.ts +3 -0
- package/interfaces/hooks/before-application-shutdown.interface.js +2 -0
- package/interfaces/hooks/index.d.ts +5 -0
- package/interfaces/hooks/index.js +21 -0
- package/interfaces/hooks/on-application-bootstrap.interface.d.ts +9 -0
- package/interfaces/hooks/on-application-bootstrap.interface.js +2 -0
- package/interfaces/hooks/on-application-shutdown.interface.d.ts +9 -0
- package/interfaces/hooks/on-application-shutdown.interface.js +2 -0
- package/interfaces/hooks/on-destroy.interface.d.ts +10 -0
- package/interfaces/hooks/on-destroy.interface.js +2 -0
- package/interfaces/hooks/on-init.interface.d.ts +8 -0
- package/interfaces/hooks/on-init.interface.js +2 -0
- package/interfaces/index.d.ts +6 -0
- package/interfaces/index.js +22 -0
- package/interfaces/injectable.interface.d.ts +1 -0
- package/interfaces/injectable.interface.js +2 -0
- package/interfaces/modules/configurable/async-options.interface.d.ts +42 -0
- package/interfaces/modules/configurable/async-options.interface.js +2 -0
- package/interfaces/modules/configurable/cls.interface.d.ts +13 -0
- package/interfaces/modules/configurable/cls.interface.js +2 -0
- package/interfaces/modules/configurable/host.interface.d.ts +62 -0
- package/interfaces/modules/configurable/host.interface.js +2 -0
- package/interfaces/modules/configurable/index.d.ts +3 -0
- package/interfaces/modules/configurable/index.js +19 -0
- package/interfaces/modules/definition.interface.d.ts +4 -0
- package/interfaces/modules/definition.interface.js +2 -0
- package/interfaces/modules/dynamic-module.interface.d.ts +23 -0
- package/interfaces/modules/dynamic-module.interface.js +2 -0
- package/interfaces/modules/forward-reference.interface.d.ts +3 -0
- package/interfaces/modules/forward-reference.interface.js +2 -0
- package/interfaces/modules/index.d.ts +9 -0
- package/interfaces/modules/index.js +25 -0
- package/interfaces/modules/injection-token.interface.d.ts +5 -0
- package/interfaces/modules/injection-token.interface.js +2 -0
- package/interfaces/modules/introspection-result.interface.d.ts +10 -0
- package/interfaces/modules/introspection-result.interface.js +2 -0
- package/interfaces/modules/module-metadata.interface.d.ts +24 -0
- package/interfaces/modules/module-metadata.interface.js +2 -0
- package/interfaces/modules/module.interface.d.ts +2 -0
- package/interfaces/modules/module.interface.js +2 -0
- package/interfaces/modules/optional-factory-dependency.interface.d.ts +8 -0
- package/interfaces/modules/optional-factory-dependency.interface.js +2 -0
- package/interfaces/modules/override.interface.d.ts +5 -0
- package/interfaces/modules/override.interface.js +2 -0
- package/interfaces/modules/provider.interface.d.ts +142 -0
- package/interfaces/modules/provider.interface.js +2 -0
- package/interfaces/scope.interface.d.ts +35 -0
- package/interfaces/scope.interface.js +23 -0
- package/interfaces/type.interface.d.ts +3 -0
- package/interfaces/type.interface.js +2 -0
- package/metadata-scanner.d.ts +4 -0
- package/metadata-scanner.js +34 -0
- package/module/configurable-module.builder.d.ts +93 -0
- package/module/configurable-module.builder.js +204 -0
- package/module/constants.d.ts +4 -0
- package/module/constants.js +7 -0
- package/module/helpers/generate-options-injection-token.helper.d.ts +1 -0
- package/module/helpers/generate-options-injection-token.helper.js +9 -0
- package/module/helpers/get-injection-providers.helper.d.ts +8 -0
- package/module/helpers/get-injection-providers.helper.js +36 -0
- package/module/helpers/index.d.ts +2 -0
- package/module/helpers/index.js +18 -0
- package/module/index.d.ts +2 -0
- package/module/index.js +18 -0
- package/package.json +35 -0
- package/pipes/consumer.d.ts +9 -0
- package/pipes/consumer.js +15 -0
- package/pipes/context-creator.d.ts +18 -0
- package/pipes/context-creator.js +70 -0
- package/pipes/index.d.ts +2 -0
- package/pipes/index.js +18 -0
- package/scanner.d.ts +81 -0
- package/scanner.js +374 -0
- package/services/console.service.d.ts +86 -0
- package/services/console.service.js +233 -0
- package/services/index.d.ts +1 -0
- package/services/index.js +17 -0
- package/services/logger.service.d.ts +157 -0
- package/services/logger.service.js +269 -0
- package/services/reflector.service.d.ts +110 -0
- package/services/reflector.service.js +87 -0
- package/test/context/execution-host.spec.d.ts +1 -0
- package/test/context/execution-host.spec.js +31 -0
- package/test/context/external/creator.spec.d.ts +1 -0
- package/test/context/external/creator.spec.js +149 -0
- package/test/context/external/proxy.spec.d.ts +1 -0
- package/test/context/external/proxy.spec.js +45 -0
- package/test/exceptions/external/handler.spec.d.ts +1 -0
- package/test/exceptions/external/handler.spec.js +89 -0
- package/test/exceptions/filter-context.spec.d.ts +2 -0
- package/test/exceptions/filter-context.spec.js +91 -0
- package/test/exceptions/messages.spec.d.ts +0 -0
- package/test/exceptions/messages.spec.js +201 -0
- package/test/exceptions/zona/handler.spec.d.ts +1 -0
- package/test/exceptions/zona/handler.spec.js +51 -0
- package/test/exceptions/zona/zone.spec.d.ts +1 -0
- package/test/exceptions/zona/zone.spec.js +66 -0
- package/test/guards/consumer.spec.d.ts +1 -0
- package/test/guards/consumer.spec.js +47 -0
- package/test/guards/context-creator.spec.d.ts +1 -0
- package/test/guards/context-creator.spec.js +138 -0
- package/test/helpers/context-id-factory.spec.d.ts +1 -0
- package/test/helpers/context-id-factory.spec.js +9 -0
- package/test/helpers/shared.spec.d.ts +1 -0
- package/test/helpers/shared.spec.js +122 -0
- package/test/hooks/before-app-shutdown.hook.spec.d.ts +1 -0
- package/test/hooks/before-app-shutdown.hook.spec.js +44 -0
- package/test/hooks/on-app-bootstrap.hook.spec.d.ts +1 -0
- package/test/hooks/on-app-bootstrap.hook.spec.js +43 -0
- package/test/hooks/on-app-shutdown.hook.spec.d.ts +1 -0
- package/test/hooks/on-app-shutdown.hook.spec.js +43 -0
- package/test/hooks/on-module-destroy.hook.spec.d.ts +1 -0
- package/test/hooks/on-module-destroy.hook.spec.js +43 -0
- package/test/hooks/on-module-init.hook.spec.d.ts +1 -0
- package/test/hooks/on-module-init.hook.spec.js +43 -0
- package/test/injector/compiler.spec.d.ts +1 -0
- package/test/injector/compiler.spec.js +42 -0
- package/test/injector/container.spec.d.ts +1 -0
- package/test/injector/container.spec.js +203 -0
- package/test/injector/helpers/classifier.spec.d.ts +1 -0
- package/test/injector/helpers/classifier.spec.js +102 -0
- package/test/injector/injector.spec.d.ts +1 -0
- package/test/injector/injector.spec.js +678 -0
- package/test/injector/instance/loader.spec.d.ts +1 -0
- package/test/injector/instance/loader.spec.js +108 -0
- package/test/injector/instance/wrapper.spec.d.ts +1 -0
- package/test/injector/instance/wrapper.spec.js +772 -0
- package/test/injector/internal-core-module/internal-core-module-factory.spec.d.ts +1 -0
- package/test/injector/internal-core-module/internal-core-module-factory.spec.js +27 -0
- package/test/injector/module/lazy/loader.spec.d.ts +1 -0
- package/test/injector/module/lazy/loader.spec.js +71 -0
- package/test/injector/module/module.spec.d.ts +1 -0
- package/test/injector/module/module.spec.js +410 -0
- package/test/injector/module/token-factory.spec.d.ts +1 -0
- package/test/injector/module/token-factory.spec.js +84 -0
- package/test/interceptors/consumer.spec.d.ts +1 -0
- package/test/interceptors/consumer.spec.js +136 -0
- package/test/interceptors/context-creator.spec.d.ts +1 -0
- package/test/interceptors/context-creator.spec.js +139 -0
- package/test/metadata-scanner.spec.d.ts +1 -0
- package/test/metadata-scanner.spec.js +41 -0
- package/test/module/configurable-module.builder.spec.d.ts +1 -0
- package/test/module/configurable-module.builder.spec.js +102 -0
- package/test/module/helpers/get-injection-providers.helper.spec.d.ts +1 -0
- package/test/module/helpers/get-injection-providers.helper.spec.js +49 -0
- package/test/pipes/consumer.spec.d.ts +1 -0
- package/test/pipes/consumer.spec.js +42 -0
- package/test/pipes/context-creator.spec.d.ts +1 -0
- package/test/pipes/context-creator.spec.js +108 -0
- package/test/scanner.spec.d.ts +1 -0
- package/test/scanner.spec.js +620 -0
- package/test/services/logger.service.spec.d.ts +1 -0
- package/test/services/logger.service.spec.js +487 -0
- package/test/services/reflector.service.spec.d.ts +1 -0
- package/test/services/reflector.service.spec.js +105 -0
- package/tsconfig.tsbuildinfo +1 -0
|
@@ -0,0 +1,487 @@
|
|
|
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
const chai_1 = require("chai");
|
|
27
|
+
require("reflect-metadata");
|
|
28
|
+
const sinon = __importStar(require("sinon"));
|
|
29
|
+
const logger_service_1 = require("@venok/core/services/logger.service");
|
|
30
|
+
const console_service_1 = require("@venok/core/services/console.service");
|
|
31
|
+
describe("Logger", () => {
|
|
32
|
+
describe("[static methods]", () => {
|
|
33
|
+
describe("when the default logger is used", () => {
|
|
34
|
+
let processStdoutWriteSpy;
|
|
35
|
+
let processStderrWriteSpy;
|
|
36
|
+
beforeEach(() => {
|
|
37
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
38
|
+
processStderrWriteSpy = sinon.spy(process.stderr, "write");
|
|
39
|
+
});
|
|
40
|
+
afterEach(() => {
|
|
41
|
+
processStdoutWriteSpy.restore();
|
|
42
|
+
processStderrWriteSpy.restore();
|
|
43
|
+
});
|
|
44
|
+
it("should print one message to the console", () => {
|
|
45
|
+
const message = "random message";
|
|
46
|
+
const context = "RandomContext";
|
|
47
|
+
logger_service_1.Logger.log(message, context);
|
|
48
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledOnce).to.be.true;
|
|
49
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
50
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(message);
|
|
51
|
+
});
|
|
52
|
+
it("should print one message without context to the console", () => {
|
|
53
|
+
const message = "random message without context";
|
|
54
|
+
logger_service_1.Logger.log(message);
|
|
55
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledOnce).to.be.true;
|
|
56
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(message);
|
|
57
|
+
});
|
|
58
|
+
it("should print multiple messages to the console", () => {
|
|
59
|
+
const messages = ["message 1", "message 2", "message 3"];
|
|
60
|
+
const context = "RandomContext";
|
|
61
|
+
logger_service_1.Logger.log(messages[0], messages[1], messages[2], context);
|
|
62
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledThrice).to.be.true;
|
|
63
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
64
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(messages[0]);
|
|
65
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include(`[${context}]`);
|
|
66
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include(messages[1]);
|
|
67
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include(`[${context}]`);
|
|
68
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include(messages[2]);
|
|
69
|
+
});
|
|
70
|
+
it("should print one error to the console with context", () => {
|
|
71
|
+
const message = "random error";
|
|
72
|
+
const context = "RandomContext";
|
|
73
|
+
logger_service_1.Logger.error(message, context);
|
|
74
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
75
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
76
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
77
|
+
});
|
|
78
|
+
it("should print one error to the console with stacktrace", () => {
|
|
79
|
+
const message = "random error";
|
|
80
|
+
const stacktrace = "Error: message\n at <anonymous>:1:2";
|
|
81
|
+
logger_service_1.Logger.error(message, stacktrace);
|
|
82
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledTwice).to.be.true;
|
|
83
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.not.include(`[]`);
|
|
84
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
85
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.equal(stacktrace + "\n");
|
|
86
|
+
});
|
|
87
|
+
it("should print one error without context to the console", () => {
|
|
88
|
+
const message = "random error without context";
|
|
89
|
+
logger_service_1.Logger.error(message);
|
|
90
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
91
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
92
|
+
});
|
|
93
|
+
it("should print error object without context to the console", () => {
|
|
94
|
+
const error = new Error("Random text here");
|
|
95
|
+
logger_service_1.Logger.error(error);
|
|
96
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
97
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`Error: Random text here`);
|
|
98
|
+
});
|
|
99
|
+
it("should serialise a plain JS object (as a message) without context to the console", () => {
|
|
100
|
+
const error = {
|
|
101
|
+
randomError: true,
|
|
102
|
+
};
|
|
103
|
+
logger_service_1.Logger.error(error);
|
|
104
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
105
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`Object:`);
|
|
106
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`{\n "randomError": true\n}`);
|
|
107
|
+
});
|
|
108
|
+
it("should print one error with stacktrace and context to the console", () => {
|
|
109
|
+
const message = "random error with context";
|
|
110
|
+
const stacktrace = "stacktrace";
|
|
111
|
+
const context = "ErrorContext";
|
|
112
|
+
logger_service_1.Logger.error(message, stacktrace, context);
|
|
113
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledTwice).to.be.true;
|
|
114
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
115
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
116
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.equal(stacktrace + "\n");
|
|
117
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.not.include(context);
|
|
118
|
+
});
|
|
119
|
+
it("should print multiple 2 errors and one stacktrace to the console", () => {
|
|
120
|
+
const messages = ["message 1", "message 2"];
|
|
121
|
+
const stack = "stacktrace";
|
|
122
|
+
const context = "RandomContext";
|
|
123
|
+
logger_service_1.Logger.error(messages[0], messages[1], stack, context);
|
|
124
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledThrice).to.be.true;
|
|
125
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
126
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(messages[0]);
|
|
127
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.include(`[${context}]`);
|
|
128
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.include(messages[1]);
|
|
129
|
+
(0, chai_1.expect)(processStderrWriteSpy.thirdCall.firstArg).to.not.include(`[${context}]`);
|
|
130
|
+
(0, chai_1.expect)(processStderrWriteSpy.thirdCall.firstArg).to.equal(stack + "\n");
|
|
131
|
+
});
|
|
132
|
+
});
|
|
133
|
+
describe("when logging is disabled", () => {
|
|
134
|
+
let processStdoutWriteSpy;
|
|
135
|
+
let previousLoggerRef;
|
|
136
|
+
beforeEach(() => {
|
|
137
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
138
|
+
previousLoggerRef = logger_service_1.Logger["staticInstanceRef"];
|
|
139
|
+
logger_service_1.Logger.overrideLogger(false);
|
|
140
|
+
});
|
|
141
|
+
afterEach(() => {
|
|
142
|
+
processStdoutWriteSpy.restore();
|
|
143
|
+
logger_service_1.Logger.overrideLogger(previousLoggerRef);
|
|
144
|
+
});
|
|
145
|
+
it("should not print any message to the console", () => {
|
|
146
|
+
const message = "random message";
|
|
147
|
+
const context = "RandomContext";
|
|
148
|
+
logger_service_1.Logger.log(message, context);
|
|
149
|
+
(0, chai_1.expect)(processStdoutWriteSpy.called).to.be.false;
|
|
150
|
+
});
|
|
151
|
+
});
|
|
152
|
+
describe("when custom logger is being used", () => {
|
|
153
|
+
class CustomLogger {
|
|
154
|
+
log(message, context) { }
|
|
155
|
+
error(message, trace, context) { }
|
|
156
|
+
warn(message, context) { }
|
|
157
|
+
}
|
|
158
|
+
const customLogger = new CustomLogger();
|
|
159
|
+
let previousLoggerRef;
|
|
160
|
+
beforeEach(() => {
|
|
161
|
+
previousLoggerRef = logger_service_1.Logger["staticInstanceRef"];
|
|
162
|
+
logger_service_1.Logger.overrideLogger(customLogger);
|
|
163
|
+
});
|
|
164
|
+
afterEach(() => {
|
|
165
|
+
logger_service_1.Logger.overrideLogger(previousLoggerRef);
|
|
166
|
+
});
|
|
167
|
+
it('should call custom logger "#log()" method', () => {
|
|
168
|
+
const message = "random message";
|
|
169
|
+
const context = "RandomContext";
|
|
170
|
+
const customLoggerLogSpy = sinon.spy(customLogger, "log");
|
|
171
|
+
logger_service_1.Logger.log(message, context);
|
|
172
|
+
(0, chai_1.expect)(customLoggerLogSpy.called).to.be.true;
|
|
173
|
+
(0, chai_1.expect)(customLoggerLogSpy.calledWith(message, context)).to.be.true;
|
|
174
|
+
});
|
|
175
|
+
it('should call custom logger "#error()" method', () => {
|
|
176
|
+
const message = "random message";
|
|
177
|
+
const context = "RandomContext";
|
|
178
|
+
const customLoggerErrorSpy = sinon.spy(customLogger, "error");
|
|
179
|
+
logger_service_1.Logger.error(message, context);
|
|
180
|
+
(0, chai_1.expect)(customLoggerErrorSpy.called).to.be.true;
|
|
181
|
+
(0, chai_1.expect)(customLoggerErrorSpy.calledWith(message, context)).to.be.true;
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
});
|
|
185
|
+
describe("ConsoleLogger", () => {
|
|
186
|
+
it("should allow setting and resetting of context", () => {
|
|
187
|
+
const logger = new console_service_1.ConsoleLogger();
|
|
188
|
+
(0, chai_1.expect)(logger["context"]).to.be.undefined;
|
|
189
|
+
logger.setContext("context");
|
|
190
|
+
(0, chai_1.expect)(logger["context"]).to.equal("context");
|
|
191
|
+
logger.resetContext();
|
|
192
|
+
(0, chai_1.expect)(logger["context"]).to.be.undefined;
|
|
193
|
+
const loggerWithContext = new console_service_1.ConsoleLogger("context");
|
|
194
|
+
(0, chai_1.expect)(loggerWithContext["context"]).to.equal("context");
|
|
195
|
+
loggerWithContext.setContext("other");
|
|
196
|
+
(0, chai_1.expect)(loggerWithContext["context"]).to.equal("other");
|
|
197
|
+
loggerWithContext.resetContext();
|
|
198
|
+
(0, chai_1.expect)(loggerWithContext["context"]).to.equal("context");
|
|
199
|
+
});
|
|
200
|
+
describe("functions for message", () => {
|
|
201
|
+
let processStdoutWriteSpy;
|
|
202
|
+
const logger = new console_service_1.ConsoleLogger();
|
|
203
|
+
const message = "Hello World";
|
|
204
|
+
beforeEach(() => {
|
|
205
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
206
|
+
});
|
|
207
|
+
afterEach(() => {
|
|
208
|
+
processStdoutWriteSpy.restore();
|
|
209
|
+
});
|
|
210
|
+
it("works", () => {
|
|
211
|
+
logger.log(() => message);
|
|
212
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledOnce).to.be.true;
|
|
213
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(message);
|
|
214
|
+
// Ensure we didn't serialize the function itself.
|
|
215
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).not.to.include(" => ");
|
|
216
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).not.to.include("function");
|
|
217
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).not.to.include("Function");
|
|
218
|
+
});
|
|
219
|
+
});
|
|
220
|
+
});
|
|
221
|
+
describe("[instance methods]", () => {
|
|
222
|
+
describe("when the default logger is used", () => {
|
|
223
|
+
const logger = new logger_service_1.Logger();
|
|
224
|
+
let processStdoutWriteSpy;
|
|
225
|
+
let processStderrWriteSpy;
|
|
226
|
+
beforeEach(() => {
|
|
227
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
228
|
+
processStderrWriteSpy = sinon.spy(process.stderr, "write");
|
|
229
|
+
});
|
|
230
|
+
afterEach(() => {
|
|
231
|
+
processStdoutWriteSpy.restore();
|
|
232
|
+
processStderrWriteSpy.restore();
|
|
233
|
+
});
|
|
234
|
+
it("should print one message to the console", () => {
|
|
235
|
+
const message = "random message";
|
|
236
|
+
const context = "RandomContext";
|
|
237
|
+
logger.log(message, context);
|
|
238
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledOnce).to.be.true;
|
|
239
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
240
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(message);
|
|
241
|
+
});
|
|
242
|
+
it("should print one message without context to the console", () => {
|
|
243
|
+
const message = "random message without context";
|
|
244
|
+
logger.log(message);
|
|
245
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledOnce).to.be.true;
|
|
246
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(message);
|
|
247
|
+
});
|
|
248
|
+
it("should print multiple messages to the console", () => {
|
|
249
|
+
const messages = ["message 1", "message 2", "message 3"];
|
|
250
|
+
const context = "RandomContext";
|
|
251
|
+
logger.log(messages[0], messages[1], messages[2], context);
|
|
252
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledThrice).to.be.true;
|
|
253
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
254
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(messages[0]);
|
|
255
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include(`[${context}]`);
|
|
256
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include(messages[1]);
|
|
257
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include(`[${context}]`);
|
|
258
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include(messages[2]);
|
|
259
|
+
});
|
|
260
|
+
it("should print one error to the console with context", () => {
|
|
261
|
+
const message = "random error";
|
|
262
|
+
const context = "RandomContext";
|
|
263
|
+
logger.error(message, context);
|
|
264
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
265
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
266
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
267
|
+
});
|
|
268
|
+
it("should print one error to the console with stacktrace", () => {
|
|
269
|
+
const message = "random error";
|
|
270
|
+
const stacktrace = "Error: message\n at <anonymous>:1:2";
|
|
271
|
+
logger.error(message, stacktrace);
|
|
272
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledTwice).to.be.true;
|
|
273
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.not.include(`[]`);
|
|
274
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
275
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.equal(stacktrace + "\n");
|
|
276
|
+
});
|
|
277
|
+
it("should print one error without context to the console", () => {
|
|
278
|
+
const message = "random error without context";
|
|
279
|
+
logger.error(message);
|
|
280
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
281
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
282
|
+
});
|
|
283
|
+
it("should print one error with stacktrace and context to the console", () => {
|
|
284
|
+
const message = "random error with context";
|
|
285
|
+
const stacktrace = "stacktrace";
|
|
286
|
+
const context = "ErrorContext";
|
|
287
|
+
logger.error(message, stacktrace, context);
|
|
288
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledTwice).to.be.true;
|
|
289
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
290
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
291
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.equal(stacktrace + "\n");
|
|
292
|
+
});
|
|
293
|
+
it("should print 2 errors and one stacktrace to the console", () => {
|
|
294
|
+
const messages = ["message 1", "message 2"];
|
|
295
|
+
const stack = "stacktrace";
|
|
296
|
+
const context = "RandomContext";
|
|
297
|
+
logger.error(messages[0], messages[1], stack, context);
|
|
298
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledThrice).to.be.true;
|
|
299
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${context}]`);
|
|
300
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(messages[0]);
|
|
301
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.include(`[${context}]`);
|
|
302
|
+
(0, chai_1.expect)(processStderrWriteSpy.secondCall.firstArg).to.include(messages[1]);
|
|
303
|
+
(0, chai_1.expect)(processStderrWriteSpy.thirdCall.firstArg).to.not.include(`[${context}]`);
|
|
304
|
+
(0, chai_1.expect)(processStderrWriteSpy.thirdCall.firstArg).to.equal(stack + "\n");
|
|
305
|
+
});
|
|
306
|
+
});
|
|
307
|
+
describe("when the default logger is used and global context is set and timestamp enabled", () => {
|
|
308
|
+
const globalContext = "GlobalContext";
|
|
309
|
+
const logger = new logger_service_1.Logger(globalContext, { timestamp: true });
|
|
310
|
+
let processStdoutWriteSpy;
|
|
311
|
+
let processStderrWriteSpy;
|
|
312
|
+
beforeEach(() => {
|
|
313
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
314
|
+
processStderrWriteSpy = sinon.spy(process.stderr, "write");
|
|
315
|
+
});
|
|
316
|
+
afterEach(() => {
|
|
317
|
+
processStdoutWriteSpy.restore();
|
|
318
|
+
processStderrWriteSpy.restore();
|
|
319
|
+
});
|
|
320
|
+
it("should print multiple messages to the console and append global context", () => {
|
|
321
|
+
const messages = ["message 1", "message 2", "message 3"];
|
|
322
|
+
logger.log(messages[0], messages[1], messages[2]);
|
|
323
|
+
(0, chai_1.expect)(processStdoutWriteSpy.calledThrice).to.be.true;
|
|
324
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(`[${globalContext}]`);
|
|
325
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.include(messages[0]);
|
|
326
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include(`[${globalContext}]`);
|
|
327
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include(messages[1]);
|
|
328
|
+
(0, chai_1.expect)(processStdoutWriteSpy.secondCall.firstArg).to.include("ms");
|
|
329
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include(`[${globalContext}]`);
|
|
330
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include(messages[2]);
|
|
331
|
+
(0, chai_1.expect)(processStdoutWriteSpy.thirdCall.firstArg).to.include("ms");
|
|
332
|
+
});
|
|
333
|
+
it("should log out an error to stderr but not include an undefined log", () => {
|
|
334
|
+
const message = "message 1";
|
|
335
|
+
logger.error(message);
|
|
336
|
+
(0, chai_1.expect)(processStderrWriteSpy.calledOnce).to.be.true;
|
|
337
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(`[${globalContext}]`);
|
|
338
|
+
(0, chai_1.expect)(processStderrWriteSpy.firstCall.firstArg).to.include(message);
|
|
339
|
+
});
|
|
340
|
+
});
|
|
341
|
+
describe("when logging is disabled", () => {
|
|
342
|
+
const logger = new logger_service_1.Logger();
|
|
343
|
+
let processStdoutWriteSpy;
|
|
344
|
+
let previousLoggerRef;
|
|
345
|
+
beforeEach(() => {
|
|
346
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
347
|
+
previousLoggerRef = logger_service_1.Logger["staticInstanceRef"];
|
|
348
|
+
logger_service_1.Logger.overrideLogger(false);
|
|
349
|
+
});
|
|
350
|
+
afterEach(() => {
|
|
351
|
+
processStdoutWriteSpy.restore();
|
|
352
|
+
logger_service_1.Logger.overrideLogger(previousLoggerRef);
|
|
353
|
+
});
|
|
354
|
+
it("should not print any message to the console", () => {
|
|
355
|
+
const message = "random message";
|
|
356
|
+
const context = "RandomContext";
|
|
357
|
+
logger.log(message, context);
|
|
358
|
+
(0, chai_1.expect)(processStdoutWriteSpy.called).to.be.false;
|
|
359
|
+
});
|
|
360
|
+
});
|
|
361
|
+
describe("when custom logger is being used", () => {
|
|
362
|
+
class CustomLogger {
|
|
363
|
+
log(message, context) { }
|
|
364
|
+
error(message, trace, context) { }
|
|
365
|
+
warn(message, context) { }
|
|
366
|
+
}
|
|
367
|
+
describe("with global context", () => {
|
|
368
|
+
const customLogger = new CustomLogger();
|
|
369
|
+
const globalContext = "RandomContext";
|
|
370
|
+
const originalLogger = new logger_service_1.Logger(globalContext);
|
|
371
|
+
let previousLoggerRef;
|
|
372
|
+
beforeEach(() => {
|
|
373
|
+
previousLoggerRef = logger_service_1.Logger["staticInstanceRef"];
|
|
374
|
+
logger_service_1.Logger.overrideLogger(customLogger);
|
|
375
|
+
});
|
|
376
|
+
afterEach(() => {
|
|
377
|
+
logger_service_1.Logger.overrideLogger(previousLoggerRef);
|
|
378
|
+
});
|
|
379
|
+
it('should call custom logger "#log()" method with context as second argument', () => {
|
|
380
|
+
const message = "random log message with global context";
|
|
381
|
+
const customLoggerLogSpy = sinon.spy(customLogger, "log");
|
|
382
|
+
originalLogger.log(message);
|
|
383
|
+
(0, chai_1.expect)(customLoggerLogSpy.called).to.be.true;
|
|
384
|
+
(0, chai_1.expect)(customLoggerLogSpy.calledWith(message, globalContext)).to.be.true;
|
|
385
|
+
});
|
|
386
|
+
it('should call custom logger "#error()" method with context as third argument', () => {
|
|
387
|
+
const message = "random error message with global context";
|
|
388
|
+
const customLoggerErrorSpy = sinon.spy(customLogger, "error");
|
|
389
|
+
originalLogger.error(message);
|
|
390
|
+
(0, chai_1.expect)(customLoggerErrorSpy.called).to.be.true;
|
|
391
|
+
(0, chai_1.expect)(customLoggerErrorSpy.calledWith(message, undefined, globalContext)).to.be.true;
|
|
392
|
+
});
|
|
393
|
+
});
|
|
394
|
+
describe("without global context", () => {
|
|
395
|
+
const customLogger = new CustomLogger();
|
|
396
|
+
const originalLogger = new logger_service_1.Logger();
|
|
397
|
+
let previousLoggerRef;
|
|
398
|
+
beforeEach(() => {
|
|
399
|
+
previousLoggerRef = logger_service_1.Logger["staticInstanceRef"];
|
|
400
|
+
logger_service_1.Logger.overrideLogger(customLogger);
|
|
401
|
+
});
|
|
402
|
+
afterEach(() => {
|
|
403
|
+
logger_service_1.Logger.overrideLogger(previousLoggerRef);
|
|
404
|
+
});
|
|
405
|
+
it('should call custom logger "#log()" method', () => {
|
|
406
|
+
const message = "random message";
|
|
407
|
+
const context = "RandomContext";
|
|
408
|
+
const customLoggerLogSpy = sinon.spy(customLogger, "log");
|
|
409
|
+
originalLogger.log(message, context);
|
|
410
|
+
(0, chai_1.expect)(customLoggerLogSpy.called).to.be.true;
|
|
411
|
+
(0, chai_1.expect)(customLoggerLogSpy.calledWith(message, context)).to.be.true;
|
|
412
|
+
});
|
|
413
|
+
it('should call custom logger "#error()" method', () => {
|
|
414
|
+
const message = "random message";
|
|
415
|
+
const context = "RandomContext";
|
|
416
|
+
const customLoggerErrorSpy = sinon.spy(customLogger, "error");
|
|
417
|
+
originalLogger.error(message, undefined, context);
|
|
418
|
+
(0, chai_1.expect)(customLoggerErrorSpy.called).to.be.true;
|
|
419
|
+
(0, chai_1.expect)(customLoggerErrorSpy.calledWith(message, undefined, context)).to.be.true;
|
|
420
|
+
});
|
|
421
|
+
});
|
|
422
|
+
});
|
|
423
|
+
});
|
|
424
|
+
describe("ConsoleLogger", () => {
|
|
425
|
+
let processStdoutWriteSpy;
|
|
426
|
+
beforeEach(() => {
|
|
427
|
+
processStdoutWriteSpy = sinon.spy(process.stdout, "write");
|
|
428
|
+
});
|
|
429
|
+
afterEach(() => {
|
|
430
|
+
processStdoutWriteSpy.restore();
|
|
431
|
+
});
|
|
432
|
+
it("should support custom formatter", () => {
|
|
433
|
+
class CustomConsoleLogger extends console_service_1.ConsoleLogger {
|
|
434
|
+
formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff) {
|
|
435
|
+
return `Prefix: ${message}`;
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
const consoleLogger = new CustomConsoleLogger();
|
|
439
|
+
consoleLogger.debug("test");
|
|
440
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.equal(`Prefix: test`);
|
|
441
|
+
});
|
|
442
|
+
it("should support custom formatter and colorizer", () => {
|
|
443
|
+
class CustomConsoleLogger extends console_service_1.ConsoleLogger {
|
|
444
|
+
formatMessage(logLevel, message, pidMessage, formattedLogLevel, contextMessage, timestampDiff) {
|
|
445
|
+
const strMessage = this.stringifyMessage(message, logLevel);
|
|
446
|
+
return `Prefix: ${strMessage}`;
|
|
447
|
+
}
|
|
448
|
+
colorize(message, logLevel) {
|
|
449
|
+
return `~~~${message}~~~`;
|
|
450
|
+
}
|
|
451
|
+
}
|
|
452
|
+
const consoleLogger = new CustomConsoleLogger();
|
|
453
|
+
consoleLogger.debug("test");
|
|
454
|
+
(0, chai_1.expect)(processStdoutWriteSpy.firstCall.firstArg).to.equal(`Prefix: ~~~test~~~`);
|
|
455
|
+
});
|
|
456
|
+
it("should stringify messages", () => {
|
|
457
|
+
class CustomConsoleLogger extends console_service_1.ConsoleLogger {
|
|
458
|
+
colorize(message, _) {
|
|
459
|
+
return message;
|
|
460
|
+
}
|
|
461
|
+
}
|
|
462
|
+
const consoleLogger = new CustomConsoleLogger();
|
|
463
|
+
const consoleLoggerSpy = sinon.spy(consoleLogger, "stringifyMessage");
|
|
464
|
+
consoleLogger.debug("str1", { key: "str2" }, ["str3"], [{ key: "str4" }], null, 1);
|
|
465
|
+
(0, chai_1.expect)(consoleLoggerSpy.getCall(0).returnValue).to.equal("str1");
|
|
466
|
+
(0, chai_1.expect)(consoleLoggerSpy.getCall(1).returnValue).to.equal(`Object:
|
|
467
|
+
{
|
|
468
|
+
"key": "str2"
|
|
469
|
+
}
|
|
470
|
+
`);
|
|
471
|
+
(0, chai_1.expect)(consoleLoggerSpy.getCall(2).returnValue).to.equal(`Object:
|
|
472
|
+
[
|
|
473
|
+
"str3"
|
|
474
|
+
]
|
|
475
|
+
`);
|
|
476
|
+
(0, chai_1.expect)(consoleLoggerSpy.getCall(3).returnValue).to.equal(`Object:
|
|
477
|
+
[
|
|
478
|
+
{
|
|
479
|
+
"key": "str4"
|
|
480
|
+
}
|
|
481
|
+
]
|
|
482
|
+
`);
|
|
483
|
+
(0, chai_1.expect)(consoleLoggerSpy.getCall(4).returnValue).to.equal(null);
|
|
484
|
+
(0, chai_1.expect)(consoleLoggerSpy.getCall(5).returnValue).to.equal(1);
|
|
485
|
+
});
|
|
486
|
+
});
|
|
487
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import "reflect-metadata";
|
|
@@ -0,0 +1,105 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
require("reflect-metadata");
|
|
10
|
+
const chai_1 = require("chai");
|
|
11
|
+
const services_1 = require("@venok/core/services");
|
|
12
|
+
const transformDecorator = services_1.Reflector.createDecorator({
|
|
13
|
+
transform: (value) => value.length,
|
|
14
|
+
});
|
|
15
|
+
describe("Reflector", () => {
|
|
16
|
+
let reflector;
|
|
17
|
+
class Test {
|
|
18
|
+
}
|
|
19
|
+
let TestTransform = class TestTransform {
|
|
20
|
+
};
|
|
21
|
+
TestTransform = __decorate([
|
|
22
|
+
transformDecorator(["a", "b", "c"])
|
|
23
|
+
], TestTransform);
|
|
24
|
+
beforeEach(() => {
|
|
25
|
+
reflector = new services_1.Reflector();
|
|
26
|
+
});
|
|
27
|
+
describe("get", () => {
|
|
28
|
+
it("should reflect metadata by key", () => {
|
|
29
|
+
const key = "key";
|
|
30
|
+
const value = "value";
|
|
31
|
+
Reflect.defineMetadata(key, value, Test);
|
|
32
|
+
(0, chai_1.expect)(reflector.get(key, Test)).to.eql(value);
|
|
33
|
+
});
|
|
34
|
+
it("should reflect metadata by decorator", () => {
|
|
35
|
+
const decorator = services_1.Reflector.createDecorator();
|
|
36
|
+
const value = "value";
|
|
37
|
+
Reflect.defineMetadata(decorator.KEY, value, Test);
|
|
38
|
+
let reflectedValue = reflector.get(decorator, Test);
|
|
39
|
+
(0, chai_1.expect)(reflectedValue).to.eql(value);
|
|
40
|
+
// @ts-expect-error 'value' is not assignable to parameter of type 'string'
|
|
41
|
+
reflectedValue = true;
|
|
42
|
+
});
|
|
43
|
+
it("should reflect metadata by decorator (custom key)", () => {
|
|
44
|
+
const decorator = services_1.Reflector.createDecorator({ key: "custom" });
|
|
45
|
+
const value = ["value"];
|
|
46
|
+
Reflect.defineMetadata("custom", value, Test);
|
|
47
|
+
let reflectedValue = reflector.get(decorator, Test);
|
|
48
|
+
(0, chai_1.expect)(reflectedValue).to.eql(value);
|
|
49
|
+
// @ts-expect-error 'value' is not assignable to parameter of type 'string[]'
|
|
50
|
+
reflectedValue = true;
|
|
51
|
+
});
|
|
52
|
+
it("should reflect metadata by decorator (with transform option)", () => {
|
|
53
|
+
let reflectedValue = reflector.get(transformDecorator, TestTransform);
|
|
54
|
+
(0, chai_1.expect)(reflectedValue).to.eql(3);
|
|
55
|
+
// @ts-expect-error 'value' is not assignable to type 'number'
|
|
56
|
+
reflectedValue = [];
|
|
57
|
+
});
|
|
58
|
+
it("should require transform option when second generic type is provided", () => {
|
|
59
|
+
// @ts-expect-error Property 'transform' is missing in type {} but required in type
|
|
60
|
+
const decorator = services_1.Reflector.createDecorator({});
|
|
61
|
+
});
|
|
62
|
+
});
|
|
63
|
+
describe("getAll", () => {
|
|
64
|
+
it("should reflect metadata of all targets", () => {
|
|
65
|
+
const key = "key";
|
|
66
|
+
const value = "value";
|
|
67
|
+
Reflect.defineMetadata(key, value, Test);
|
|
68
|
+
(0, chai_1.expect)(reflector.getAll(key, [Test])).to.eql([value]);
|
|
69
|
+
});
|
|
70
|
+
});
|
|
71
|
+
describe("getAllAndMerge", () => {
|
|
72
|
+
it("should return an empty array when there are no targets", () => {
|
|
73
|
+
const key = "key";
|
|
74
|
+
(0, chai_1.expect)(reflector.getAllAndMerge(key, [])).to.be.empty;
|
|
75
|
+
});
|
|
76
|
+
it("should reflect metadata of all targets and concat arrays", () => {
|
|
77
|
+
const key = "key";
|
|
78
|
+
const value = "value";
|
|
79
|
+
Reflect.defineMetadata(key, [value], Test);
|
|
80
|
+
(0, chai_1.expect)(reflector.getAllAndMerge(key, [Test, Test])).to.eql([value, value]);
|
|
81
|
+
});
|
|
82
|
+
it("should reflect metadata of all targets and create an array", () => {
|
|
83
|
+
const key = "key";
|
|
84
|
+
const value = "value";
|
|
85
|
+
Reflect.defineMetadata(key, value, Test);
|
|
86
|
+
(0, chai_1.expect)(reflector.getAllAndMerge(key, [Test, Test])).to.eql([value, value]);
|
|
87
|
+
});
|
|
88
|
+
it("should reflect metadata of all targets and merge an object", () => {
|
|
89
|
+
const key = "key";
|
|
90
|
+
const value = { test: "test" };
|
|
91
|
+
Reflect.defineMetadata(key, value, Test);
|
|
92
|
+
(0, chai_1.expect)(reflector.getAllAndMerge(key, [Test, Test])).to.eql({
|
|
93
|
+
...value,
|
|
94
|
+
});
|
|
95
|
+
});
|
|
96
|
+
});
|
|
97
|
+
describe("getAllAndOverride", () => {
|
|
98
|
+
it("should reflect metadata of all targets and return a first not undefined value", () => {
|
|
99
|
+
const key = "key";
|
|
100
|
+
const value = "value";
|
|
101
|
+
Reflect.defineMetadata(key, value, Test);
|
|
102
|
+
(0, chai_1.expect)(reflector.getAllAndOverride(key, [Test, Test])).to.eql(value);
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
});
|