nesties 1.1.15 → 1.1.17
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 +240 -93
- package/dist/index.cjs.map +4 -4
- package/dist/index.mjs +230 -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 +62 -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,30 @@ 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
|
|
313
|
+
var ParamResolverCopiedFieldsFromSwagger = [
|
|
314
|
+
"required",
|
|
315
|
+
"description",
|
|
316
|
+
"example",
|
|
317
|
+
"examples"
|
|
318
|
+
];
|
|
296
319
|
var coerceToString = (v) => {
|
|
297
320
|
if (v == null) return void 0;
|
|
298
321
|
if (v === false) return void 0;
|
|
@@ -337,45 +360,168 @@ function getQueryValue(req, key) {
|
|
|
337
360
|
}
|
|
338
361
|
return void 0;
|
|
339
362
|
}
|
|
340
|
-
var
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
}
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
363
|
+
var ParamResolverPipe = class {
|
|
364
|
+
constructor(moduleRef) {
|
|
365
|
+
this.moduleRef = moduleRef;
|
|
366
|
+
}
|
|
367
|
+
async transform(params, metadata) {
|
|
368
|
+
return params.resolver.resolve(params.req, this.moduleRef);
|
|
369
|
+
}
|
|
370
|
+
};
|
|
371
|
+
ParamResolverPipe = __decorateClass([
|
|
372
|
+
(0, import_common3.Injectable)(),
|
|
373
|
+
__decorateParam(0, (0, import_common3.Inject)(import_core.ModuleRef))
|
|
374
|
+
], ParamResolverPipe);
|
|
375
|
+
var usedParamResolverTokens = /* @__PURE__ */ new Set();
|
|
376
|
+
var ParamResolverBase = class {
|
|
377
|
+
toResolverFunction() {
|
|
378
|
+
return async (req, ref) => this.resolve(req, ref);
|
|
379
|
+
}
|
|
380
|
+
toParamDecorator() {
|
|
381
|
+
const dec = (0, import_common3.createParamDecorator)((_, ctx) => {
|
|
382
|
+
const req = ctx.switchToHttp().getRequest();
|
|
383
|
+
return { req, resolver: this };
|
|
384
|
+
});
|
|
385
|
+
return (...pipes) => dec(ParamResolverPipe, ...pipes);
|
|
386
|
+
}
|
|
387
|
+
// for override
|
|
388
|
+
toString() {
|
|
389
|
+
return "ParamResolverBase";
|
|
390
|
+
}
|
|
391
|
+
toRequestScopedProvider() {
|
|
392
|
+
const token = `PARAM_RESOLVER_${this.toString()}`;
|
|
393
|
+
let useToken = token;
|
|
394
|
+
if (usedParamResolverTokens.has(token)) {
|
|
395
|
+
let suffix = 0;
|
|
396
|
+
const tryToken = `${token}__${suffix}`;
|
|
397
|
+
while (usedParamResolverTokens.has(tryToken)) {
|
|
398
|
+
suffix++;
|
|
399
|
+
}
|
|
400
|
+
useToken = tryToken;
|
|
357
401
|
}
|
|
358
|
-
|
|
359
|
-
|
|
402
|
+
const provider = createProvider(
|
|
403
|
+
{
|
|
404
|
+
provide: useToken,
|
|
405
|
+
inject: [import_core.REQUEST, import_core.ModuleRef],
|
|
406
|
+
scope: import_common3.Scope.REQUEST
|
|
407
|
+
},
|
|
408
|
+
this.toResolverFunction()
|
|
409
|
+
);
|
|
410
|
+
return {
|
|
411
|
+
token: useToken,
|
|
412
|
+
provider,
|
|
413
|
+
inject: () => (0, import_common3.Inject)(useToken)
|
|
414
|
+
};
|
|
415
|
+
}
|
|
360
416
|
};
|
|
361
|
-
var
|
|
362
|
-
|
|
363
|
-
|
|
417
|
+
var ParamResolver = class extends ParamResolverBase {
|
|
418
|
+
constructor(input) {
|
|
419
|
+
super();
|
|
420
|
+
if (typeof input === "function") {
|
|
421
|
+
this.dynamic = input;
|
|
422
|
+
} else {
|
|
423
|
+
this.info = { ...input };
|
|
424
|
+
if (this.info.paramType === "header") {
|
|
425
|
+
this.info.paramName = this.info.paramName.toLowerCase();
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
}
|
|
429
|
+
resolve(req, ref) {
|
|
430
|
+
if (this.info) {
|
|
431
|
+
if (this.info.paramType === "header") {
|
|
432
|
+
const name = this.info.paramName;
|
|
433
|
+
let raw = getHeader(req, name);
|
|
434
|
+
if (name === "accept-language")
|
|
435
|
+
raw = pickPrimaryFromAcceptLanguage(raw);
|
|
436
|
+
return raw;
|
|
437
|
+
}
|
|
438
|
+
if (this.info.paramType === "query") {
|
|
439
|
+
return getQueryValue(req, this.info.paramName);
|
|
440
|
+
}
|
|
441
|
+
throw new Error(`Unsupported paramType: ${this.info.paramType}`);
|
|
442
|
+
} else if (this.dynamic) {
|
|
443
|
+
return this.dynamic(req, ref);
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
toString() {
|
|
447
|
+
const suffix = this.info ? `${this.info.paramType.toUpperCase()}_${this.info.paramName}` : `DYNAMIC`;
|
|
448
|
+
return `ParamResolver_${suffix}`;
|
|
449
|
+
}
|
|
450
|
+
toApiPropertyDecorator(extras = {}) {
|
|
451
|
+
return (extras2 = {}) => {
|
|
452
|
+
if (this.info) {
|
|
453
|
+
const paramType = this.info.paramType;
|
|
454
|
+
const apiOptions = {
|
|
455
|
+
name: this.info.paramName,
|
|
456
|
+
...ParamResolverCopiedFieldsFromSwagger.reduce((acc, field) => {
|
|
457
|
+
if (field in this.info) {
|
|
458
|
+
acc[field] = this.info[field];
|
|
459
|
+
}
|
|
460
|
+
return acc;
|
|
461
|
+
}, {}),
|
|
462
|
+
...this.info.openapiExtras || {},
|
|
463
|
+
...extras,
|
|
464
|
+
...extras2
|
|
465
|
+
};
|
|
466
|
+
return paramType === "header" ? (0, import_swagger4.ApiHeader)(apiOptions) : paramType === "query" ? (0, import_swagger4.ApiQuery)({ type: "string", ...apiOptions }) : () => {
|
|
467
|
+
};
|
|
468
|
+
}
|
|
469
|
+
return () => {
|
|
470
|
+
};
|
|
364
471
|
};
|
|
365
472
|
}
|
|
366
|
-
|
|
367
|
-
|
|
368
|
-
|
|
369
|
-
|
|
370
|
-
|
|
371
|
-
}
|
|
372
|
-
|
|
373
|
-
|
|
473
|
+
};
|
|
474
|
+
var CombinedParamResolver = class extends ParamResolverBase {
|
|
475
|
+
constructor(resolvers) {
|
|
476
|
+
super();
|
|
477
|
+
this.resolvers = resolvers;
|
|
478
|
+
}
|
|
479
|
+
async resolve(req, ref) {
|
|
480
|
+
const result = {};
|
|
481
|
+
await Promise.all(
|
|
482
|
+
Object.entries(this.resolvers).map(async ([key, resolver]) => {
|
|
483
|
+
result[key] = await resolver.resolve(
|
|
484
|
+
req,
|
|
485
|
+
ref
|
|
486
|
+
);
|
|
487
|
+
})
|
|
488
|
+
);
|
|
489
|
+
return result;
|
|
490
|
+
}
|
|
491
|
+
toString() {
|
|
492
|
+
const suffix = Object.entries(this.resolvers).map(([key, resolver]) => `${key.toString()}_${resolver.toString()}`).join("__");
|
|
493
|
+
return `CombinedParamResolver_${suffix}`;
|
|
494
|
+
}
|
|
495
|
+
toApiPropertyDecorator(extras = {}) {
|
|
496
|
+
const decs = Object.values(this.resolvers).map(
|
|
497
|
+
(resolver) => resolver.toApiPropertyDecorator(extras)
|
|
498
|
+
);
|
|
499
|
+
return (extras2) => MergeClassOrMethodDecorators(
|
|
500
|
+
decs.map(
|
|
501
|
+
(dec) => dec({
|
|
502
|
+
...extras,
|
|
503
|
+
...extras2
|
|
504
|
+
})
|
|
505
|
+
)
|
|
506
|
+
);
|
|
507
|
+
}
|
|
508
|
+
};
|
|
509
|
+
var getParamResolver = (input) => {
|
|
510
|
+
if (input instanceof ParamResolverBase) {
|
|
511
|
+
return input;
|
|
512
|
+
}
|
|
513
|
+
return new ParamResolver(input);
|
|
514
|
+
};
|
|
515
|
+
var createResolver = (_options) => {
|
|
516
|
+
return getParamResolver(_options).toResolverFunction();
|
|
517
|
+
};
|
|
518
|
+
var ApiFromResolver = (_options, extras = {}) => {
|
|
519
|
+
return getParamResolver(_options).toApiPropertyDecorator(extras)();
|
|
374
520
|
};
|
|
375
521
|
|
|
376
522
|
// src/token.guard.ts
|
|
377
523
|
var import_typed_reflector = require("typed-reflector");
|
|
378
|
-
var
|
|
524
|
+
var import_core2 = require("@nestjs/core");
|
|
379
525
|
var reflector = new import_typed_reflector.Reflector();
|
|
380
526
|
var Metadata = new import_typed_reflector.MetadataSetter();
|
|
381
527
|
var defaultHeaderName = "x-server-token";
|
|
@@ -401,9 +547,10 @@ var TokenGuard = class {
|
|
|
401
547
|
config.resolver || { paramType: "header", paramName: defaultHeaderName }
|
|
402
548
|
);
|
|
403
549
|
const tokenSource = config.tokenSource || defaultConfigName;
|
|
550
|
+
const req = context.switchToHttp().getRequest();
|
|
404
551
|
const [tokenFromClient, tokenFromConfig] = await Promise.all([
|
|
405
|
-
resolver(
|
|
406
|
-
typeof tokenSource === "function" ? tokenSource(
|
|
552
|
+
resolver(req, this.moduleRef),
|
|
553
|
+
typeof tokenSource === "function" ? tokenSource(req, this.moduleRef) : this.config.get(tokenSource)
|
|
407
554
|
]);
|
|
408
555
|
if (tokenFromConfig && tokenFromConfig !== tokenFromClient) {
|
|
409
556
|
throw new BlankReturnMessageDto(
|
|
@@ -415,9 +562,9 @@ var TokenGuard = class {
|
|
|
415
562
|
}
|
|
416
563
|
};
|
|
417
564
|
TokenGuard = __decorateClass([
|
|
418
|
-
(0,
|
|
419
|
-
__decorateParam(0, (0,
|
|
420
|
-
__decorateParam(1, (0,
|
|
565
|
+
(0, import_common4.Injectable)(),
|
|
566
|
+
__decorateParam(0, (0, import_common4.Inject)(import_config.ConfigService)),
|
|
567
|
+
__decorateParam(1, (0, import_common4.Inject)(import_core2.ModuleRef))
|
|
421
568
|
], TokenGuard);
|
|
422
569
|
var RequireToken = (options = {}) => {
|
|
423
570
|
const swaggerDec = options.resolver ? ApiFromResolver(options.resolver, {
|
|
@@ -429,7 +576,7 @@ var RequireToken = (options = {}) => {
|
|
|
429
576
|
required: false
|
|
430
577
|
});
|
|
431
578
|
return MergeClassOrMethodDecorators([
|
|
432
|
-
(0,
|
|
579
|
+
(0, import_common4.UseGuards)(TokenGuard),
|
|
433
580
|
swaggerDec,
|
|
434
581
|
ApiError(
|
|
435
582
|
options.errorCode || defaultErrorCode,
|
|
@@ -441,7 +588,7 @@ var RequireToken = (options = {}) => {
|
|
|
441
588
|
|
|
442
589
|
// src/abort-utils.ts
|
|
443
590
|
var import_rxjs = require("rxjs");
|
|
444
|
-
var
|
|
591
|
+
var import_common5 = require("@nestjs/common");
|
|
445
592
|
|
|
446
593
|
// src/utility/abort-http-signal.ts
|
|
447
594
|
function toRawReq(req) {
|
|
@@ -507,7 +654,7 @@ var takeUntilAbort = (signal) => {
|
|
|
507
654
|
);
|
|
508
655
|
};
|
|
509
656
|
};
|
|
510
|
-
var As = (0,
|
|
657
|
+
var As = (0, import_common5.createParamDecorator)(
|
|
511
658
|
(_data, ctx) => {
|
|
512
659
|
const req = ctx.switchToHttp().getRequest();
|
|
513
660
|
return createAbortSignalFromHttp(req);
|
|
@@ -515,37 +662,27 @@ var As = (0, import_common4.createParamDecorator)(
|
|
|
515
662
|
);
|
|
516
663
|
|
|
517
664
|
// src/abortable-module/abortable.token.ts
|
|
518
|
-
var
|
|
665
|
+
var import_common7 = require("@nestjs/common");
|
|
519
666
|
var import_nfkit = require("nfkit");
|
|
520
667
|
|
|
521
668
|
// 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
|
|
669
|
+
var import_common6 = require("@nestjs/common");
|
|
670
|
+
var import_core3 = require("@nestjs/core");
|
|
534
671
|
var ABORT_SIGNAL = Symbol(
|
|
535
672
|
"ABORT_SIGNAL"
|
|
536
673
|
);
|
|
537
674
|
var AbortSignalProvider = createProvider(
|
|
538
675
|
{
|
|
539
676
|
provide: ABORT_SIGNAL,
|
|
540
|
-
scope:
|
|
541
|
-
inject: [
|
|
677
|
+
scope: import_common6.Scope.REQUEST,
|
|
678
|
+
inject: [import_core3.REQUEST]
|
|
542
679
|
},
|
|
543
680
|
createAbortSignalFromHttp
|
|
544
681
|
);
|
|
545
|
-
var InjectAbortSignal = () => (0,
|
|
682
|
+
var InjectAbortSignal = () => (0, import_common6.Inject)(ABORT_SIGNAL);
|
|
546
683
|
|
|
547
684
|
// src/abortable-module/abortable.token.ts
|
|
548
|
-
var
|
|
685
|
+
var import_core4 = require("@nestjs/core");
|
|
549
686
|
var tokenMemo = /* @__PURE__ */ new Map();
|
|
550
687
|
var abortableToken = (token) => {
|
|
551
688
|
if (tokenMemo.has(token)) return tokenMemo.get(token);
|
|
@@ -566,7 +703,7 @@ function InjectAbortable(token) {
|
|
|
566
703
|
);
|
|
567
704
|
}
|
|
568
705
|
}
|
|
569
|
-
(0,
|
|
706
|
+
(0, import_common7.Inject)(abortableToken(actualToken))(target, propertyKey, parameterIndex);
|
|
570
707
|
};
|
|
571
708
|
}
|
|
572
709
|
function createAbortableProvider(token, opts) {
|
|
@@ -574,11 +711,11 @@ function createAbortableProvider(token, opts) {
|
|
|
574
711
|
return createProvider(
|
|
575
712
|
{
|
|
576
713
|
provide,
|
|
577
|
-
scope:
|
|
578
|
-
inject: [
|
|
714
|
+
scope: import_common7.Scope.REQUEST,
|
|
715
|
+
inject: [import_core4.ModuleRef, import_core4.REQUEST, ABORT_SIGNAL]
|
|
579
716
|
},
|
|
580
717
|
async (moduleRef, req, signal) => {
|
|
581
|
-
const ctxId =
|
|
718
|
+
const ctxId = import_core4.ContextIdFactory.getByRequest(req);
|
|
582
719
|
const svc = await moduleRef.resolve(token, ctxId, { strict: false });
|
|
583
720
|
if (svc == null) {
|
|
584
721
|
throw new Error(
|
|
@@ -593,7 +730,7 @@ function createAbortableProvider(token, opts) {
|
|
|
593
730
|
}
|
|
594
731
|
|
|
595
732
|
// src/abortable-module/abortable.module.ts
|
|
596
|
-
var
|
|
733
|
+
var import_common8 = require("@nestjs/common");
|
|
597
734
|
var AbortableModule = class {
|
|
598
735
|
static forRoot() {
|
|
599
736
|
return {
|
|
@@ -615,19 +752,19 @@ var AbortableModule = class {
|
|
|
615
752
|
}
|
|
616
753
|
};
|
|
617
754
|
AbortableModule = __decorateClass([
|
|
618
|
-
(0,
|
|
755
|
+
(0, import_common8.Module)({})
|
|
619
756
|
], AbortableModule);
|
|
620
757
|
|
|
621
758
|
// src/i18n-module/i18n.service.ts
|
|
622
|
-
var
|
|
759
|
+
var import_common10 = require("@nestjs/common");
|
|
623
760
|
|
|
624
761
|
// src/i18n-module/i18n-token.ts
|
|
625
|
-
var
|
|
626
|
-
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new
|
|
762
|
+
var import_common9 = require("@nestjs/common");
|
|
763
|
+
var { ConfigurableModuleClass, MODULE_OPTIONS_TOKEN } = new import_common9.ConfigurableModuleBuilder().build();
|
|
627
764
|
var I18nModuleOptionsToken = MODULE_OPTIONS_TOKEN;
|
|
628
765
|
|
|
629
766
|
// src/i18n-module/i18n.service.ts
|
|
630
|
-
var
|
|
767
|
+
var import_core5 = require("@nestjs/core");
|
|
631
768
|
var import_nfkit2 = require("nfkit");
|
|
632
769
|
var I18nService = class extends import_nfkit2.I18n {
|
|
633
770
|
constructor(i18nServiceOptions, moduleRef) {
|
|
@@ -635,7 +772,7 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
635
772
|
this.i18nServiceOptions = i18nServiceOptions;
|
|
636
773
|
this.moduleRef = moduleRef;
|
|
637
774
|
this._shadowMiddlewareMap = /* @__PURE__ */ new Map();
|
|
638
|
-
this.logger = new
|
|
775
|
+
this.logger = new import_common10.ConsoleLogger("I18nService");
|
|
639
776
|
this.resolver = createResolver(this.i18nServiceOptions.resolver);
|
|
640
777
|
}
|
|
641
778
|
middleware(mw, prior = false) {
|
|
@@ -643,7 +780,7 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
643
780
|
try {
|
|
644
781
|
return await mw(locale, text, next, ctx);
|
|
645
782
|
} catch (e) {
|
|
646
|
-
if (e instanceof
|
|
783
|
+
if (e instanceof import_common10.HttpException) {
|
|
647
784
|
throw e;
|
|
648
785
|
}
|
|
649
786
|
this.logger.error(`Error in i18n middleware: ${e.message}`);
|
|
@@ -662,26 +799,28 @@ var I18nService = class extends import_nfkit2.I18n {
|
|
|
662
799
|
return this;
|
|
663
800
|
}
|
|
664
801
|
async getExactLocaleFromRequest(ctx) {
|
|
665
|
-
const
|
|
802
|
+
const req = ctx.switchToHttp().getRequest();
|
|
803
|
+
const locale = await this.resolver(req, this.moduleRef);
|
|
666
804
|
return this.getExactLocale(locale);
|
|
667
805
|
}
|
|
668
806
|
async translateRequest(ctx, obj) {
|
|
669
|
-
const
|
|
807
|
+
const req = ctx.switchToHttp().getRequest();
|
|
808
|
+
const locale = await this.resolver(req, this.moduleRef);
|
|
670
809
|
return this.translate(locale, obj, ctx);
|
|
671
810
|
}
|
|
672
811
|
};
|
|
673
812
|
I18nService = __decorateClass([
|
|
674
|
-
(0,
|
|
675
|
-
__decorateParam(0, (0,
|
|
676
|
-
__decorateParam(1, (0,
|
|
813
|
+
(0, import_common10.Injectable)(),
|
|
814
|
+
__decorateParam(0, (0, import_common10.Inject)(I18nModuleOptionsToken)),
|
|
815
|
+
__decorateParam(1, (0, import_common10.Inject)(import_core5.ModuleRef))
|
|
677
816
|
], I18nService);
|
|
678
817
|
|
|
679
818
|
// src/i18n-module/i18n.module.ts
|
|
680
|
-
var
|
|
819
|
+
var import_common12 = require("@nestjs/common");
|
|
681
820
|
|
|
682
821
|
// src/i18n-module/locale.pipe.ts
|
|
683
|
-
var
|
|
684
|
-
var
|
|
822
|
+
var import_common11 = require("@nestjs/common");
|
|
823
|
+
var import_core6 = require("@nestjs/core");
|
|
685
824
|
var LocalePipe = class {
|
|
686
825
|
constructor(i18nService, moduleRef) {
|
|
687
826
|
this.i18nService = i18nService;
|
|
@@ -691,7 +830,8 @@ var LocalePipe = class {
|
|
|
691
830
|
const resolver = ctx.resolver;
|
|
692
831
|
if (resolver) {
|
|
693
832
|
const _resolver = createResolver(resolver);
|
|
694
|
-
const
|
|
833
|
+
const req = ctx.ctx.switchToHttp().getRequest();
|
|
834
|
+
const locale = await _resolver(req, this.moduleRef);
|
|
695
835
|
return this.i18nService.getExactLocale(locale);
|
|
696
836
|
} else {
|
|
697
837
|
return this.i18nService.getExactLocaleFromRequest(ctx.ctx);
|
|
@@ -699,31 +839,33 @@ var LocalePipe = class {
|
|
|
699
839
|
}
|
|
700
840
|
};
|
|
701
841
|
LocalePipe = __decorateClass([
|
|
702
|
-
(0,
|
|
703
|
-
__decorateParam(0, (0,
|
|
704
|
-
__decorateParam(1, (0,
|
|
842
|
+
(0, import_common11.Injectable)(),
|
|
843
|
+
__decorateParam(0, (0, import_common11.Inject)(I18nService)),
|
|
844
|
+
__decorateParam(1, (0, import_common11.Inject)(import_core6.ModuleRef))
|
|
705
845
|
], LocalePipe);
|
|
706
|
-
var _dec = (0,
|
|
707
|
-
|
|
708
|
-
}
|
|
846
|
+
var _dec = (0, import_common11.createParamDecorator)(
|
|
847
|
+
(resolver, ctx) => {
|
|
848
|
+
return { ctx, resolver };
|
|
849
|
+
}
|
|
850
|
+
);
|
|
709
851
|
var PutLocale = (resolver) => _dec(resolver, LocalePipe);
|
|
710
852
|
|
|
711
853
|
// src/i18n-module/i18n.module.ts
|
|
712
854
|
var I18nModule = class extends ConfigurableModuleClass {
|
|
713
855
|
};
|
|
714
856
|
I18nModule = __decorateClass([
|
|
715
|
-
(0,
|
|
716
|
-
(0,
|
|
857
|
+
(0, import_common12.Global)(),
|
|
858
|
+
(0, import_common12.Module)({
|
|
717
859
|
providers: [I18nService, LocalePipe],
|
|
718
860
|
exports: [I18nService, LocalePipe]
|
|
719
861
|
})
|
|
720
862
|
], I18nModule);
|
|
721
863
|
|
|
722
864
|
// src/i18n-module/i18n-decorator.ts
|
|
723
|
-
var
|
|
865
|
+
var import_common14 = require("@nestjs/common");
|
|
724
866
|
|
|
725
867
|
// src/i18n-module/i18n.interceptor.ts
|
|
726
|
-
var
|
|
868
|
+
var import_common13 = require("@nestjs/common");
|
|
727
869
|
var import_rxjs2 = require("rxjs");
|
|
728
870
|
var import_operators = require("rxjs/operators");
|
|
729
871
|
var I18nInterceptor = class {
|
|
@@ -736,13 +878,13 @@ var I18nInterceptor = class {
|
|
|
736
878
|
(0, import_operators.mergeMap)((data) => this.i18nService.translateRequest(context, data)),
|
|
737
879
|
// 错误路径:若是 HttpException,把其 response 翻译后再抛
|
|
738
880
|
(0, import_operators.catchError)((err) => {
|
|
739
|
-
if (err instanceof
|
|
881
|
+
if (err instanceof import_common13.HttpException) {
|
|
740
882
|
const status = err.getStatus();
|
|
741
883
|
const resp = err.getResponse();
|
|
742
884
|
return (0, import_rxjs2.from)(this.i18nService.translateRequest(context, resp)).pipe(
|
|
743
885
|
(0, import_operators.mergeMap)(
|
|
744
886
|
(translated) => (0, import_rxjs2.throwError)(
|
|
745
|
-
() => new
|
|
887
|
+
() => new import_common13.HttpException(translated, status, { cause: err })
|
|
746
888
|
)
|
|
747
889
|
)
|
|
748
890
|
);
|
|
@@ -753,14 +895,14 @@ var I18nInterceptor = class {
|
|
|
753
895
|
}
|
|
754
896
|
};
|
|
755
897
|
I18nInterceptor = __decorateClass([
|
|
756
|
-
(0,
|
|
757
|
-
__decorateParam(0, (0,
|
|
898
|
+
(0, import_common13.Injectable)(),
|
|
899
|
+
__decorateParam(0, (0, import_common13.Inject)(I18nService))
|
|
758
900
|
], I18nInterceptor);
|
|
759
901
|
|
|
760
902
|
// src/i18n-module/i18n-decorator.ts
|
|
761
903
|
var createI18nDecorator = (options) => {
|
|
762
904
|
return () => MergeClassOrMethodDecorators([
|
|
763
|
-
(0,
|
|
905
|
+
(0, import_common14.UseInterceptors)(I18nInterceptor),
|
|
764
906
|
ApiFromResolver(options.resolver, {
|
|
765
907
|
description: "Locale for internationalization",
|
|
766
908
|
required: false,
|
|
@@ -800,6 +942,7 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
800
942
|
As,
|
|
801
943
|
BlankPaginatedReturnMessageDto,
|
|
802
944
|
BlankReturnMessageDto,
|
|
945
|
+
CombinedParamResolver,
|
|
803
946
|
DataBody,
|
|
804
947
|
DataPipe,
|
|
805
948
|
DataQuery,
|
|
@@ -819,6 +962,9 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
819
962
|
MergeParameterDecorators,
|
|
820
963
|
MergePropertyDecorators,
|
|
821
964
|
PaginatedReturnMessageDto,
|
|
965
|
+
ParamResolver,
|
|
966
|
+
ParamResolverBase,
|
|
967
|
+
ParamResolverPipe,
|
|
822
968
|
PutLocale,
|
|
823
969
|
RenameClass,
|
|
824
970
|
RequireToken,
|
|
@@ -834,6 +980,7 @@ var I18nLookupMiddleware = (0, import_nfkit3.createI18nLookupMiddleware)();
|
|
|
834
980
|
fromAbortable,
|
|
835
981
|
getApiProperty,
|
|
836
982
|
getClassFromClassOrArray,
|
|
983
|
+
getParamResolver,
|
|
837
984
|
takeUntilAbort
|
|
838
985
|
});
|
|
839
986
|
//# sourceMappingURL=index.cjs.map
|