@vnodes/nestjs-common 0.0.23 → 0.0.25
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.ts +5 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -3
- package/dist/index.js.map +1 -1
- package/dist/lib/{interceptors → api}/cache-evict.interceptor.d.ts +1 -2
- package/dist/lib/api/cache-evict.interceptor.d.ts.map +1 -0
- package/dist/lib/{interceptors → api}/cache-evict.interceptor.js +4 -2
- package/dist/lib/api/cache-evict.interceptor.js.map +1 -0
- package/dist/lib/{interceptors → api}/emit-response.interceptor.d.ts +0 -1
- package/dist/lib/api/emit-response.interceptor.d.ts.map +1 -0
- package/dist/lib/{interceptors → api}/emit-response.interceptor.js +5 -2
- package/dist/lib/api/emit-response.interceptor.js.map +1 -0
- package/dist/lib/gql/graphql-throttler.guard.d.ts +10 -0
- package/dist/lib/gql/graphql-throttler.guard.d.ts.map +1 -0
- package/dist/lib/gql/graphql-throttler.guard.js +28 -0
- package/dist/lib/gql/graphql-throttler.guard.js.map +1 -0
- package/dist/lib/modules/common-app.module.d.ts +18 -0
- package/dist/lib/modules/common-app.module.d.ts.map +1 -0
- package/dist/lib/modules/{common.module.js → common-app.module.js} +6 -6
- package/dist/lib/modules/common-app.module.js.map +1 -0
- package/dist/lib/modules/common-grapql.module.d.ts +6 -0
- package/dist/lib/modules/common-grapql.module.d.ts.map +1 -0
- package/dist/lib/modules/common-grapql.module.js +46 -0
- package/dist/lib/modules/common-grapql.module.js.map +1 -0
- package/package.json +9 -7
- package/dist/lib/interceptors/cache-evict.interceptor.d.ts.map +0 -1
- package/dist/lib/interceptors/cache-evict.interceptor.js.map +0 -1
- package/dist/lib/interceptors/emit-response.interceptor.d.ts.map +0 -1
- package/dist/lib/interceptors/emit-response.interceptor.js.map +0 -1
- package/dist/lib/modules/common.module.d.ts +0 -6
- package/dist/lib/modules/common.module.d.ts.map +0 -1
- package/dist/lib/modules/common.module.js.map +0 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
export * from './lib/
|
|
2
|
-
export * from './lib/
|
|
3
|
-
export * from './lib/
|
|
1
|
+
export * from './lib/api/cache-evict.interceptor.js';
|
|
2
|
+
export * from './lib/api/emit-response.interceptor.js';
|
|
3
|
+
export * from './lib/gql/graphql-throttler.guard.js';
|
|
4
|
+
export * from './lib/modules/common-app.module.js';
|
|
5
|
+
export * from './lib/modules/common-grapql.module.js';
|
|
4
6
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,cAAc,sCAAsC,CAAA;AACpD,cAAc,wCAAwC,CAAA;AACtD,cAAc,sCAAsC,CAAA;AACpD,cAAc,oCAAoC,CAAA;AAClD,cAAc,uCAAuC,CAAA"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
// @index(['./**/*.ts', '!./**/*.{spec,test}.ts'], f => `export * from '${f.path}.js'`)
|
|
2
|
-
export * from './lib/
|
|
3
|
-
export * from './lib/
|
|
4
|
-
export * from './lib/
|
|
2
|
+
export * from './lib/api/cache-evict.interceptor.js';
|
|
3
|
+
export * from './lib/api/emit-response.interceptor.js';
|
|
4
|
+
export * from './lib/gql/graphql-throttler.guard.js';
|
|
5
|
+
export * from './lib/modules/common-app.module.js';
|
|
6
|
+
export * from './lib/modules/common-grapql.module.js';
|
|
5
7
|
|
|
6
8
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @index(['./**/*.ts', '!./**/*.{spec,test}.ts'], f => `export * from '${f.path}.js'`)\nexport * from './lib/
|
|
1
|
+
{"version":3,"sources":["../src/index.ts"],"sourcesContent":["// @index(['./**/*.ts', '!./**/*.{spec,test}.ts'], f => `export * from '${f.path}.js'`)\nexport * from './lib/api/cache-evict.interceptor.js'\nexport * from './lib/api/emit-response.interceptor.js'\nexport * from './lib/gql/graphql-throttler.guard.js'\nexport * from './lib/modules/common-app.module.js'\nexport * from './lib/modules/common-grapql.module.js'\n"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,cAAc,uCAAsC;AACpD,cAAc,yCAAwC;AACtD,cAAc,uCAAsC;AACpD,cAAc,qCAAoC;AAClD,cAAc,wCAAuC"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
import { Cache } from '@vnodes/nestjs/cache-manager';
|
|
1
|
+
import { type Cache } from '@vnodes/nestjs/cache-manager';
|
|
3
2
|
import { type CallHandler, type ExecutionContext, type NestInterceptor } from '@vnodes/nestjs/common';
|
|
4
3
|
import { type Observable } from '@vnodes/nestjs/rxjs';
|
|
5
4
|
/**
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache-evict.interceptor.d.ts","sourceRoot":"","sources":["../../../src/lib/api/cache-evict.interceptor.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACzE,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,KAAK,UAAU,EAAO,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,qBACa,qBAAqB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAC5B,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,KAAK;IAE9D,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;CAO1E"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
2
|
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
+
import { CACHE_MANAGER } from '@vnodes/nestjs/cache-manager';
|
|
5
|
+
import { Inject, Injectable } from '@vnodes/nestjs/common';
|
|
5
6
|
import { tap } from '@vnodes/nestjs/rxjs';
|
|
6
7
|
export class CacheEvictInterceptor {
|
|
7
8
|
cacheManager;
|
|
@@ -16,6 +17,7 @@ export class CacheEvictInterceptor {
|
|
|
16
17
|
}
|
|
17
18
|
CacheEvictInterceptor = _ts_decorate([
|
|
18
19
|
Injectable(),
|
|
20
|
+
_ts_param(0, Inject(CACHE_MANAGER)),
|
|
19
21
|
_ts_metadata("design:type", Function),
|
|
20
22
|
_ts_metadata("design:paramtypes", [
|
|
21
23
|
typeof Cache === "undefined" ? Object : Cache
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/api/cache-evict.interceptor.ts"],"sourcesContent":["import { CACHE_MANAGER, type Cache } from '@vnodes/nestjs/cache-manager';\nimport {\n type CallHandler,\n type ExecutionContext,\n Inject,\n Injectable,\n type NestInterceptor,\n} from '@vnodes/nestjs/common';\nimport { type Observable, tap } from '@vnodes/nestjs/rxjs';\n\n/**\n * Clear cache when create/update operations happen\n */\n@Injectable()\nexport class CacheEvictInterceptor<T> implements NestInterceptor<T> {\n constructor(@Inject(CACHE_MANAGER) private cacheManager: Cache) {}\n\n intercept(_context: ExecutionContext, next: CallHandler): Observable<T> {\n return next.handle().pipe(\n tap(async () => {\n await this.cacheManager.clear();\n }),\n );\n }\n}\n"],"names":["CACHE_MANAGER","Inject","Injectable","tap","CacheEvictInterceptor","cacheManager","intercept","_context","next","handle","pipe","clear"],"mappings":";;;AAAA,SAASA,aAAa,QAAoB,+BAA+B;AACzE,SAGIC,MAAM,EACNC,UAAU,QAEP,wBAAwB;AAC/B,SAA0BC,GAAG,QAAQ,sBAAsB;AAM3D,OAAO,MAAMC;;IACT,YAAY,AAA+BC,YAAmB,CAAE;aAArBA,eAAAA;IAAsB;IAEjEC,UAAUC,QAA0B,EAAEC,IAAiB,EAAiB;QACpE,OAAOA,KAAKC,MAAM,GAAGC,IAAI,CACrBP,IAAI;YACA,MAAM,IAAI,CAACE,YAAY,CAACM,KAAK;QACjC;IAER;AACJ"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"emit-response.interceptor.d.ts","sourceRoot":"","sources":["../../../src/lib/api/emit-response.interceptor.ts"],"names":[],"mappings":"AACA,OAAO,EACH,KAAK,WAAW,EAChB,KAAK,gBAAgB,EAGrB,KAAK,eAAe,EACvB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAO,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,qBACa,uBAAuB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAE1C,OAAO,CAAC,QAAQ,CAAC,SAAS;IACtB,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADX,SAAS,EAAE,SAAS,EAChB,OAAO,EAAE,aAAa;IAGlE,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;CAYzE"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
2
|
import { _ as _ts_metadata } from "@swc/helpers/_/_ts_metadata";
|
|
3
|
-
|
|
4
|
-
import {
|
|
3
|
+
import { _ as _ts_param } from "@swc/helpers/_/_ts_param";
|
|
4
|
+
import { getOperationName, getResourceName, isEmitResponse } from '@vnodes/metadata';
|
|
5
|
+
import { Inject, Injectable } from '@vnodes/nestjs/common';
|
|
5
6
|
import { Reflector } from '@vnodes/nestjs/core';
|
|
6
7
|
import { EventEmitter2 } from '@vnodes/nestjs/event-emitter';
|
|
7
8
|
import { tap } from '@vnodes/nestjs/rxjs';
|
|
@@ -25,6 +26,8 @@ export class EmitResponseInterceptor {
|
|
|
25
26
|
}
|
|
26
27
|
EmitResponseInterceptor = _ts_decorate([
|
|
27
28
|
Injectable(),
|
|
29
|
+
_ts_param(0, Inject(Reflector)),
|
|
30
|
+
_ts_param(1, Inject(EventEmitter2)),
|
|
28
31
|
_ts_metadata("design:type", Function),
|
|
29
32
|
_ts_metadata("design:paramtypes", [
|
|
30
33
|
typeof Reflector === "undefined" ? Object : Reflector,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/api/emit-response.interceptor.ts"],"sourcesContent":["import { getOperationName, getResourceName, isEmitResponse } from '@vnodes/metadata';\nimport {\n type CallHandler,\n type ExecutionContext,\n Inject,\n Injectable,\n type NestInterceptor,\n} from '@vnodes/nestjs/common';\nimport { Reflector } from '@vnodes/nestjs/core';\nimport { EventEmitter2 } from '@vnodes/nestjs/event-emitter';\nimport { type Observable, tap } from '@vnodes/nestjs/rxjs';\n\n/**\n * Emit response if the method has EmitResponse decorator\n */\n@Injectable()\nexport class EmitResponseInterceptor<T> implements NestInterceptor<T> {\n constructor(\n @Inject(Reflector) private readonly reflector: Reflector,\n @Inject(EventEmitter2) private readonly emitter: EventEmitter2,\n ) {}\n\n intercept(context: ExecutionContext, next: CallHandler): Observable<T> {\n return next.handle().pipe(\n tap(async (data) => {\n if (isEmitResponse(this.reflector, context)) {\n const resourceName = getResourceName(this.reflector, context);\n const operationName = getOperationName(this.reflector, context);\n const eventName = `${resourceName}.${operationName}`;\n this.emitter.emit(eventName, data);\n }\n }),\n );\n }\n}\n"],"names":["getOperationName","getResourceName","isEmitResponse","Inject","Injectable","Reflector","EventEmitter2","tap","EmitResponseInterceptor","reflector","emitter","intercept","context","next","handle","pipe","data","resourceName","operationName","eventName","emit"],"mappings":";;;AAAA,SAASA,gBAAgB,EAAEC,eAAe,EAAEC,cAAc,QAAQ,mBAAmB;AACrF,SAGIC,MAAM,EACNC,UAAU,QAEP,wBAAwB;AAC/B,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAA0BC,GAAG,QAAQ,sBAAsB;AAM3D,OAAO,MAAMC;;;IACT,YACI,AAAoCC,SAAoB,EACxD,AAAwCC,OAAsB,CAChE;aAFsCD,YAAAA;aACIC,UAAAA;IACzC;IAEHC,UAAUC,OAAyB,EAAEC,IAAiB,EAAiB;QACnE,OAAOA,KAAKC,MAAM,GAAGC,IAAI,CACrBR,IAAI,OAAOS;YACP,IAAId,eAAe,IAAI,CAACO,SAAS,EAAEG,UAAU;gBACzC,MAAMK,eAAehB,gBAAgB,IAAI,CAACQ,SAAS,EAAEG;gBACrD,MAAMM,gBAAgBlB,iBAAiB,IAAI,CAACS,SAAS,EAAEG;gBACvD,MAAMO,YAAY,GAAGF,aAAa,CAAC,EAAEC,eAAe;gBACpD,IAAI,CAACR,OAAO,CAACU,IAAI,CAACD,WAAWH;YACjC;QACJ;IAER;AACJ"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ExecutionContext } from '@vnodes/nestjs/common';
|
|
2
|
+
import { ThrottlerGuard } from '@vnodes/nestjs/throttler';
|
|
3
|
+
export declare class GqlThrottlerGuard extends ThrottlerGuard {
|
|
4
|
+
getRequestResponse(context: ExecutionContext): {
|
|
5
|
+
req: any;
|
|
6
|
+
res: any;
|
|
7
|
+
};
|
|
8
|
+
protected getTracker(req: any): Promise<string>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=graphql-throttler.guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graphql-throttler.guard.d.ts","sourceRoot":"","sources":["../../../src/lib/gql/graphql-throttler.guard.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,gBAAgB,EAAc,MAAM,uBAAuB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,qBACa,iBAAkB,SAAQ,cAAc;IACxC,kBAAkB,CAAC,OAAO,EAAE,gBAAgB;;;;cAY5B,UAAU,CAAC,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,MAAM,CAAC;CAMjE"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
|
+
/** biome-ignore-all lint/suspicious/noExplicitAny: <explanation> */ import { GqlExecutionContext } from '@vnodes/graphql';
|
|
3
|
+
import { Injectable } from '@vnodes/nestjs/common';
|
|
4
|
+
import { ThrottlerGuard } from '@vnodes/nestjs/throttler';
|
|
5
|
+
export class GqlThrottlerGuard extends ThrottlerGuard {
|
|
6
|
+
getRequestResponse(context) {
|
|
7
|
+
const gqlCtx = GqlExecutionContext.create(context);
|
|
8
|
+
const ctx = gqlCtx.getContext();
|
|
9
|
+
// 1. Try to find the request in the GraphQL context (Fastify style)
|
|
10
|
+
// 2. Fallback to standard HTTP context (Useful if used on REST endpoints too)
|
|
11
|
+
const req = ctx?.request || ctx?.req || context.switchToHttp().getRequest();
|
|
12
|
+
const res = ctx?.reply || ctx?.res || context.switchToHttp().getResponse();
|
|
13
|
+
return {
|
|
14
|
+
req,
|
|
15
|
+
res
|
|
16
|
+
};
|
|
17
|
+
}
|
|
18
|
+
async getTracker(req) {
|
|
19
|
+
// Optional chaining (?.) is key here to stop the crash
|
|
20
|
+
const ip = req?.ip || req?.headers?.['x-forwarded-for'] || req?.raw?.ip || '127.0.0.1';
|
|
21
|
+
return ip;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
GqlThrottlerGuard = _ts_decorate([
|
|
25
|
+
Injectable()
|
|
26
|
+
], GqlThrottlerGuard);
|
|
27
|
+
|
|
28
|
+
//# sourceMappingURL=graphql-throttler.guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/gql/graphql-throttler.guard.ts"],"sourcesContent":["/** biome-ignore-all lint/suspicious/noExplicitAny: <explanation> */\nimport { GqlExecutionContext } from '@vnodes/graphql';\nimport { type ExecutionContext, Injectable } from '@vnodes/nestjs/common';\nimport { ThrottlerGuard } from '@vnodes/nestjs/throttler';\n\n@Injectable()\nexport class GqlThrottlerGuard extends ThrottlerGuard {\n override getRequestResponse(context: ExecutionContext) {\n const gqlCtx = GqlExecutionContext.create(context);\n const ctx = gqlCtx.getContext();\n\n // 1. Try to find the request in the GraphQL context (Fastify style)\n // 2. Fallback to standard HTTP context (Useful if used on REST endpoints too)\n const req = ctx?.request || ctx?.req || context.switchToHttp().getRequest();\n const res = ctx?.reply || ctx?.res || context.switchToHttp().getResponse();\n\n return { req, res };\n }\n\n protected override async getTracker(req: any): Promise<string> {\n // Optional chaining (?.) is key here to stop the crash\n const ip = req?.ip || req?.headers?.['x-forwarded-for'] || req?.raw?.ip || '127.0.0.1';\n\n return ip;\n }\n}\n"],"names":["GqlExecutionContext","Injectable","ThrottlerGuard","GqlThrottlerGuard","getRequestResponse","context","gqlCtx","create","ctx","getContext","req","request","switchToHttp","getRequest","res","reply","getResponse","getTracker","ip","headers","raw"],"mappings":";AAAA,kEAAkE,GAClE,SAASA,mBAAmB,QAAQ,kBAAkB;AACtD,SAAgCC,UAAU,QAAQ,wBAAwB;AAC1E,SAASC,cAAc,QAAQ,2BAA2B;AAG1D,OAAO,MAAMC,0BAA0BD;IAC1BE,mBAAmBC,OAAyB,EAAE;QACnD,MAAMC,SAASN,oBAAoBO,MAAM,CAACF;QAC1C,MAAMG,MAAMF,OAAOG,UAAU;QAE7B,oEAAoE;QACpE,8EAA8E;QAC9E,MAAMC,MAAMF,KAAKG,WAAWH,KAAKE,OAAOL,QAAQO,YAAY,GAAGC,UAAU;QACzE,MAAMC,MAAMN,KAAKO,SAASP,KAAKM,OAAOT,QAAQO,YAAY,GAAGI,WAAW;QAExE,OAAO;YAAEN;YAAKI;QAAI;IACtB;IAEA,MAAyBG,WAAWP,GAAQ,EAAmB;QAC3D,uDAAuD;QACvD,MAAMQ,KAAKR,KAAKQ,MAAMR,KAAKS,SAAS,CAAC,kBAAkB,IAAIT,KAAKU,KAAKF,MAAM;QAE3E,OAAOA;IACX;AACJ"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Common rest api module that provides common modules as listed below
|
|
3
|
+
* - DiscoveryModule
|
|
4
|
+
* - ConfigModule
|
|
5
|
+
* - EventEmitterModule
|
|
6
|
+
* - ScheduleModule
|
|
7
|
+
* - CacheModule
|
|
8
|
+
* - ThrottlerModule
|
|
9
|
+
*
|
|
10
|
+
* Also provides the common interceptors and guards
|
|
11
|
+
* - CacheInterceptor
|
|
12
|
+
* - CacheEvictInterceptor
|
|
13
|
+
* - EmitResponseInterceptor
|
|
14
|
+
* - ThrottlerGuard
|
|
15
|
+
*/
|
|
16
|
+
export declare class CommonAppModule {
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=common-app.module.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-app.module.d.ts","sourceRoot":"","sources":["../../../src/lib/modules/common-app.module.ts"],"names":[],"mappings":"AAWA;;;;;;;;;;;;;;GAcG;AACH,qBAoDa,eAAe;CAAG"}
|
|
@@ -7,11 +7,11 @@ import { APP_GUARD, APP_INTERCEPTOR, DiscoveryModule } from '@vnodes/nestjs/core
|
|
|
7
7
|
import { EventEmitterModule } from '@vnodes/nestjs/event-emitter';
|
|
8
8
|
import { ScheduleModule } from '@vnodes/nestjs/schedule';
|
|
9
9
|
import { ThrottlerGuard, ThrottlerModule } from '@vnodes/nestjs/throttler';
|
|
10
|
-
import { CacheEvictInterceptor } from '../
|
|
11
|
-
import { EmitResponseInterceptor } from '../
|
|
12
|
-
export class
|
|
10
|
+
import { CacheEvictInterceptor } from '../api/cache-evict.interceptor.js';
|
|
11
|
+
import { EmitResponseInterceptor } from '../api/emit-response.interceptor.js';
|
|
12
|
+
export class CommonAppModule {
|
|
13
13
|
}
|
|
14
|
-
|
|
14
|
+
CommonAppModule = _ts_decorate([
|
|
15
15
|
Global(),
|
|
16
16
|
Module({
|
|
17
17
|
imports: [
|
|
@@ -82,6 +82,6 @@ CommonModule = _ts_decorate([
|
|
|
82
82
|
DiscoveryModule
|
|
83
83
|
]
|
|
84
84
|
})
|
|
85
|
-
],
|
|
85
|
+
], CommonAppModule);
|
|
86
86
|
|
|
87
|
-
//# sourceMappingURL=common.module.js.map
|
|
87
|
+
//# sourceMappingURL=common-app.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/modules/common-app.module.ts"],"sourcesContent":["import { Env } from '@vnodes/env';\nimport { CacheInterceptor, CacheModule } from '@vnodes/nestjs/cache-manager';\nimport { Global, Module } from '@vnodes/nestjs/common';\nimport { ConfigModule, ConfigService } from '@vnodes/nestjs/config';\nimport { APP_GUARD, APP_INTERCEPTOR, DiscoveryModule } from '@vnodes/nestjs/core';\nimport { EventEmitterModule } from '@vnodes/nestjs/event-emitter';\nimport { ScheduleModule } from '@vnodes/nestjs/schedule';\nimport { ThrottlerGuard, ThrottlerModule } from '@vnodes/nestjs/throttler';\nimport { CacheEvictInterceptor } from '../api/cache-evict.interceptor.js';\nimport { EmitResponseInterceptor } from '../api/emit-response.interceptor.js';\n\n/**\n * Common rest api module that provides common modules as listed below\n * - DiscoveryModule\n * - ConfigModule\n * - EventEmitterModule\n * - ScheduleModule\n * - CacheModule\n * - ThrottlerModule\n *\n * Also provides the common interceptors and guards\n * - CacheInterceptor\n * - CacheEvictInterceptor\n * - EmitResponseInterceptor\n * - ThrottlerGuard\n */\n@Global()\n@Module({\n imports: [\n DiscoveryModule,\n ConfigModule.forRoot({\n isGlobal: true,\n cache: true,\n expandVariables: true,\n }),\n EventEmitterModule.forRoot({ delimiter: '.', global: true }),\n ScheduleModule.forRoot(),\n CacheModule.registerAsync({\n isGlobal: true,\n imports: [ConfigModule],\n inject: [ConfigService],\n useFactory(config: ConfigService) {\n return {\n ttl: config.get<number>(Env.CACHE_TTL, 30_000),\n };\n },\n }),\n ThrottlerModule.forRootAsync({\n imports: [ConfigModule],\n inject: [ConfigService],\n useFactory: (config: ConfigService) => [\n {\n ttl: config.get<number>(Env.THROTTLE_TTL, 60_000),\n limit: config.get<number>(Env.THROTTLE_LIMIT, 200),\n },\n ],\n }),\n ],\n providers: [\n {\n provide: APP_INTERCEPTOR,\n useClass: CacheInterceptor,\n },\n {\n provide: APP_INTERCEPTOR,\n useClass: CacheEvictInterceptor,\n },\n {\n provide: APP_INTERCEPTOR,\n useClass: EmitResponseInterceptor,\n },\n {\n provide: APP_GUARD,\n useClass: ThrottlerGuard,\n },\n ],\n exports: [ConfigModule, EventEmitterModule, ScheduleModule, CacheModule, ThrottlerModule, DiscoveryModule],\n})\nexport class CommonAppModule {}\n"],"names":["Env","CacheInterceptor","CacheModule","Global","Module","ConfigModule","ConfigService","APP_GUARD","APP_INTERCEPTOR","DiscoveryModule","EventEmitterModule","ScheduleModule","ThrottlerGuard","ThrottlerModule","CacheEvictInterceptor","EmitResponseInterceptor","CommonAppModule","imports","forRoot","isGlobal","cache","expandVariables","delimiter","global","registerAsync","inject","useFactory","config","ttl","get","CACHE_TTL","forRootAsync","THROTTLE_TTL","limit","THROTTLE_LIMIT","providers","provide","useClass","exports"],"mappings":";AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,+BAA+B;AAC7E,SAASC,MAAM,EAAEC,MAAM,QAAQ,wBAAwB;AACvD,SAASC,YAAY,EAAEC,aAAa,QAAQ,wBAAwB;AACpE,SAASC,SAAS,EAAEC,eAAe,EAAEC,eAAe,QAAQ,sBAAsB;AAClF,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,cAAc,EAAEC,eAAe,QAAQ,2BAA2B;AAC3E,SAASC,qBAAqB,QAAQ,oCAAoC;AAC1E,SAASC,uBAAuB,QAAQ,sCAAsC;AAqE9E,OAAO,MAAMC;AAAiB;;;;QAlD1BC,SAAS;YACLR;YACAJ,aAAaa,OAAO,CAAC;gBACjBC,UAAU;gBACVC,OAAO;gBACPC,iBAAiB;YACrB;YACAX,mBAAmBQ,OAAO,CAAC;gBAAEI,WAAW;gBAAKC,QAAQ;YAAK;YAC1DZ,eAAeO,OAAO;YACtBhB,YAAYsB,aAAa,CAAC;gBACtBL,UAAU;gBACVF,SAAS;oBAACZ;iBAAa;gBACvBoB,QAAQ;oBAACnB;iBAAc;gBACvBoB,YAAWC,MAAqB;oBAC5B,OAAO;wBACHC,KAAKD,OAAOE,GAAG,CAAS7B,IAAI8B,SAAS,EAAE;oBAC3C;gBACJ;YACJ;YACAjB,gBAAgBkB,YAAY,CAAC;gBACzBd,SAAS;oBAACZ;iBAAa;gBACvBoB,QAAQ;oBAACnB;iBAAc;gBACvBoB,YAAY,CAACC,SAA0B;wBACnC;4BACIC,KAAKD,OAAOE,GAAG,CAAS7B,IAAIgC,YAAY,EAAE;4BAC1CC,OAAON,OAAOE,GAAG,CAAS7B,IAAIkC,cAAc,EAAE;wBAClD;qBACH;YACL;SACH;QACDC,WAAW;YACP;gBACIC,SAAS5B;gBACT6B,UAAUpC;YACd;YACA;gBACImC,SAAS5B;gBACT6B,UAAUvB;YACd;YACA;gBACIsB,SAAS5B;gBACT6B,UAAUtB;YACd;YACA;gBACIqB,SAAS7B;gBACT8B,UAAUzB;YACd;SACH;QACD0B,SAAS;YAACjC;YAAcK;YAAoBC;YAAgBT;YAAaW;YAAiBJ;SAAgB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common-grapql.module.d.ts","sourceRoot":"","sources":["../../../src/lib/modules/common-grapql.module.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,qBAwBa,kBAAkB;CAAG"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { _ as _ts_decorate } from "@swc/helpers/_/_ts_decorate";
|
|
2
|
+
import { ApolloDriver, GraphQLModule } from '@vnodes/graphql';
|
|
3
|
+
import { Global, Module } from '@vnodes/nestjs/common';
|
|
4
|
+
import { ConfigModule } from '@vnodes/nestjs/config';
|
|
5
|
+
import { DiscoveryModule } from '@vnodes/nestjs/core';
|
|
6
|
+
import { EventEmitterModule } from '@vnodes/nestjs/event-emitter';
|
|
7
|
+
import { ScheduleModule } from '@vnodes/nestjs/schedule';
|
|
8
|
+
export class CommonGrapqlModule {
|
|
9
|
+
}
|
|
10
|
+
CommonGrapqlModule = _ts_decorate([
|
|
11
|
+
Global(),
|
|
12
|
+
Module({
|
|
13
|
+
imports: [
|
|
14
|
+
DiscoveryModule,
|
|
15
|
+
ConfigModule.forRoot({
|
|
16
|
+
isGlobal: true,
|
|
17
|
+
cache: true,
|
|
18
|
+
expandVariables: true
|
|
19
|
+
}),
|
|
20
|
+
GraphQLModule.forRoot({
|
|
21
|
+
driver: ApolloDriver,
|
|
22
|
+
autoSchemaFile: true,
|
|
23
|
+
playground: false,
|
|
24
|
+
installSubscriptionHandlers: true,
|
|
25
|
+
subscriptions: {
|
|
26
|
+
'graphql-ws': true,
|
|
27
|
+
'subscriptions-transport-ws': true
|
|
28
|
+
}
|
|
29
|
+
}),
|
|
30
|
+
EventEmitterModule.forRoot({
|
|
31
|
+
delimiter: '.',
|
|
32
|
+
global: true
|
|
33
|
+
}),
|
|
34
|
+
ScheduleModule.forRoot()
|
|
35
|
+
],
|
|
36
|
+
exports: [
|
|
37
|
+
ConfigModule,
|
|
38
|
+
GraphQLModule,
|
|
39
|
+
EventEmitterModule,
|
|
40
|
+
ScheduleModule,
|
|
41
|
+
DiscoveryModule
|
|
42
|
+
]
|
|
43
|
+
})
|
|
44
|
+
], CommonGrapqlModule);
|
|
45
|
+
|
|
46
|
+
//# sourceMappingURL=common-grapql.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/lib/modules/common-grapql.module.ts"],"sourcesContent":["import { ApolloDriver, type ApolloDriverConfig, GraphQLModule } from '@vnodes/graphql';\nimport { Global, Module } from '@vnodes/nestjs/common';\nimport { ConfigModule } from '@vnodes/nestjs/config';\nimport { DiscoveryModule } from '@vnodes/nestjs/core';\nimport { EventEmitterModule } from '@vnodes/nestjs/event-emitter';\nimport { ScheduleModule } from '@vnodes/nestjs/schedule';\n/**\n *\n */\n@Global()\n@Module({\n imports: [\n DiscoveryModule,\n ConfigModule.forRoot({\n isGlobal: true,\n cache: true,\n expandVariables: true,\n }),\n GraphQLModule.forRoot<ApolloDriverConfig>({\n driver: ApolloDriver,\n autoSchemaFile: true,\n playground: false,\n installSubscriptionHandlers: true,\n subscriptions: {\n 'graphql-ws': true,\n 'subscriptions-transport-ws': true,\n },\n }),\n EventEmitterModule.forRoot({ delimiter: '.', global: true }),\n ScheduleModule.forRoot(),\n ],\n exports: [ConfigModule, GraphQLModule, EventEmitterModule, ScheduleModule, DiscoveryModule],\n})\nexport class CommonGrapqlModule {}\n"],"names":["ApolloDriver","GraphQLModule","Global","Module","ConfigModule","DiscoveryModule","EventEmitterModule","ScheduleModule","CommonGrapqlModule","imports","forRoot","isGlobal","cache","expandVariables","driver","autoSchemaFile","playground","installSubscriptionHandlers","subscriptions","delimiter","global","exports"],"mappings":";AAAA,SAASA,YAAY,EAA2BC,aAAa,QAAQ,kBAAkB;AACvF,SAASC,MAAM,EAAEC,MAAM,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,wBAAwB;AACrD,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,cAAc,QAAQ,0BAA0B;AA4BzD,OAAO,MAAMC;AAAoB;;;;QAtB7BC,SAAS;YACLJ;YACAD,aAAaM,OAAO,CAAC;gBACjBC,UAAU;gBACVC,OAAO;gBACPC,iBAAiB;YACrB;YACAZ,cAAcS,OAAO,CAAqB;gBACtCI,QAAQd;gBACRe,gBAAgB;gBAChBC,YAAY;gBACZC,6BAA6B;gBAC7BC,eAAe;oBACX,cAAc;oBACd,8BAA8B;gBAClC;YACJ;YACAZ,mBAAmBI,OAAO,CAAC;gBAAES,WAAW;gBAAKC,QAAQ;YAAK;YAC1Db,eAAeG,OAAO;SACzB;QACDW,SAAS;YAACjB;YAAcH;YAAeK;YAAoBC;YAAgBF;SAAgB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vnodes/nestjs-common",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.25",
|
|
4
4
|
"description": "@vnodes/nestjs-common",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"nestjs-common"
|
|
@@ -51,14 +51,16 @@
|
|
|
51
51
|
"@swc/helpers": "~0.5.18"
|
|
52
52
|
},
|
|
53
53
|
"devDependencies": {
|
|
54
|
-
"@vnodes/env": "0.0.
|
|
55
|
-
"@vnodes/
|
|
56
|
-
"@vnodes/nestjs": "0.0.
|
|
54
|
+
"@vnodes/env": "0.0.25",
|
|
55
|
+
"@vnodes/graphql": "0.0.20",
|
|
56
|
+
"@vnodes/nestjs": "0.0.25",
|
|
57
|
+
"@vnodes/metadata": "0.0.25"
|
|
57
58
|
},
|
|
58
59
|
"peerDependencies": {
|
|
59
|
-
"@vnodes/env": "0.0.
|
|
60
|
-
"@vnodes/metadata": "0.0.
|
|
61
|
-
"@vnodes/
|
|
60
|
+
"@vnodes/env": "0.0.25",
|
|
61
|
+
"@vnodes/metadata": "0.0.25",
|
|
62
|
+
"@vnodes/graphql": "0.0.20",
|
|
63
|
+
"@vnodes/nestjs": "0.0.25"
|
|
62
64
|
},
|
|
63
65
|
"publishConfig": {
|
|
64
66
|
"access": "public",
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cache-evict.interceptor.d.ts","sourceRoot":"","sources":["../../../src/lib/interceptors/cache-evict.interceptor.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,OAAO,EAAE,KAAK,EAAE,MAAM,8BAA8B,CAAC;AACrD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAc,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,KAAK,UAAU,EAAO,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,qBACa,qBAAqB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IACnD,OAAO,CAAC,YAAY;gBAAZ,YAAY,EAAE,KAAK;IAEvC,SAAS,CAAC,QAAQ,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;CAO1E"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/interceptors/cache-evict.interceptor.ts"],"sourcesContent":["/** biome-ignore-all lint/style/useImportType: DI */\n\nimport { Cache } from '@vnodes/nestjs/cache-manager';\nimport { type CallHandler, type ExecutionContext, Injectable, type NestInterceptor } from '@vnodes/nestjs/common';\nimport { type Observable, tap } from '@vnodes/nestjs/rxjs';\n\n/**\n * Clear cache when create/update operations happen\n */\n@Injectable()\nexport class CacheEvictInterceptor<T> implements NestInterceptor<T> {\n constructor(private cacheManager: Cache) {}\n\n intercept(_context: ExecutionContext, next: CallHandler): Observable<T> {\n return next.handle().pipe(\n tap(async () => {\n await this.cacheManager.clear();\n }),\n );\n }\n}\n"],"names":["Cache","Injectable","tap","CacheEvictInterceptor","cacheManager","intercept","_context","next","handle","pipe","clear"],"mappings":";;AAAA,kDAAkD,GAElD,SAASA,KAAK,QAAQ,+BAA+B;AACrD,SAAkDC,UAAU,QAA8B,wBAAwB;AAClH,SAA0BC,GAAG,QAAQ,sBAAsB;AAM3D,OAAO,MAAMC;;IACT,YAAY,AAAQC,YAAmB,CAAE;aAArBA,eAAAA;IAAsB;IAE1CC,UAAUC,QAA0B,EAAEC,IAAiB,EAAiB;QACpE,OAAOA,KAAKC,MAAM,GAAGC,IAAI,CACrBP,IAAI;YACA,MAAM,IAAI,CAACE,YAAY,CAACM,KAAK;QACjC;IAER;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"emit-response.interceptor.d.ts","sourceRoot":"","sources":["../../../src/lib/interceptors/emit-response.interceptor.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAGpD,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAc,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAClH,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,KAAK,UAAU,EAAO,MAAM,qBAAqB,CAAC;AAE3D;;GAEG;AACH,qBACa,uBAAuB,CAAC,CAAC,CAAE,YAAW,eAAe,CAAC,CAAC,CAAC;IAE7D,OAAO,CAAC,QAAQ,CAAC,SAAS;IAC1B,OAAO,CAAC,QAAQ,CAAC,OAAO;gBADP,SAAS,EAAE,SAAS,EACpB,OAAO,EAAE,aAAa;IAG3C,SAAS,CAAC,OAAO,EAAE,gBAAgB,EAAE,IAAI,EAAE,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC;CAYzE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/interceptors/emit-response.interceptor.ts"],"sourcesContent":["/** biome-ignore-all lint/style/useImportType: DI */\n\nimport { getOperationName, getResourceName, isEmitResponse } from '@vnodes/metadata';\nimport { type CallHandler, type ExecutionContext, Injectable, type NestInterceptor } from '@vnodes/nestjs/common';\nimport { Reflector } from '@vnodes/nestjs/core';\nimport { EventEmitter2 } from '@vnodes/nestjs/event-emitter';\nimport { type Observable, tap } from '@vnodes/nestjs/rxjs';\n\n/**\n * Emit response if the method has EmitResponse decorator\n */\n@Injectable()\nexport class EmitResponseInterceptor<T> implements NestInterceptor<T> {\n constructor(\n private readonly reflector: Reflector,\n private readonly emitter: EventEmitter2,\n ) {}\n\n intercept(context: ExecutionContext, next: CallHandler): Observable<T> {\n return next.handle().pipe(\n tap(async (data) => {\n if (isEmitResponse(this.reflector, context)) {\n const resourceName = getResourceName(this.reflector, context);\n const operationName = getOperationName(this.reflector, context);\n const eventName = `${resourceName}.${operationName}`;\n this.emitter.emit(eventName, data);\n }\n }),\n );\n }\n}\n"],"names":["getOperationName","getResourceName","isEmitResponse","Injectable","Reflector","EventEmitter2","tap","EmitResponseInterceptor","reflector","emitter","intercept","context","next","handle","pipe","data","resourceName","operationName","eventName","emit"],"mappings":";;AAAA,kDAAkD,GAElD,SAASA,gBAAgB,EAAEC,eAAe,EAAEC,cAAc,QAAQ,mBAAmB;AACrF,SAAkDC,UAAU,QAA8B,wBAAwB;AAClH,SAASC,SAAS,QAAQ,sBAAsB;AAChD,SAASC,aAAa,QAAQ,+BAA+B;AAC7D,SAA0BC,GAAG,QAAQ,sBAAsB;AAM3D,OAAO,MAAMC;;;IACT,YACI,AAAiBC,SAAoB,EACrC,AAAiBC,OAAsB,CACzC;aAFmBD,YAAAA;aACAC,UAAAA;IAClB;IAEHC,UAAUC,OAAyB,EAAEC,IAAiB,EAAiB;QACnE,OAAOA,KAAKC,MAAM,GAAGC,IAAI,CACrBR,IAAI,OAAOS;YACP,IAAIb,eAAe,IAAI,CAACM,SAAS,EAAEG,UAAU;gBACzC,MAAMK,eAAef,gBAAgB,IAAI,CAACO,SAAS,EAAEG;gBACrD,MAAMM,gBAAgBjB,iBAAiB,IAAI,CAACQ,SAAS,EAAEG;gBACvD,MAAMO,YAAY,GAAGF,aAAa,CAAC,EAAEC,eAAe;gBACpD,IAAI,CAACR,OAAO,CAACU,IAAI,CAACD,WAAWH;YACjC;QACJ;IAER;AACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"common.module.d.ts","sourceRoot":"","sources":["../../../src/lib/modules/common.module.ts"],"names":[],"mappings":"AAWA;;GAEG;AACH,qBAqDa,YAAY;CAAG"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/lib/modules/common.module.ts"],"sourcesContent":["import { Env } from '@vnodes/env';\nimport { CacheInterceptor, CacheModule } from '@vnodes/nestjs/cache-manager';\nimport { Global, Module } from '@vnodes/nestjs/common';\nimport { ConfigModule, ConfigService } from '@vnodes/nestjs/config';\nimport { APP_GUARD, APP_INTERCEPTOR, DiscoveryModule } from '@vnodes/nestjs/core';\nimport { EventEmitterModule } from '@vnodes/nestjs/event-emitter';\nimport { ScheduleModule } from '@vnodes/nestjs/schedule';\nimport { ThrottlerGuard, ThrottlerModule } from '@vnodes/nestjs/throttler';\nimport { CacheEvictInterceptor } from '../interceptors/cache-evict.interceptor.js';\nimport { EmitResponseInterceptor } from '../interceptors/emit-response.interceptor.js';\n\n/**\n * Common module that provies all common modules and app interceptors, piples, and guards\n */\n@Global()\n@Module({\n imports: [\n DiscoveryModule,\n ConfigModule.forRoot({\n isGlobal: true,\n cache: true,\n expandVariables: true,\n }),\n EventEmitterModule.forRoot({ delimiter: '.', global: true }),\n ScheduleModule.forRoot(),\n CacheModule.registerAsync({\n isGlobal: true,\n imports: [ConfigModule],\n inject: [ConfigService],\n useFactory(config: ConfigService) {\n return {\n ttl: config.get<number>(Env.CACHE_TTL, 30_000),\n };\n },\n }),\n ThrottlerModule.forRootAsync({\n imports: [ConfigModule],\n inject: [ConfigService],\n useFactory: (config: ConfigService) => [\n {\n ttl: config.get<number>(Env.THROTTLE_TTL, 60_000),\n limit: config.get<number>(Env.THROTTLE_LIMIT, 200),\n },\n ],\n }),\n ],\n providers: [\n {\n provide: APP_INTERCEPTOR,\n useClass: CacheInterceptor,\n },\n\n {\n provide: APP_INTERCEPTOR,\n useClass: CacheEvictInterceptor,\n },\n {\n provide: APP_INTERCEPTOR,\n useClass: EmitResponseInterceptor,\n },\n {\n provide: APP_GUARD,\n useClass: ThrottlerGuard,\n },\n ],\n exports: [ConfigModule, EventEmitterModule, ScheduleModule, CacheModule, ThrottlerModule, DiscoveryModule],\n})\nexport class CommonModule {}\n"],"names":["Env","CacheInterceptor","CacheModule","Global","Module","ConfigModule","ConfigService","APP_GUARD","APP_INTERCEPTOR","DiscoveryModule","EventEmitterModule","ScheduleModule","ThrottlerGuard","ThrottlerModule","CacheEvictInterceptor","EmitResponseInterceptor","CommonModule","imports","forRoot","isGlobal","cache","expandVariables","delimiter","global","registerAsync","inject","useFactory","config","ttl","get","CACHE_TTL","forRootAsync","THROTTLE_TTL","limit","THROTTLE_LIMIT","providers","provide","useClass","exports"],"mappings":";AAAA,SAASA,GAAG,QAAQ,cAAc;AAClC,SAASC,gBAAgB,EAAEC,WAAW,QAAQ,+BAA+B;AAC7E,SAASC,MAAM,EAAEC,MAAM,QAAQ,wBAAwB;AACvD,SAASC,YAAY,EAAEC,aAAa,QAAQ,wBAAwB;AACpE,SAASC,SAAS,EAAEC,eAAe,EAAEC,eAAe,QAAQ,sBAAsB;AAClF,SAASC,kBAAkB,QAAQ,+BAA+B;AAClE,SAASC,cAAc,QAAQ,0BAA0B;AACzD,SAASC,cAAc,EAAEC,eAAe,QAAQ,2BAA2B;AAC3E,SAASC,qBAAqB,QAAQ,6CAA6C;AACnF,SAASC,uBAAuB,QAAQ,+CAA+C;AA0DvF,OAAO,MAAMC;AAAc;;;;QAnDvBC,SAAS;YACLR;YACAJ,aAAaa,OAAO,CAAC;gBACjBC,UAAU;gBACVC,OAAO;gBACPC,iBAAiB;YACrB;YACAX,mBAAmBQ,OAAO,CAAC;gBAAEI,WAAW;gBAAKC,QAAQ;YAAK;YAC1DZ,eAAeO,OAAO;YACtBhB,YAAYsB,aAAa,CAAC;gBACtBL,UAAU;gBACVF,SAAS;oBAACZ;iBAAa;gBACvBoB,QAAQ;oBAACnB;iBAAc;gBACvBoB,YAAWC,MAAqB;oBAC5B,OAAO;wBACHC,KAAKD,OAAOE,GAAG,CAAS7B,IAAI8B,SAAS,EAAE;oBAC3C;gBACJ;YACJ;YACAjB,gBAAgBkB,YAAY,CAAC;gBACzBd,SAAS;oBAACZ;iBAAa;gBACvBoB,QAAQ;oBAACnB;iBAAc;gBACvBoB,YAAY,CAACC,SAA0B;wBACnC;4BACIC,KAAKD,OAAOE,GAAG,CAAS7B,IAAIgC,YAAY,EAAE;4BAC1CC,OAAON,OAAOE,GAAG,CAAS7B,IAAIkC,cAAc,EAAE;wBAClD;qBACH;YACL;SACH;QACDC,WAAW;YACP;gBACIC,SAAS5B;gBACT6B,UAAUpC;YACd;YAEA;gBACImC,SAAS5B;gBACT6B,UAAUvB;YACd;YACA;gBACIsB,SAAS5B;gBACT6B,UAAUtB;YACd;YACA;gBACIqB,SAAS7B;gBACT8B,UAAUzB;YACd;SACH;QACD0B,SAAS;YAACjC;YAAcK;YAAoBC;YAAgBT;YAAaW;YAAiBJ;SAAgB"}
|