@iamnnort/nestjs-serializer 2.2.1 → 2.2.3

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/dist/index.d.mts CHANGED
@@ -12,6 +12,7 @@ declare const SerializeRelation: (configs: {
12
12
  fieldName?: string;
13
13
  fieldTransform?: (entity: any) => any | Promise<any>;
14
14
  }[]) => (target: object, name: string) => void;
15
+ declare const SerializerQuery: (...dataOrPipes: unknown[]) => ParameterDecorator;
15
16
 
16
17
  declare global {
17
18
  var serializerFieldConfigs: SerializerFieldConfig[];
@@ -29,6 +30,9 @@ type SerializerConfig = {
29
30
  globalLimitedScopes?: string[];
30
31
  globalSecretScopes?: string[];
31
32
  };
33
+ type SerializerRequest = Request & {
34
+ scopes?: string[];
35
+ };
32
36
 
33
37
  declare class SerializerService {
34
38
  config: SerializerConfig;
@@ -75,4 +79,4 @@ declare const ConfigurableModuleClass: _nestjs_common.ConfigurableModuleCls<Seri
75
79
  declare class SerializerModule extends ConfigurableModuleClass {
76
80
  }
77
81
 
78
- export { SerializeField, SerializeRelation, type SerializerConfig, type SerializerFieldConfig, SerializerIdInterceptor, SerializerInterceptor, SerializerModule, SerializerService };
82
+ export { SerializeField, SerializeRelation, type SerializerConfig, type SerializerFieldConfig, SerializerIdInterceptor, SerializerInterceptor, SerializerModule, SerializerQuery, type SerializerRequest, SerializerService };
package/dist/index.d.ts CHANGED
@@ -12,6 +12,7 @@ declare const SerializeRelation: (configs: {
12
12
  fieldName?: string;
13
13
  fieldTransform?: (entity: any) => any | Promise<any>;
14
14
  }[]) => (target: object, name: string) => void;
15
+ declare const SerializerQuery: (...dataOrPipes: unknown[]) => ParameterDecorator;
15
16
 
16
17
  declare global {
17
18
  var serializerFieldConfigs: SerializerFieldConfig[];
@@ -29,6 +30,9 @@ type SerializerConfig = {
29
30
  globalLimitedScopes?: string[];
30
31
  globalSecretScopes?: string[];
31
32
  };
33
+ type SerializerRequest = Request & {
34
+ scopes?: string[];
35
+ };
32
36
 
33
37
  declare class SerializerService {
34
38
  config: SerializerConfig;
@@ -75,4 +79,4 @@ declare const ConfigurableModuleClass: _nestjs_common.ConfigurableModuleCls<Seri
75
79
  declare class SerializerModule extends ConfigurableModuleClass {
76
80
  }
77
81
 
78
- export { SerializeField, SerializeRelation, type SerializerConfig, type SerializerFieldConfig, SerializerIdInterceptor, SerializerInterceptor, SerializerModule, SerializerService };
82
+ export { SerializeField, SerializeRelation, type SerializerConfig, type SerializerFieldConfig, SerializerIdInterceptor, SerializerInterceptor, SerializerModule, SerializerQuery, type SerializerRequest, SerializerService };
package/dist/index.js CHANGED
@@ -8991,6 +8991,7 @@ var require_operators = __commonJS({
8991
8991
  });
8992
8992
 
8993
8993
  // src/decorator.ts
8994
+ var _common = require('@nestjs/common');
8994
8995
  global.serializerFieldConfigs = [];
8995
8996
  var SerializeField = /* @__PURE__ */ __name((configs) => {
8996
8997
  return (target, name) => {
@@ -9018,10 +9019,14 @@ var SerializeRelation = /* @__PURE__ */ __name((configs) => {
9018
9019
  });
9019
9020
  };
9020
9021
  }, "SerializeRelation");
9022
+ var SerializerQuery = _common.createParamDecorator.call(void 0, (data, ctx) => {
9023
+ const request = ctx.switchToHttp().getRequest();
9024
+ return request.scopes;
9025
+ });
9021
9026
 
9022
9027
  // src/interceptor.ts
9023
9028
  var import_operators = __toESM(require_operators());
9024
- var _common = require('@nestjs/common');
9029
+
9025
9030
 
9026
9031
  // src/service.ts
9027
9032
  var _lodash = require('lodash');
@@ -9221,27 +9226,28 @@ var SerializerInterceptor = /* @__PURE__ */ __name((config) => {
9221
9226
  this.serializerService = serializerService;
9222
9227
  }
9223
9228
  intercept(ctx, next) {
9224
- const scopes = this.getScopes(ctx);
9229
+ const request = ctx.switchToHttp().getRequest();
9230
+ request.scopes = this.getScopes(ctx);
9225
9231
  return next.handle().pipe((0, import_operators.map)(async (responsePromise) => {
9226
9232
  const response = await responsePromise;
9227
- if (!scopes && !config.fields) {
9233
+ if (!request.scopes && !config.fields) {
9228
9234
  return response;
9229
9235
  }
9230
9236
  return this.serializerService.transform(response, {
9231
- scopes,
9237
+ scopes: request.scopes,
9232
9238
  fields: config.fields
9233
9239
  });
9234
9240
  }));
9235
9241
  }
9236
9242
  getScopes(ctx) {
9237
9243
  const request = ctx.switchToHttp().getRequest();
9238
- if (request.query.extended) {
9244
+ if (request.query.extended === "true") {
9239
9245
  return config.extendedScopes || config.scopes;
9240
9246
  }
9241
- if (request.query.limited) {
9247
+ if (request.query.limited === "true") {
9242
9248
  return config.limitedScopes || this.serializerService.config.globalLimitedScopes || config.scopes;
9243
9249
  }
9244
- if (request.query.secret) {
9250
+ if (request.query.secret === "true") {
9245
9251
  return config.secretScopes || this.serializerService.config.globalSecretScopes || config.scopes;
9246
9252
  }
9247
9253
  if (request.query.scopes && config.allowedScopes) {
@@ -9304,5 +9310,6 @@ SerializerModule = exports.SerializerModule = _ts_decorate3([
9304
9310
 
9305
9311
 
9306
9312
 
9307
- exports.SerializeField = SerializeField; exports.SerializeRelation = SerializeRelation; exports.SerializerIdInterceptor = SerializerIdInterceptor; exports.SerializerInterceptor = SerializerInterceptor; exports.SerializerModule = SerializerModule; exports.SerializerService = SerializerService;
9313
+
9314
+ exports.SerializeField = SerializeField; exports.SerializeRelation = SerializeRelation; exports.SerializerIdInterceptor = SerializerIdInterceptor; exports.SerializerInterceptor = SerializerInterceptor; exports.SerializerModule = SerializerModule; exports.SerializerQuery = SerializerQuery; exports.SerializerService = SerializerService;
9308
9315
  //# sourceMappingURL=index.js.map