@nestjs/common 9.0.10 → 9.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,3 +1,4 @@
1
1
  export declare const CACHE_MANAGER = "CACHE_MANAGER";
2
2
  export declare const CACHE_KEY_METADATA = "cache_module:cache_key";
3
3
  export declare const CACHE_TTL_METADATA = "cache_module:cache_ttl";
4
+ export declare const CACHE_MODULE_OPTIONS: string | symbol;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.CACHE_TTL_METADATA = exports.CACHE_KEY_METADATA = exports.CACHE_MANAGER = void 0;
3
+ exports.CACHE_MODULE_OPTIONS = exports.CACHE_TTL_METADATA = exports.CACHE_KEY_METADATA = exports.CACHE_MANAGER = void 0;
4
+ const cache_module_definition_1 = require("./cache.module-definition");
4
5
  exports.CACHE_MANAGER = 'CACHE_MANAGER';
5
6
  exports.CACHE_KEY_METADATA = 'cache_module:cache_key';
6
7
  exports.CACHE_TTL_METADATA = 'cache_module:cache_ttl';
8
+ exports.CACHE_MODULE_OPTIONS = cache_module_definition_1.MODULE_OPTIONS_TOKEN;
@@ -5,6 +5,7 @@ const tslib_1 = require("tslib");
5
5
  const rxjs_1 = require("rxjs");
6
6
  const operators_1 = require("rxjs/operators");
7
7
  const decorators_1 = require("../../decorators");
8
+ const logger_service_1 = require("../../services/logger.service");
8
9
  const shared_utils_1 = require("../../utils/shared.utils");
9
10
  const cache_constants_1 = require("../cache.constants");
10
11
  const HTTP_ADAPTER_HOST = 'HttpAdapterHost';
