nesties 1.1.15 → 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 +227 -93
- package/dist/index.cjs.map +4 -4
- package/dist/index.mjs +217 -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/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,
|
|
@@ -73,6 +77,7 @@ __export(index_exports, {
|
|
|
73
77
|
fromAbortable: () => fromAbortable,
|
|
74
78
|
getApiProperty: () => getApiProperty,
|
|
75
79
|
getClassFromClassOrArray: () => getClassFromClassOrArray,
|
|
80
|
+
getParamResolver: () => getParamResolver,
|
|
76
81
|
takeUntilAbort: () => takeUntilAbort
|
|
77
82
|
});
|
|
78
83
|
module.exports = __toCommonJS(index_exports);
|
|
@@ -287,12 +292,24 @@ var DataQuery = createDataPipeDec(import_common2.Query);
|
|
|
287
292
|
var DataBody = createDataPipeDec(import_common2.Body);
|
|
288
293
|
|
|
289
294
|
// src/token.guard.ts
|
|
290
|
-
var
|
|
295
|
+
var import_common4 = require("@nestjs/common");
|
|
291
296
|
var import_config = require("@nestjs/config");
|
|
292
297
|
var import_swagger5 = require("@nestjs/swagger");
|
|
293
298
|
|
|
294
299
|
// src/resolver.ts
|
|
300
|
+
var import_common3 = require("@nestjs/common");
|
|
301
|
+
var import_core = require("@nestjs/core");
|
|
295
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
|
|
296
313
|
var coerceToString = (v) => {
|
|
297
314
|
if (v == null) return void 0;
|
|
298
315
|
if (v === false) return void 0;
|
|
@@ -337,45 +354,161 @@ function getQueryValue(req, key) {
|
|
|
337
354
|
}
|
|
338
355
|
return void 0;
|
|
339
356
|
}
|
|
340
|
-
var
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
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;
|
|
357
395
|
}
|
|
358
|
-
|
|
359
|
-
|
|
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
|
+
}
|
|
360
410
|
};
|
|
361
|
-
var
|
|
362
|
-
|
|
363
|
-
|
|
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
|
+
};
|
|
364
458
|
};
|
|
365
459
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
|
|
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)();
|
|
374
507
|
};
|
|
375
508
|
|
|
376
509
|
// src/token.guard.ts
|
|
377
510
|
var import_typed_reflector = require("typed-reflector");
|
|
378
|
-
var
|
|
511
|
+
var import_core2 = require("@nestjs/core");
|
|
379
512
|
var reflector = new import_typed_reflector.Reflector();
|
|
380
513
|
var Metadata = new import_typed_reflector.MetadataSetter();
|
|
381
514
|
var defaultHeaderName = "x-server-token";
|
|
@@ -401,9 +534,10 @@ var TokenGuard = class {
|
|
|
401
534
|
config.resolver || { paramType: "header", paramName: defaultHeaderName }
|
|
402
535
|
);
|
|
403
536
|
const tokenSource = config.tokenSource || defaultConfigName;
|
|
537
|
+
const req = context.switchToHttp().getRequest();
|
|
404
538
|
const [tokenFromClient, tokenFromConfig] = await Promise.all([
|
|
405
|
-
resolver(
|
|
406
|
-
typeof tokenSource === "function" ? tokenSource(
|
|
539
|
+
resolver(req, this.moduleRef),
|
|
540
|
+
typeof tokenSource === "function" ? tokenSource(req, this.moduleRef) : this.config.get(tokenSource)
|
|
407
541
|
]);
|
|
408
542
|
if (tokenFromConfig && tokenFromConfig !== tokenFromClient) {
|
|
409
543
|
throw new BlankReturnMessageDto(
|
|
@@ -415,9 +549,9 @@ var TokenGuard = class {
|
|
|
415
549
|
}
|
|
416
550
|
};
|
|
417
551
|
TokenGuard = __decorateClass([
|
|
418
|
-
(0,
|
|
419
|
-
__decorateParam(0, (0,
|
|
420
|
-
__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))
|
|
421
555
|
], TokenGuard);
|
|
422
556
|
var RequireToken = (options = {}) => {
|
|
423
557
|
const swaggerDec = options.resolver ? ApiFromResolver(options.resolver, {
|
|
@@ -429,7 +563,7 @@ var RequireToken = (options = {}) => {
|
|
|
429
563
|
required: false
|
|
430
564
|
});
|
|
431
565
|
return MergeClassOrMethodDecorators([
|
|
432
|
-
(0,
|
|
566
|
+
(0, import_common4.UseGuards)(TokenGuard),
|
|
433
567
|
swaggerDec,
|
|
434
568
|
ApiError(
|
|
435
569
|
options.errorCode || defaultErrorCode,
|
|
@@ -441,7 +575,7 @@ var RequireToken = (options = {}) => {
|
|
|
441
575
|
|
|
442
576
|
// src/abort-utils.ts
|
|
443
577
|
var import_rxjs = require("rxjs");
|
|
444
|
-
var
|
|
578
|
+
var import_common5 = require("@nestjs/common");
|
|
445
579
|
|
|
446
580
|
// src/utility/abort-http-signal.ts
|
|
447
581
|
function toRawReq(req) {
|
|
@@ -507,7 +641,7 @@ var takeUntilAbort = (signal) => {
|
|
|
507
641
|
);
|
|
508
642
|
};
|
|
509
643
|
};
|
|
510
|
-
var As = (0,
|
|
644
|
+
var As = (0, import_common5.createParamDecorator)(
|
|
511
645
|
(_data, ctx) => {
|
|
512
646
|
const req = ctx.switchToHttp().getRequest();
|
|
513
647
|
return createAbortSignalFromHttp(req);
|
|
@@ -515,37 +649,27 @@ var As = (0, import_common4.createParamDecorator)(
|
|
|
515
649
|
);
|
|
516
650
|
|
|
517
651
|
// src/abortable-module/abortable.token.ts
|
|
518
|
-
var
|
|
652
|
+
var import_common7 = require("@nestjs/common");
|
|
519
653
|
var import_nfkit = require("nfkit");
|
|
520
654
|
|
|
521
655
|
// src/abortable-module/abort-signal.provider.ts
|
|
522
|
-
var
|
|
523
|
-
var
|
|
524
|
-
|
|
525
|
-
// src/create-provider.ts
|
|
526
|
-
var createProvider = (options, factory) => {
|
|
527
|
-
return {
|
|
528
|
-
useFactory: factory,
|
|
529
|
-
...options
|
|
530
|
-
};
|
|
531
|
-
};
|
|
532
|
-
|
|
533
|
-
// src/abortable-module/abort-signal.provider.ts
|
|
656
|
+
var import_common6 = require("@nestjs/common");
|
|
657
|
+
var import_core3 = require("@nestjs/core");
|
|
534
658
|
var ABORT_SIGNAL = Symbol(
|
|
535
659
|
"ABORT_SIGNAL"
|
|
536
660
|
);
|
|
537
661
|
var AbortSignalProvider = createProvider(
|
|
538
662
|
{
|
|
539
663
|
provide: ABORT_SIGNAL,
|
|
540
|
-
scope:
|
|
541
|
-
inject: [
|
|
664
|
+
scope: import_common6.Scope.REQUEST,
|
|
665
|
+
inject: [import_core3.REQUEST]
|
|
542
666
|
},
|
|
543
667
|
createAbortSignalFromHttp
|
|
544
668
|
);
|
|
545
|
-
var InjectAbortSignal = () => (0,
|
|
669
|
+
var InjectAbortSignal = () => (0, import_common6.Inject)(ABORT_SIGNAL);
|
|
546
670
|
|
|
547
671
|
// src/abortable-module/abortable.token.ts
|
|
548
|
-
var
|
|
672
|
+
var import_core4 = require("@nestjs/core");
|
|
549
673
|
var tokenMemo = /* @__PURE__ */ new Map();
|
|
550
674
|
var abortableToken = (token) => {
|
|
551
675
|
if (tokenMemo.has(token)) return tokenMemo.get(token);
|
|
@@ -566,7 +690,7 @@ function InjectAbortable(token) {
|
|
|
566
690
|
);
|
|
567
691
|
}
|
|
568
692
|
}
|
|
569
|
-
(0,
|
|
693
|
+
(0, import_common7.Inject)(abortableToken(actualToken))(target, propertyKey, parameterIndex);
|
|
570
694
|
};
|
|
571
695
|
}
|
|
572
696
|
function createAbortableProvider(token, opts) {
|
|
@@ -574,11 +698,11 @@ function createAbortableProvider(token, opts) {
|
|
|
574
698
|
return createProvider(
|
|
575
699
|
{
|
|
576
700
|
provide,
|
|
577
|
-
scope:
|
|
578
|
-
inject: [
|
|
701
|
+
scope: import_common7.Scope.REQUEST,
|
|
702
|
+
inject: [import_core4.ModuleRef, import_core4.REQUEST, ABORT_SIGNAL]
|
|
579
703
|
},
|
|
580
704
|
async (moduleRef, req, signal) => {
|
|
581
|
-
const ctxId =
|
|
705
|
+
const ctxId = import_core4.ContextIdFactory.getByRequest(req);
|
|
582
706
|
const svc = await moduleRef.resolve(token, ctxId, { strict: false });
|
|
583
707
|
if (svc == null) {
|
|
584
708
|
throw new Error(
|
|
@@ -593,7 +717,7 @@ function createAbortableProvider(token, opts) {
|
|
|
593
717
|
}
|
|
594
718
|
|
|
595
719
|
// src/abortable-module/abortable.module.ts
|
|
596
|
-
var
|
|
720
|
+
var import_common8 = require("@nestjs/common");
|
|
597
721
|
var AbortableModule = class {
|
|
598
722
|
static forRoot() {
|
|
599
723
|
return {
|
|
@@ -615,19 +739,19 @@ var AbortableModule = class {
|
|
|
615
739
|
}
|
|
616
740
|
};
|
|
617
741
|
AbortableModule = __decorateClass([
|
|
618
|
-
(0,
|
|
742
|
+
(0, import_common8.Module)({})
|
|
619
743
|
], AbortableModule);
|
|
620
744
|
|
|
621
745
|
// src/i18n-module/i18n.service.ts
|
|
622
|
-
var
|
|
746
|
+
var import_common10 = require("@nestjs/common");
|
|
623
747
|
|
|
624
748
|
// src/i18n-module/i18n-token.ts
|
|
625
|
-
var
|
|
626
|
-
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new
|
|
749
|
+
var import_common9 = require("@nestjs/common");
|
|
750
|
+
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new import_common9.ConfigurableModuleBuilder().build();
|
|
627
751
|
var I18nModuleOptionsToken = MODULE_OPTIONS_TOKEN;
|
|
628
752
|
|
|
629
753
|
// src/i18n-module/i18n.service.ts
|
|
630
|
-
var
|
|
754
|
+
var import_core5 = require("@nestjs/core");
|
|
631
755
|
var import_nfkit2 = require("nfkit");
|
|
632
756
|
var I18nService = class extends import_nfkit2.I18n {
|
|
633
757
|
constructor(i18nServiceOptions, moduleRef) {
|
|
@@ -635,7 +759,7 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
635
759
|
this.i18nServiceOptions = i18nServiceOptions;
|
|
636
760
|
this.moduleRef = moduleRef;
|
|
637
761
|
this._shadowMiddlewareMap = /* @__PURE__ */ new Map();
|
|
638
|
-
this.logger = new
|
|
762
|
+
this.logger = new import_common10.ConsoleLogger("I18nService");
|
|
639
763
|
this.resolver = createResolver(this.i18nServiceOptions.resolver);
|
|
640
764
|
}
|
|
641
765
|
middleware(mw, prior = false) {
|
|
@@ -643,7 +767,7 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
643
767
|
try {
|
|
644
768
|
return await mw(locale, text, next, ctx);
|
|
645
769
|
} catch (e) {
|
|
646
|
-
if (e instanceof
|
|
770
|
+
if (e instanceof import_common10.HttpException) {
|
|
647
771
|
throw e;
|
|
648
772
|
}
|
|
649
773
|
this.logger.error(`Error in i18n middleware: ${e.message}`);
|
|
@@ -662,26 +786,28 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
662
786
|
return this;
|
|
663
787
|
}
|
|
664
788
|
async getExactLocaleFromRequest(ctx) {
|
|
665
|
-
const
|
|
789
|
+
const req = ctx.switchToHttp().getRequest();
|
|
790
|
+
const locale = await this.resolver(req, this.moduleRef);
|
|
666
791
|
return this.getExactLocale(locale);
|
|
667
792
|
}
|
|
668
793
|
async translateRequest(ctx, obj) {
|
|
669
|
-
const
|
|
794
|
+
const req = ctx.switchToHttp().getRequest();
|
|
795
|
+
const locale = await this.resolver(req, this.moduleRef);
|
|
670
796
|
return this.translate(locale, obj, ctx);
|
|
671
797
|
}
|
|
672
798
|
};
|
|
673
799
|
I18nService = __decorateClass([
|
|
674
|
-
(0,
|
|
675
|
-
__decorateParam(0, (0,
|
|
676
|
-
__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))
|
|
677
803
|
], I18nService);
|
|
678
804
|
|
|
679
805
|
// src/i18n-module/i18n.module.ts
|
|
680
|
-
var
|
|
806
|
+
var import_common12 = require("@nestjs/common");
|
|
681
807
|
|
|
682
808
|
// src/i18n-module/locale.pipe.ts
|
|
683
|
-
var
|
|
684
|
-
var
|
|
809
|
+
var import_common11 = require("@nestjs/common");
|
|
810
|
+
var import_core6 = require("@nestjs/core");
|
|
685
811
|
var LocalePipe = class {
|
|
686
812
|
constructor(i18nService, moduleRef) {
|
|
687
813
|
this.i18nService = i18nService;
|
|
@@ -691,7 +817,8 @@ var LocalePipe = class {
|
|
|
691
817
|
const resolver = ctx.resolver;
|
|
692
818
|
if (resolver) {
|
|
693
819
|
const _resolver = createResolver(resolver);
|
|
694
|
-
const
|
|
820
|
+
const req = ctx.ctx.switchToHttp().getRequest();
|
|
821
|
+
const locale = await _resolver(req, this.moduleRef);
|
|
695
822
|
return this.i18nService.getExactLocale(locale);
|
|
696
823
|
} else {
|
|
697
824
|
return this.i18nService.getExactLocaleFromRequest(ctx.ctx);
|
|
@@ -699,31 +826,33 @@ var LocalePipe = class {
|
|
|
699
826
|
}
|
|
700
827
|
};
|
|
701
828
|
LocalePipe = __decorateClass([
|
|
702
|
-
(0,
|
|
703
|
-
__decorateParam(0, (0,
|
|
704
|
-
__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))
|
|
705
832
|
], LocalePipe);
|
|
706
|
-
var _dec = (0,
|
|
707
|
-
|
|
708
|
-
}
|
|
833
|
+
var _dec = (0, import_common11.createParamDecorator)(
|
|
834
|
+
(resolver, ctx) => {
|
|
835
|
+
return { ctx, resolver };
|
|
836
|
+
}
|
|
837
|
+
);
|
|
709
838
|
var PutLocale = (resolver) => _dec(resolver, LocalePipe);
|
|
710
839
|
|
|
711
840
|
// src/i18n-module/i18n.module.ts
|
|
712
841
|
var I18nModule = class extends ConfigurableModuleClass {
|
|
713
842
|
};
|
|
714
843
|
I18nModule = __decorateClass([
|
|
715
|
-
(0,
|
|
716
|
-
(0,
|
|
844
|
+
(0, import_common12.Global)(),
|
|
845
|
+
(0, import_common12.Module)({
|
|
717
846
|
providers: [I18nService, LocalePipe],
|
|
718
847
|
exports: [I18nService, LocalePipe]
|
|
719
848
|
})
|
|
720
849
|
], I18nModule);
|
|
721
850
|
|
|
722
851
|
// src/i18n-module/i18n-decorator.ts
|
|
723
|
-
var
|
|
852
|
+
var import_common14 = require("@nestjs/common");
|
|
724
853
|
|
|
725
854
|
// src/i18n-module/i18n.interceptor.ts
|
|
726
|
-
var
|
|
855
|
+
var import_common13 = require("@nestjs/common");
|
|
727
856
|
var import_rxjs2 = require("rxjs");
|
|
728
857
|
var import_operators = require("rxjs/operators");
|
|
729
858
|
var I18nInterceptor = class {
|
|
@@ -736,13 +865,13 @@ var I18nInterceptor = class {
|
|
|
736
865
|
(0, import_operators.mergeMap)((data) => this.i18nService.translateRequest(context, data)),
|
|
737
866
|
// 错误路径:若是 HttpException,把其 response 翻译后再抛
|
|
738
867
|
(0, import_operators.catchError)((err) => {
|
|
739
|
-
if (err instanceof
|
|
868
|
+
if (err instanceof import_common13.HttpException) {
|
|
740
869
|
const status = err.getStatus();
|
|
741
870
|
const resp = err.getResponse();
|
|
742
871
|
return (0, import_rxjs2.from)(this.i18nService.translateRequest(context, resp)).pipe(
|
|
743
872
|
(0, import_operators.mergeMap)(
|
|
744
873
|
(translated) => (0, import_rxjs2.throwError)(
|
|
745
|
-
() => new
|
|
874
|
+
() => new import_common13.HttpException(translated, status, { cause: err })
|
|
746
875
|
)
|
|
747
876
|
)
|
|
748
877
|
);
|
|
@@ -753,14 +882,14 @@ var I18nInterceptor = class {
|
|
|
753
882
|
}
|
|
754
883
|
};
|
|
755
884
|
I18nInterceptor = __decorateClass([
|
|
756
|
-
(0,
|
|
757
|
-
__decorateParam(0, (0,
|
|
885
|
+
(0, import_common13.Injectable)(),
|
|
886
|
+
__decorateParam(0, (0, import_common13.Inject)(I18nService))
|
|
758
887
|
], I18nInterceptor);
|
|
759
888
|
|
|
760
889
|
// src/i18n-module/i18n-decorator.ts
|
|
761
890
|
var createI18nDecorator = (options) => {
|
|
762
891
|
return () => MergeClassOrMethodDecorators([
|
|
763
|
-
(0,
|
|
892
|
+
(0, import_common14.UseInterceptors)(I18nInterceptor),
|
|
764
893
|
ApiFromResolver(options.resolver, {
|
|
765
894
|
description: "Locale for internationalization",
|
|
766
895
|
required: false,
|
|
@@ -800,6 +929,7 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
800
929
|
As,
|
|
801
930
|
BlankPaginatedReturnMessageDto,
|
|
802
931
|
BlankReturnMessageDto,
|
|
932
|
+
CombinedParamResolver,
|
|
803
933
|
DataBody,
|
|
804
934
|
DataPipe,
|
|
805
935
|
DataQuery,
|
|
@@ -819,6 +949,9 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
819
949
|
MergeParameterDecorators,
|
|
820
950
|
MergePropertyDecorators,
|
|
821
951
|
PaginatedReturnMessageDto,
|
|
952
|
+
ParamResolver,
|
|
953
|
+
ParamResolverBase,
|
|
954
|
+
ParamResolverPipe,
|
|
822
955
|
PutLocale,
|
|
823
956
|
RenameClass,
|
|
824
957
|
RequireToken,
|
|
@@ -834,6 +967,7 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
834
967
|
fromAbortable,
|
|
835
968
|
getApiProperty,
|
|
836
969
|
getClassFromClassOrArray,
|
|
970
|
+
getParamResolver,
|
|
837
971
|
takeUntilAbort
|
|
838
972
|
});
|
|
839
973
|
//# sourceMappingURL=index.cjs.map
|