nesties 1.1.14 → 1.1.16
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/README.md +310 -56
- package/dist/index.cjs +245 -93
- package/dist/index.cjs.map +4 -4
- package/dist/index.mjs +234 -83
- package/dist/index.mjs.map +4 -4
- package/dist/src/i18n-module/i18n-factory.d.ts +2 -2
- package/dist/src/i18n-module/i18n-module.options.d.ts +2 -2
- package/dist/src/i18n-module/locale.pipe.d.ts +3 -3
- package/dist/src/resolver.d.ts +59 -6
- package/dist/src/token.guard.d.ts +3 -3
- package/dist/src/utility/index.d.ts +1 -0
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -39,6 +39,7 @@ __export(index_exports, {
|
|
|
39
39
|
As: () => As,
|
|
40
40
|
BlankPaginatedReturnMessageDto: () => BlankPaginatedReturnMessageDto,
|
|
41
41
|
BlankReturnMessageDto: () => BlankReturnMessageDto,
|
|
42
|
+
CombinedParamResolver: () => CombinedParamResolver,
|
|
42
43
|
DataBody: () => DataBody,
|
|
43
44
|
DataPipe: () => DataPipe,
|
|
44
45
|
DataQuery: () => DataQuery,
|
|
@@ -58,6 +59,9 @@ __export(index_exports, {
|
|
|
58
59
|
MergeParameterDecorators: () => MergeParameterDecorators,
|
|
59
60
|
MergePropertyDecorators: () => MergePropertyDecorators,
|
|
60
61
|
PaginatedReturnMessageDto: () => PaginatedReturnMessageDto,
|
|
62
|
+
ParamResolver: () => ParamResolver,
|
|
63
|
+
ParamResolverBase: () => ParamResolverBase,
|
|
64
|
+
ParamResolverPipe: () => ParamResolverPipe,
|
|
61
65
|
PutLocale: () => PutLocale,
|
|
62
66
|
RenameClass: () => RenameClass,
|
|
63
67
|
RequireToken: () => RequireToken,
|
|
@@ -71,7 +75,9 @@ __export(index_exports, {
|
|
|
71
75
|
createProvider: () => createProvider,
|
|
72
76
|
createResolver: () => createResolver,
|
|
73
77
|
fromAbortable: () => fromAbortable,
|
|
78
|
+
getApiProperty: () => getApiProperty,
|
|
74
79
|
getClassFromClassOrArray: () => getClassFromClassOrArray,
|
|
80
|
+
getParamResolver: () => getParamResolver,
|
|
75
81
|
takeUntilAbort: () => takeUntilAbort
|
|
76
82
|
});
|
|
77
83
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -90,6 +96,22 @@ function getClassFromClassOrArray(o) {
|
|
|
90
96
|
return o instanceof Array ? o[0] : o;
|
|
91
97
|
}
|
|
92
98
|
|
|
99
|
+
// src/utility/get-api-property.ts
|
|
100
|
+
var import_constants = require("@nestjs/swagger/dist/constants");
|
|
101
|
+
var getApiProperty = (cls, key) => {
|
|
102
|
+
let proto = cls.prototype;
|
|
103
|
+
while (proto && proto !== Object.prototype) {
|
|
104
|
+
const meta = Reflect.getMetadata(
|
|
105
|
+
import_constants.DECORATORS.API_MODEL_PROPERTIES,
|
|
106
|
+
proto,
|
|
107
|
+
key
|
|
108
|
+
);
|
|
109
|
+
if (meta) return meta;
|
|
110
|
+
proto = Object.getPrototypeOf(proto);
|
|
111
|
+
}
|
|
112
|
+
return {};
|
|
113
|
+
};
|
|
114
|
+
|
|
93
115
|
// src/insert-field.ts
|
|
94
116
|
function InsertField(cl, map, newName) {
|
|
95
117
|
const extendedCl = class extends cl {
|
|
@@ -270,12 +292,24 @@ var DataQuery = createDataPipeDec(import_common2.Query);
|
|
|
270
292
|
var DataBody = createDataPipeDec(import_common2.Body);
|
|
271
293
|
|
|
272
294
|
// src/token.guard.ts
|
|
273
|
-
var
|
|
295
|
+
var import_common4 = require("@nestjs/common");
|
|
274
296
|
var import_config = require("@nestjs/config");
|
|
275
297
|
var import_swagger5 = require("@nestjs/swagger");
|
|
276
298
|
|
|
277
299
|
// src/resolver.ts
|
|
300
|
+
var import_common3 = require("@nestjs/common");
|
|
301
|
+
var import_core = require("@nestjs/core");
|
|
278
302
|
var import_swagger4 = require("@nestjs/swagger");
|
|
303
|
+
|
|
304
|
+
// src/create-provider.ts
|
|
305
|
+
var createProvider = (options, factory) => {
|
|
306
|
+
return {
|
|
307
|
+
useFactory: factory,
|
|
308
|
+
...options
|
|
309
|
+
};
|
|
310
|
+
};
|
|
311
|
+
|
|
312
|
+
// src/resolver.ts
|
|
279
313
|
var coerceToString = (v) => {
|
|
280
314
|
if (v == null) return void 0;
|
|
281
315
|
if (v === false) return void 0;
|
|
@@ -320,45 +354,161 @@ function getQueryValue(req, key) {
|
|
|
320
354
|
}
|
|
321
355
|
return void 0;
|
|
322
356
|
}
|
|
323
|
-
var
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
357
|
+
var ParamResolverPipe = class {
|
|
358
|
+
constructor(moduleRef) {
|
|
359
|
+
this.moduleRef = moduleRef;
|
|
360
|
+
}
|
|
361
|
+
async transform(params, metadata) {
|
|
362
|
+
return params.resolver.resolve(params.req, this.moduleRef);
|
|
363
|
+
}
|
|
364
|
+
};
|
|
365
|
+
ParamResolverPipe = __decorateClass([
|
|
366
|
+
(0, import_common3.Injectable)(),
|
|
367
|
+
__decorateParam(0, (0, import_common3.Inject)(import_core.ModuleRef))
|
|
368
|
+
], ParamResolverPipe);
|
|
369
|
+
var usedParamResolverTokens = /* @__PURE__ */ new Set();
|
|
370
|
+
var ParamResolverBase = class {
|
|
371
|
+
toResolverFunction() {
|
|
372
|
+
return async (req, ref) => this.resolve(req, ref);
|
|
373
|
+
}
|
|
374
|
+
toParamDecorator() {
|
|
375
|
+
const dec = (0, import_common3.createParamDecorator)((_, ctx) => {
|
|
376
|
+
const req = ctx.switchToHttp().getRequest();
|
|
377
|
+
return { req, resolver: this };
|
|
378
|
+
});
|
|
379
|
+
return (...pipes) => dec(ParamResolverPipe, ...pipes);
|
|
380
|
+
}
|
|
381
|
+
// for override
|
|
382
|
+
toString() {
|
|
383
|
+
return "ParamResolverBase";
|
|
384
|
+
}
|
|
385
|
+
toRequestScopedProvider() {
|
|
386
|
+
const token = `PARAM_RESOLVER_${this.toString()}`;
|
|
387
|
+
let useToken = token;
|
|
388
|
+
if (usedParamResolverTokens.has(token)) {
|
|
389
|
+
let suffix = 0;
|
|
390
|
+
const tryToken = `${token}__${suffix}`;
|
|
391
|
+
while (usedParamResolverTokens.has(tryToken)) {
|
|
392
|
+
suffix++;
|
|
393
|
+
}
|
|
394
|
+
useToken = tryToken;
|
|
340
395
|
}
|
|
341
|
-
|
|
342
|
-
|
|
396
|
+
const provider = createProvider(
|
|
397
|
+
{
|
|
398
|
+
provide: useToken,
|
|
399
|
+
inject: [import_core.REQUEST, import_core.ModuleRef],
|
|
400
|
+
scope: import_common3.Scope.REQUEST
|
|
401
|
+
},
|
|
402
|
+
this.toResolverFunction()
|
|
403
|
+
);
|
|
404
|
+
return {
|
|
405
|
+
token: useToken,
|
|
406
|
+
provider,
|
|
407
|
+
inject: () => (0, import_common3.Inject)(useToken)
|
|
408
|
+
};
|
|
409
|
+
}
|
|
343
410
|
};
|
|
344
|
-
var
|
|
345
|
-
|
|
346
|
-
|
|
411
|
+
var ParamResolver = class extends ParamResolverBase {
|
|
412
|
+
constructor(input) {
|
|
413
|
+
super();
|
|
414
|
+
if (typeof input === "function") {
|
|
415
|
+
this.dynamic = input;
|
|
416
|
+
} else {
|
|
417
|
+
this.info = { ...input };
|
|
418
|
+
if (this.info.paramType === "header") {
|
|
419
|
+
this.info.paramName = this.info.paramName.toLowerCase();
|
|
420
|
+
}
|
|
421
|
+
}
|
|
422
|
+
}
|
|
423
|
+
resolve(req, ref) {
|
|
424
|
+
if (this.info) {
|
|
425
|
+
if (this.info.paramType === "header") {
|
|
426
|
+
const name = this.info.paramName;
|
|
427
|
+
let raw = getHeader(req, name);
|
|
428
|
+
if (name === "accept-language")
|
|
429
|
+
raw = pickPrimaryFromAcceptLanguage(raw);
|
|
430
|
+
return raw;
|
|
431
|
+
}
|
|
432
|
+
if (this.info.paramType === "query") {
|
|
433
|
+
return getQueryValue(req, this.info.paramName);
|
|
434
|
+
}
|
|
435
|
+
throw new Error(`Unsupported paramType: ${this.info.paramType}`);
|
|
436
|
+
} else if (this.dynamic) {
|
|
437
|
+
return this.dynamic(req, ref);
|
|
438
|
+
}
|
|
439
|
+
}
|
|
440
|
+
toString() {
|
|
441
|
+
const suffix = this.info ? `${this.info.paramType.toUpperCase()}_${this.info.paramName}` : `DYNAMIC`;
|
|
442
|
+
return `ParamResolver_${suffix}`;
|
|
443
|
+
}
|
|
444
|
+
toApiPropertyDecorator(extras = {}) {
|
|
445
|
+
return (extras2 = {}) => {
|
|
446
|
+
if (this.info) {
|
|
447
|
+
const paramType = this.info.paramType;
|
|
448
|
+
const apiOptions = {
|
|
449
|
+
name: this.info.paramName,
|
|
450
|
+
...extras,
|
|
451
|
+
...extras2
|
|
452
|
+
};
|
|
453
|
+
return paramType === "header" ? (0, import_swagger4.ApiHeader)(apiOptions) : paramType === "query" ? (0, import_swagger4.ApiQuery)({ type: "string", ...apiOptions }) : () => {
|
|
454
|
+
};
|
|
455
|
+
}
|
|
456
|
+
return () => {
|
|
457
|
+
};
|
|
347
458
|
};
|
|
348
459
|
}
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
}
|
|
355
|
-
|
|
356
|
-
|
|
460
|
+
};
|
|
461
|
+
var CombinedParamResolver = class extends ParamResolverBase {
|
|
462
|
+
constructor(resolvers) {
|
|
463
|
+
super();
|
|
464
|
+
this.resolvers = resolvers;
|
|
465
|
+
}
|
|
466
|
+
async resolve(req, ref) {
|
|
467
|
+
const result = {};
|
|
468
|
+
await Promise.all(
|
|
469
|
+
Object.entries(this.resolvers).map(async ([key, resolver]) => {
|
|
470
|
+
result[key] = await resolver.resolve(
|
|
471
|
+
req,
|
|
472
|
+
ref
|
|
473
|
+
);
|
|
474
|
+
})
|
|
475
|
+
);
|
|
476
|
+
return result;
|
|
477
|
+
}
|
|
478
|
+
toString() {
|
|
479
|
+
const suffix = Object.entries(this.resolvers).map(([key, resolver]) => `${key.toString()}_${resolver.toString()}`).join("__");
|
|
480
|
+
return `CombinedParamResolver_${suffix}`;
|
|
481
|
+
}
|
|
482
|
+
toApiPropertyDecorator(extras = {}) {
|
|
483
|
+
const decs = Object.values(this.resolvers).map(
|
|
484
|
+
(resolver) => resolver.toApiPropertyDecorator(extras)
|
|
485
|
+
);
|
|
486
|
+
return (extras2) => MergeClassOrMethodDecorators(
|
|
487
|
+
decs.map(
|
|
488
|
+
(dec) => dec({
|
|
489
|
+
...extras,
|
|
490
|
+
...extras2
|
|
491
|
+
})
|
|
492
|
+
)
|
|
493
|
+
);
|
|
494
|
+
}
|
|
495
|
+
};
|
|
496
|
+
var getParamResolver = (input) => {
|
|
497
|
+
if (input instanceof ParamResolverBase) {
|
|
498
|
+
return input;
|
|
499
|
+
}
|
|
500
|
+
return new ParamResolver(input);
|
|
501
|
+
};
|
|
502
|
+
var createResolver = (_options) => {
|
|
503
|
+
return getParamResolver(_options).toResolverFunction();
|
|
504
|
+
};
|
|
505
|
+
var ApiFromResolver = (_options, extras = {}) => {
|
|
506
|
+
return getParamResolver(_options).toApiPropertyDecorator(extras)();
|
|
357
507
|
};
|
|
358
508
|
|
|
359
509
|
// src/token.guard.ts
|
|
360
510
|
var import_typed_reflector = require("typed-reflector");
|
|
361
|
-
var
|
|
511
|
+
var import_core2 = require("@nestjs/core");
|
|
362
512
|
var reflector = new import_typed_reflector.Reflector();
|
|
363
513
|
var Metadata = new import_typed_reflector.MetadataSetter();
|
|
364
514
|
var defaultHeaderName = "x-server-token";
|
|
@@ -384,9 +534,10 @@ var TokenGuard = class {
|
|
|
384
534
|
config.resolver || { paramType: "header", paramName: defaultHeaderName }
|
|
385
535
|
);
|
|
386
536
|
const tokenSource = config.tokenSource || defaultConfigName;
|
|
537
|
+
const req = context.switchToHttp().getRequest();
|
|
387
538
|
const [tokenFromClient, tokenFromConfig] = await Promise.all([
|
|
388
|
-
resolver(
|
|
389
|
-
typeof tokenSource === "function" ? tokenSource(
|
|
539
|
+
resolver(req, this.moduleRef),
|
|
540
|
+
typeof tokenSource === "function" ? tokenSource(req, this.moduleRef) : this.config.get(tokenSource)
|
|
390
541
|
]);
|
|
391
542
|
if (tokenFromConfig && tokenFromConfig !== tokenFromClient) {
|
|
392
543
|
throw new BlankReturnMessageDto(
|
|
@@ -398,9 +549,9 @@ var TokenGuard = class {
|
|
|
398
549
|
}
|
|
399
550
|
};
|
|
400
551
|
TokenGuard = __decorateClass([
|
|
401
|
-
(0,
|
|
402
|
-
__decorateParam(0, (0,
|
|
403
|
-
__decorateParam(1, (0,
|
|
552
|
+
(0, import_common4.Injectable)(),
|
|
553
|
+
__decorateParam(0, (0, import_common4.Inject)(import_config.ConfigService)),
|
|
554
|
+
__decorateParam(1, (0, import_common4.Inject)(import_core2.ModuleRef))
|
|
404
555
|
], TokenGuard);
|
|
405
556
|
var RequireToken = (options = {}) => {
|
|
406
557
|
const swaggerDec = options.resolver ? ApiFromResolver(options.resolver, {
|
|
@@ -412,7 +563,7 @@ var RequireToken = (options = {}) => {
|
|
|
412
563
|
required: false
|
|
413
564
|
});
|
|
414
565
|
return MergeClassOrMethodDecorators([
|
|
415
|
-
(0,
|
|
566
|
+
(0, import_common4.UseGuards)(TokenGuard),
|
|
416
567
|
swaggerDec,
|
|
417
568
|
ApiError(
|
|
418
569
|
options.errorCode || defaultErrorCode,
|
|
@@ -424,7 +575,7 @@ var RequireToken = (options = {}) => {
|
|
|
424
575
|
|
|
425
576
|
// src/abort-utils.ts
|
|
426
577
|
var import_rxjs = require("rxjs");
|
|
427
|
-
var
|
|
578
|
+
var import_common5 = require("@nestjs/common");
|
|
428
579
|
|
|
429
580
|
// src/utility/abort-http-signal.ts
|
|
430
581
|
function toRawReq(req) {
|
|
@@ -490,7 +641,7 @@ var takeUntilAbort = (signal) => {
|
|
|
490
641
|
);
|
|
491
642
|
};
|
|
492
643
|
};
|
|
493
|
-
var As = (0,
|
|
644
|
+
var As = (0, import_common5.createParamDecorator)(
|
|
494
645
|
(_data, ctx) => {
|
|
495
646
|
const req = ctx.switchToHttp().getRequest();
|
|
496
647
|
return createAbortSignalFromHttp(req);
|
|
@@ -498,37 +649,27 @@ var As = (0, import_common4.createParamDecorator)(
|
|
|
498
649
|
);
|
|
499
650
|
|
|
500
651
|
// src/abortable-module/abortable.token.ts
|
|
501
|
-
var
|
|
652
|
+
var import_common7 = require("@nestjs/common");
|
|
502
653
|
var import_nfkit = require("nfkit");
|
|
503
654
|
|
|
504
655
|
// src/abortable-module/abort-signal.provider.ts
|
|
505
|
-
var
|
|
506
|
-
var
|
|
507
|
-
|
|
508
|
-
// src/create-provider.ts
|
|
509
|
-
var createProvider = (options, factory) => {
|
|
510
|
-
return {
|
|
511
|
-
useFactory: factory,
|
|
512
|
-
...options
|
|
513
|
-
};
|
|
514
|
-
};
|
|
515
|
-
|
|
516
|
-
// src/abortable-module/abort-signal.provider.ts
|
|
656
|
+
var import_common6 = require("@nestjs/common");
|
|
657
|
+
var import_core3 = require("@nestjs/core");
|
|
517
658
|
var ABORT_SIGNAL = Symbol(
|
|
518
659
|
"ABORT_SIGNAL"
|
|
519
660
|
);
|
|
520
661
|
var AbortSignalProvider = createProvider(
|
|
521
662
|
{
|
|
522
663
|
provide: ABORT_SIGNAL,
|
|
523
|
-
scope:
|
|
524
|
-
inject: [
|
|
664
|
+
scope: import_common6.Scope.REQUEST,
|
|
665
|
+
inject: [import_core3.REQUEST]
|
|
525
666
|
},
|
|
526
667
|
createAbortSignalFromHttp
|
|
527
668
|
);
|
|
528
|
-
var InjectAbortSignal = () => (0,
|
|
669
|
+
var InjectAbortSignal = () => (0, import_common6.Inject)(ABORT_SIGNAL);
|
|
529
670
|
|
|
530
671
|
// src/abortable-module/abortable.token.ts
|
|
531
|
-
var
|
|
672
|
+
var import_core4 = require("@nestjs/core");
|
|
532
673
|
var tokenMemo = /* @__PURE__ */ new Map();
|
|
533
674
|
var abortableToken = (token) => {
|
|
534
675
|
if (tokenMemo.has(token)) return tokenMemo.get(token);
|
|
@@ -549,7 +690,7 @@ function InjectAbortable(token) {
|
|
|
549
690
|
);
|
|
550
691
|
}
|
|
551
692
|
}
|
|
552
|
-
(0,
|
|
693
|
+
(0, import_common7.Inject)(abortableToken(actualToken))(target, propertyKey, parameterIndex);
|
|
553
694
|
};
|
|
554
695
|
}
|
|
555
696
|
function createAbortableProvider(token, opts) {
|
|
@@ -557,11 +698,11 @@ function createAbortableProvider(token, opts) {
|
|
|
557
698
|
return createProvider(
|
|
558
699
|
{
|
|
559
700
|
provide,
|
|
560
|
-
scope:
|
|
561
|
-
inject: [
|
|
701
|
+
scope: import_common7.Scope.REQUEST,
|
|
702
|
+
inject: [import_core4.ModuleRef, import_core4.REQUEST, ABORT_SIGNAL]
|
|
562
703
|
},
|
|
563
704
|
async (moduleRef, req, signal) => {
|
|
564
|
-
const ctxId =
|
|
705
|
+
const ctxId = import_core4.ContextIdFactory.getByRequest(req);
|
|
565
706
|
const svc = await moduleRef.resolve(token, ctxId, { strict: false });
|
|
566
707
|
if (svc == null) {
|
|
567
708
|
throw new Error(
|
|
@@ -576,7 +717,7 @@ function createAbortableProvider(token, opts) {
|
|
|
576
717
|
}
|
|
577
718
|
|
|
578
719
|
// src/abortable-module/abortable.module.ts
|
|
579
|
-
var
|
|
720
|
+
var import_common8 = require("@nestjs/common");
|
|
580
721
|
var AbortableModule = class {
|
|
581
722
|
static forRoot() {
|
|
582
723
|
return {
|
|
@@ -598,19 +739,19 @@ var AbortableModule = class {
|
|
|
598
739
|
}
|
|
599
740
|
};
|
|
600
741
|
AbortableModule = __decorateClass([
|
|
601
|
-
(0,
|
|
742
|
+
(0, import_common8.Module)({})
|
|
602
743
|
], AbortableModule);
|
|
603
744
|
|
|
604
745
|
// src/i18n-module/i18n.service.ts
|
|
605
|
-
var
|
|
746
|
+
var import_common10 = require("@nestjs/common");
|
|
606
747
|
|
|
607
748
|
// src/i18n-module/i18n-token.ts
|
|
608
|
-
var
|
|
609
|
-
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new
|
|
749
|
+
var import_common9 = require("@nestjs/common");
|
|
750
|
+
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new import_common9.ConfigurableModuleBuilder().build();
|
|
610
751
|
var I18nModuleOptionsToken = MODULE_OPTIONS_TOKEN;
|
|
611
752
|
|
|
612
753
|
// src/i18n-module/i18n.service.ts
|
|
613
|
-
var
|
|
754
|
+
var import_core5 = require("@nestjs/core");
|
|
614
755
|
var import_nfkit2 = require("nfkit");
|
|
615
756
|
var I18nService = class extends import_nfkit2.I18n {
|
|
616
757
|
constructor(i18nServiceOptions, moduleRef) {
|
|
@@ -618,7 +759,7 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
618
759
|
this.i18nServiceOptions = i18nServiceOptions;
|
|
619
760
|
this.moduleRef = moduleRef;
|
|
620
761
|
this._shadowMiddlewareMap = /* @__PURE__ */ new Map();
|
|
621
|
-
this.logger = new
|
|
762
|
+
this.logger = new import_common10.ConsoleLogger("I18nService");
|
|
622
763
|
this.resolver = createResolver(this.i18nServiceOptions.resolver);
|
|
623
764
|
}
|
|
624
765
|
middleware(mw, prior = false) {
|
|
@@ -626,7 +767,7 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
626
767
|
try {
|
|
627
768
|
return await mw(locale, text, next, ctx);
|
|
628
769
|
} catch (e) {
|
|
629
|
-
if (e instanceof
|
|
770
|
+
if (e instanceof import_common10.HttpException) {
|
|
630
771
|
throw e;
|
|
631
772
|
}
|
|
632
773
|
this.logger.error(`Error in i18n middleware: ${e.message}`);
|
|
@@ -645,26 +786,28 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
645
786
|
return this;
|
|
646
787
|
}
|
|
647
788
|
async getExactLocaleFromRequest(ctx) {
|
|
648
|
-
const
|
|
789
|
+
const req = ctx.switchToHttp().getRequest();
|
|
790
|
+
const locale = await this.resolver(req, this.moduleRef);
|
|
649
791
|
return this.getExactLocale(locale);
|
|
650
792
|
}
|
|
651
793
|
async translateRequest(ctx, obj) {
|
|
652
|
-
const
|
|
794
|
+
const req = ctx.switchToHttp().getRequest();
|
|
795
|
+
const locale = await this.resolver(req, this.moduleRef);
|
|
653
796
|
return this.translate(locale, obj, ctx);
|
|
654
797
|
}
|
|
655
798
|
};
|
|
656
799
|
I18nService = __decorateClass([
|
|
657
|
-
(0,
|
|
658
|
-
__decorateParam(0, (0,
|
|
659
|
-
__decorateParam(1, (0,
|
|
800
|
+
(0, import_common10.Injectable)(),
|
|
801
|
+
__decorateParam(0, (0, import_common10.Inject)(I18nModuleOptionsToken)),
|
|
802
|
+
__decorateParam(1, (0, import_common10.Inject)(import_core5.ModuleRef))
|
|
660
803
|
], I18nService);
|
|
661
804
|
|
|
662
805
|
// src/i18n-module/i18n.module.ts
|
|
663
|
-
var
|
|
806
|
+
var import_common12 = require("@nestjs/common");
|
|
664
807
|
|
|
665
808
|
// src/i18n-module/locale.pipe.ts
|
|
666
|
-
var
|
|
667
|
-
var
|
|
809
|
+
var import_common11 = require("@nestjs/common");
|
|
810
|
+
var import_core6 = require("@nestjs/core");
|
|
668
811
|
var LocalePipe = class {
|
|
669
812
|
constructor(i18nService, moduleRef) {
|
|
670
813
|
this.i18nService = i18nService;
|
|
@@ -674,7 +817,8 @@ var LocalePipe = class {
|
|
|
674
817
|
const resolver = ctx.resolver;
|
|
675
818
|
if (resolver) {
|
|
676
819
|
const _resolver = createResolver(resolver);
|
|
677
|
-
const
|
|
820
|
+
const req = ctx.ctx.switchToHttp().getRequest();
|
|
821
|
+
const locale = await _resolver(req, this.moduleRef);
|
|
678
822
|
return this.i18nService.getExactLocale(locale);
|
|
679
823
|
} else {
|
|
680
824
|
return this.i18nService.getExactLocaleFromRequest(ctx.ctx);
|
|
@@ -682,31 +826,33 @@ var LocalePipe = class {
|
|
|
682
826
|
}
|
|
683
827
|
};
|
|
684
828
|
LocalePipe = __decorateClass([
|
|
685
|
-
(0,
|
|
686
|
-
__decorateParam(0, (0,
|
|
687
|
-
__decorateParam(1, (0,
|
|
829
|
+
(0, import_common11.Injectable)(),
|
|
830
|
+
__decorateParam(0, (0, import_common11.Inject)(I18nService)),
|
|
831
|
+
__decorateParam(1, (0, import_common11.Inject)(import_core6.ModuleRef))
|
|
688
832
|
], LocalePipe);
|
|
689
|
-
var _dec = (0,
|
|
690
|
-
|
|
691
|
-
}
|
|
833
|
+
var _dec = (0, import_common11.createParamDecorator)(
|
|
834
|
+
(resolver, ctx) => {
|
|
835
|
+
return { ctx, resolver };
|
|
836
|
+
}
|
|
837
|
+
);
|
|
692
838
|
var PutLocale = (resolver) => _dec(resolver, LocalePipe);
|
|
693
839
|
|
|
694
840
|
// src/i18n-module/i18n.module.ts
|
|
695
841
|
var I18nModule = class extends ConfigurableModuleClass {
|
|
696
842
|
};
|
|
697
843
|
I18nModule = __decorateClass([
|
|
698
|
-
(0,
|
|
699
|
-
(0,
|
|
844
|
+
(0, import_common12.Global)(),
|
|
845
|
+
(0, import_common12.Module)({
|
|
700
846
|
providers: [I18nService, LocalePipe],
|
|
701
847
|
exports: [I18nService, LocalePipe]
|
|
702
848
|
})
|
|
703
849
|
], I18nModule);
|
|
704
850
|
|
|
705
851
|
// src/i18n-module/i18n-decorator.ts
|
|
706
|
-
var
|
|
852
|
+
var import_common14 = require("@nestjs/common");
|
|
707
853
|
|
|
708
854
|
// src/i18n-module/i18n.interceptor.ts
|
|
709
|
-
var
|
|
855
|
+
var import_common13 = require("@nestjs/common");
|
|
710
856
|
var import_rxjs2 = require("rxjs");
|
|
711
857
|
var import_operators = require("rxjs/operators");
|
|
712
858
|
var I18nInterceptor = class {
|
|
@@ -719,13 +865,13 @@ var I18nInterceptor = class {
|
|
|
719
865
|
(0, import_operators.mergeMap)((data) => this.i18nService.translateRequest(context, data)),
|
|
720
866
|
// 错误路径:若是 HttpException,把其 response 翻译后再抛
|
|
721
867
|
(0, import_operators.catchError)((err) => {
|
|
722
|
-
if (err instanceof
|
|
868
|
+
if (err instanceof import_common13.HttpException) {
|
|
723
869
|
const status = err.getStatus();
|
|
724
870
|
const resp = err.getResponse();
|
|
725
871
|
return (0, import_rxjs2.from)(this.i18nService.translateRequest(context, resp)).pipe(
|
|
726
872
|
(0, import_operators.mergeMap)(
|
|
727
873
|
(translated) => (0, import_rxjs2.throwError)(
|
|
728
|
-
() => new
|
|
874
|
+
() => new import_common13.HttpException(translated, status, { cause: err })
|
|
729
875
|
)
|
|
730
876
|
)
|
|
731
877
|
);
|
|
@@ -736,14 +882,14 @@ var I18nInterceptor = class {
|
|
|
736
882
|
}
|
|
737
883
|
};
|
|
738
884
|
I18nInterceptor = __decorateClass([
|
|
739
|
-
(0,
|
|
740
|
-
__decorateParam(0, (0,
|
|
885
|
+
(0, import_common13.Injectable)(),
|
|
886
|
+
__decorateParam(0, (0, import_common13.Inject)(I18nService))
|
|
741
887
|
], I18nInterceptor);
|
|
742
888
|
|
|
743
889
|
// src/i18n-module/i18n-decorator.ts
|
|
744
890
|
var createI18nDecorator = (options) => {
|
|
745
891
|
return () => MergeClassOrMethodDecorators([
|
|
746
|
-
(0,
|
|
892
|
+
(0, import_common14.UseInterceptors)(I18nInterceptor),
|
|
747
893
|
ApiFromResolver(options.resolver, {
|
|
748
894
|
description: "Locale for internationalization",
|
|
749
895
|
required: false,
|
|
@@ -783,6 +929,7 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
783
929
|
As,
|
|
784
930
|
BlankPaginatedReturnMessageDto,
|
|
785
931
|
BlankReturnMessageDto,
|
|
932
|
+
CombinedParamResolver,
|
|
786
933
|
DataBody,
|
|
787
934
|
DataPipe,
|
|
788
935
|
DataQuery,
|
|
@@ -802,6 +949,9 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
802
949
|
MergeParameterDecorators,
|
|
803
950
|
MergePropertyDecorators,
|
|
804
951
|
PaginatedReturnMessageDto,
|
|
952
|
+
ParamResolver,
|
|
953
|
+
ParamResolverBase,
|
|
954
|
+
ParamResolverPipe,
|
|
805
955
|
PutLocale,
|
|
806
956
|
RenameClass,
|
|
807
957
|
RequireToken,
|
|
@@ -815,7 +965,9 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
815
965
|
createProvider,
|
|
816
966
|
createResolver,
|
|
817
967
|
fromAbortable,
|
|
968
|
+
getApiProperty,
|
|
818
969
|
getClassFromClassOrArray,
|
|
970
|
+
getParamResolver,
|
|
819
971
|
takeUntilAbort
|
|
820
972
|
});
|
|
821
973
|
//# sourceMappingURL=index.cjs.map
|