@@ -30,9 +31,14 @@ let CacheInterceptor = class CacheInterceptor {
30
31
  const ttl = (0, shared_utils_1.isFunction)(ttlValueOrFactory)
31
32
  ? await ttlValueOrFactory(context)
32
33
  : ttlValueOrFactory;
33
- return next.handle().pipe((0, operators_1.tap)(response => {
34
+ return next.handle().pipe((0, operators_1.tap)(async (response) => {
34
35
  const args = (0, shared_utils_1.isNil)(ttl) ? [key, response] : [key, response, { ttl }];
35
- this.cacheManager.set(...args);
36
+ try {
37
+ await this.cacheManager.set(...args);
38
+ }
39
+ catch (err) {
40
+ logger_service_1.Logger.error(`An error has occured when inserting "key: ${key}", "value: ${response}"`, 'CacheInterceptor');
41
+ }
36
42
  }));
37
43
  }
38
44
  catch (_b) {
package/constants.d.ts CHANGED
@@ -17,8 +17,8 @@ export declare const METHOD_METADATA = "method";
17
17
  export declare const ROUTE_ARGS_METADATA = "__routeArguments__";
18
18
  export declare const CUSTOM_ROUTE_ARGS_METADATA = "__customRouteArgs__";
19
19
  /**
20
- * @deprecated Use `CUSTOM_ROUTE_ARGS_METADATA` instead
21
- */
20
+ * @deprecated Use `CUSTOM_ROUTE_ARGS_METADATA` instead
21
+ */
22
22
  export declare const CUSTOM_ROUTE_AGRS_METADATA = "__customRouteArgs__";
23
23
  export declare const EXCEPTION_FILTERS_METADATA = "__exceptionFilters__";
24
24
  export declare const FILTER_CATCH_EXCEPTIONS = "__filterCatchExceptions__";
package/constants.js CHANGED
@@ -20,8 +20,8 @@ exports.METHOD_METADATA = 'method';
20
20
  exports.ROUTE_ARGS_METADATA = '__routeArguments__';
21
21
  exports.CUSTOM_ROUTE_ARGS_METADATA = '__customRouteArgs__';
22
22
  /**
23
- * @deprecated Use `CUSTOM_ROUTE_ARGS_METADATA` instead
24
- */
23
+ * @deprecated Use `CUSTOM_ROUTE_ARGS_METADATA` instead
24
+ */
25
25
  exports.CUSTOM_ROUTE_AGRS_METADATA = exports.CUSTOM_ROUTE_ARGS_METADATA;
26
26
  exports.EXCEPTION_FILTERS_METADATA = '__exceptionFilters__';
27
27
  exports.FILTER_CATCH_EXCEPTIONS = '__filterCatchExceptions__';
@@ -1,7 +1,7 @@
1
1
  import { DynamicModule } from '../interfaces';
2
2
  import { Logger } from '../services/logger.service';
3
3
  import { DEFAULT_FACTORY_CLASS_METHOD_KEY, DEFAULT_METHOD_KEY } from './constants';
4
- import { ConfigurableModuleHost } from './interfaces/configurable-module-host.interface';
4
+ import { ConfigurableModuleHost } from './interfaces';
5
5
  /**
6
6
  * @publicApi
7
7
  */
@@ -4,8 +4,7 @@ exports.ConfigurableModuleBuilder = void 0;
4
4
  const logger_service_1 = require("../services/logger.service");
5
5
  const random_string_generator_util_1 = require("../utils/random-string-generator.util");
6
6
  const constants_1 = require("./constants");
7
- const generate_options_injection_token_util_1 = require("./utils/generate-options-injection-token.util");
8
- const get_injection_providers_util_1 = require("./utils/get-injection-providers.util");
7
+ const utils_1 = require("./utils");
9
8
  /**
10
9
  * Factory that lets you create configurable modules and
11
10
  * provides a way to reduce the majority of dynamic module boilerplate.
@@ -88,7 +87,7 @@ class ConfigurableModuleBuilder {
88
87
  (_b = this.factoryClassMethodKey) !== null && _b !== void 0 ? _b : (this.factoryClassMethodKey = constants_1.DEFAULT_FACTORY_CLASS_METHOD_KEY);
89
88
  (_c = (_e = this.options).optionsInjectionToken) !== null && _c !== void 0 ? _c : (_e.optionsInjectionToken = this.options.moduleName
90
89
  ? this.constructInjectionTokenString()
91
- : (0, generate_options_injection_token_util_1.generateOptionsInjectionToken)());
90
+ : (0, utils_1.generateOptionsInjectionToken)());
92
91
  (_d = this.transformModuleDefinition) !== null && _d !== void 0 ? _d : (this.transformModuleDefinition = definition => definition);
93
92
  return {
94
93
  ConfigurableModuleClass: this.createConfigurableModuleCls(),
@@ -160,7 +159,7 @@ class ConfigurableModuleBuilder {
160
159
  if (options.inject && options.provideInjectionTokensFrom) {
161
160
  return [
162
161
  this.createAsyncOptionsProvider(options),
163
- ...(0, get_injection_providers_util_1.getInjectionProviders)(options.provideInjectionTokensFrom, options.inject),
162
+ ...(0, utils_1.getInjectionProviders)(options.provideInjectionTokensFrom, options.inject),
164
163
  ];
165
164
  }
166
165
  return [this.createAsyncOptionsProvider(options)];
@@ -10,4 +10,4 @@ import { ConfigurableModuleAsyncOptions } from './configurable-module-async-opti
10
10
  */
11
11
  export declare type ConfigurableModuleCls<ModuleOptions, MethodKey extends string = typeof DEFAULT_METHOD_KEY, FactoryClassMethodKey extends string = typeof DEFAULT_FACTORY_CLASS_METHOD_KEY, ExtraModuleDefinitionOptions = {}> = {
12
12
  new (): any;
13
- } & Record<`${MethodKey}`, (options: ModuleOptions & ExtraModuleDefinitionOptions) => DynamicModule> & Record<`${MethodKey}Async`, (options: ConfigurableModuleAsyncOptions<ModuleOptions, FactoryClassMethodKey> & ExtraModuleDefinitionOptions) => DynamicModule>;
13
+ } & Record<`${MethodKey}`, (options: ModuleOptions & Partial<ExtraModuleDefinitionOptions>) => DynamicModule> & Record<`${MethodKey}Async`, (options: ConfigurableModuleAsyncOptions<ModuleOptions, FactoryClassMethodKey> & Partial<ExtraModuleDefinitionOptions>) => DynamicModule>;
@@ -42,7 +42,7 @@ export interface ConfigurableModuleHost<ModuleOptions = Record<string, unknown>,
42
42
  * }
43
43
  * ```
44
44
  */
45
- ASYNC_OPTIONS_TYPE: ConfigurableModuleAsyncOptions<ModuleOptions, FactoryClassMethodKey> & ExtraModuleDefinitionOptions;
45
+ ASYNC_OPTIONS_TYPE: ConfigurableModuleAsyncOptions<ModuleOptions, FactoryClassMethodKey> & Partial<ExtraModuleDefinitionOptions>;
46
46
  /**
47
47
  * Can be used to auto-infer the compound "module options" type (options interface + extra module definition options).
48
48
  * Note: this property is not supposed to be used as a value.
@@ -58,5 +58,5 @@ export interface ConfigurableModuleHost<ModuleOptions = Record<string, unknown>,
58
58
  * }
59
59
  * ```
60
60
  */
61
- OPTIONS_TYPE: ModuleOptions & ExtraModuleDefinitionOptions;
61
+ OPTIONS_TYPE: ModuleOptions & Partial<ExtraModuleDefinitionOptions>;
62
62
  }
@@ -0,0 +1,2 @@
1
+ export * from './generate-options-injection-token.util';
2
+ export * from './get-injection-providers.util';
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const tslib_1 = require("tslib");
4
+ tslib_1.__exportStar(require("./generate-options-injection-token.util"), exports);
5
+ tslib_1.__exportStar(require("./get-injection-providers.util"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nestjs/common",
3
- "version": "9.0.10",
3
+ "version": "9.1.1",
4
4
  "description": "Nest - modern, fast, powerful node.js web framework (@common)",
5
5
  "author": "Kamil Mysliwiec",
6
6
  "homepage": "https://nestjs.com",
@@ -19,7 +19,7 @@
19
19
  "dependencies": {
20
20
  "iterare": "1.2.1",
21
21
  "tslib": "2.4.0",
22
- "uuid": "8.3.2"
22
+ "uuid": "9.0.0"
23
23
  },
24
24
  "peerDependencies": {
25
25
  "cache-manager": "*",
@@ -1,3 +1,4 @@
1
+ import { ClassSerializerContextOptions } from './class-serializer.interfaces';
1
2
  import { Observable } from 'rxjs';
2
3
  import { CallHandler, ExecutionContext, NestInterceptor } from '../interfaces';
3
4
  import { ClassTransformOptions } from '../interfaces/external/class-transform-options.interface';
@@ -16,7 +17,7 @@ export declare class ClassSerializerInterceptor implements NestInterceptor {
16
17
  /**
17
18
  * Serializes responses that are non-null objects nor streamable files.
18
19
  */
19
- serialize(response: PlainLiteralObject | Array<PlainLiteralObject>, options: ClassTransformOptions): PlainLiteralObject | Array<PlainLiteralObject>;
20
- transformToPlain(plainOrClass: any, options: ClassTransformOptions): PlainLiteralObject;
21
- protected getContextOptions(context: ExecutionContext): ClassTransformOptions | undefined;
20
+ serialize(response: PlainLiteralObject | Array<PlainLiteralObject>, options: ClassSerializerContextOptions): PlainLiteralObject | Array<PlainLiteralObject>;
21
+ transformToPlain(plainOrClass: any, options: ClassSerializerContextOptions): PlainLiteralObject;
22
+ protected getContextOptions(context: ExecutionContext): ClassSerializerContextOptions | undefined;
22
23
  }
@@ -43,9 +43,17 @@ let ClassSerializerInterceptor = class ClassSerializerInterceptor {
43
43
  : this.transformToPlain(response, options);
44
44
  }
45
45
  transformToPlain(plainOrClass, options) {
46
- return plainOrClass
47
- ? classTransformer.classToPlain(plainOrClass, options)
48
- : plainOrClass;
46
+ if (!plainOrClass) {
47
+ return plainOrClass;
48
+ }
49
+ if (!options.type) {
50
+ return classTransformer.classToPlain(plainOrClass, options);
51
+ }
52
+ if (plainOrClass instanceof options.type) {
53
+ return classTransformer.classToPlain(plainOrClass, options);
54
+ }
55
+ const instance = classTransformer.plainToClass(options.type, plainOrClass);
56
+ return classTransformer.classToPlain(instance, options);
49
57
  }
50
58
  getContextOptions(context) {
51
59
  return this.reflector.getAllAndOverride(class_serializer_constants_1.CLASS_SERIALIZER_OPTIONS, [
@@ -0,0 +1,5 @@
1
+ import { ClassTransformOptions } from '../interfaces/external/class-transform-options.interface';
2
+ import { Type } from '../interfaces';
3
+ export interface ClassSerializerContextOptions extends ClassTransformOptions {
4
+ type?: Type<any>;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,2 +1,2 @@
1
- import { ClassTransformOptions } from '../../interfaces/external/class-transform-options.interface';
2
- export declare const SerializeOptions: (options: ClassTransformOptions) => import("../../decorators").CustomDecorator<string>;
1
+ import { ClassSerializerContextOptions } from '../class-serializer.interfaces';
2
+ export declare const SerializeOptions: (options: ClassSerializerContextOptions) => import("../../decorators").CustomDecorator<string>;
@@ -1,2 +1,3 @@
1
1
  export * from './class-serializer.interceptor';
2
2
  export * from './decorators';
3
+ export * from './class-serializer.interfaces';
@@ -3,3 +3,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const tslib_1 = require("tslib");
4
4
  tslib_1.__exportStar(require("./class-serializer.interceptor"), exports);
5
5
  tslib_1.__exportStar(require("./decorators"), exports);
6
+ tslib_1.__exportStar(require("./class-serializer.interfaces"), exports);
@@ -133,7 +133,7 @@ let ConsoleLogger = ConsoleLogger_1 = class ConsoleLogger {
133
133
  return `${pidMessage}${this.getTimestamp()} ${formattedLogLevel} ${contextMessage}${output}${timestampDiff}\n`;
134
134
  }
135
135
  stringifyMessage(message, logLevel) {
136
- return (0, shared_utils_1.isPlainObject)(message)
136
+ return (0, shared_utils_1.isPlainObject)(message) || Array.isArray(message)
137
137
  ? `${this.colorize('Object:', logLevel)}\n${JSON.stringify(message, (key, value) => typeof value === 'bigint' ? value.toString() : value, 2)}\n`
138
138
  : this.colorize(message, logLevel);
139
139
  }