@dangao/bun-server 1.6.0 → 1.7.1
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 +72 -3
- package/dist/cache/cache-module.d.ts +18 -0
- package/dist/cache/cache-module.d.ts.map +1 -1
- package/dist/cache/index.d.ts +3 -1
- package/dist/cache/index.d.ts.map +1 -1
- package/dist/cache/interceptors.d.ts +41 -0
- package/dist/cache/interceptors.d.ts.map +1 -0
- package/dist/cache/service-proxy.d.ts +62 -0
- package/dist/cache/service-proxy.d.ts.map +1 -0
- package/dist/controller/controller.d.ts +8 -0
- package/dist/controller/controller.d.ts.map +1 -1
- package/dist/core/application.d.ts +5 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/server.d.ts.map +1 -1
- package/dist/di/container.d.ts +18 -1
- package/dist/di/container.d.ts.map +1 -1
- package/dist/di/index.d.ts +1 -1
- package/dist/di/index.d.ts.map +1 -1
- package/dist/di/types.d.ts +22 -0
- package/dist/di/types.d.ts.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3235 -2875
- package/dist/websocket/registry.d.ts +19 -0
- package/dist/websocket/registry.d.ts.map +1 -1
- package/docs/symbol-interface-pattern.md +431 -0
- package/docs/zh/symbol-interface-pattern.md +431 -0
- package/package.json +1 -1
- package/src/cache/cache-module.ts +37 -0
- package/src/cache/index.ts +16 -1
- package/src/cache/interceptors.ts +295 -0
- package/src/cache/service-proxy.ts +219 -0
- package/src/controller/controller.ts +30 -6
- package/src/core/application.ts +25 -1
- package/src/core/server.ts +1 -0
- package/src/di/container.ts +57 -7
- package/src/di/index.ts +7 -1
- package/src/di/types.ts +29 -0
- package/src/index.ts +7 -0
- package/src/websocket/registry.ts +114 -14
- package/tests/cache/cache-decorators.test.ts +284 -0
- package/tests/controller/path-combination.test.ts +353 -0
- package/tests/websocket/gateway.test.ts +207 -1
package/README.md
CHANGED
|
@@ -249,11 +249,80 @@ app.listen();
|
|
|
249
249
|
|
|
250
250
|
## Examples & Extensions
|
|
251
251
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
252
|
+
### 📚 Organized Examples
|
|
253
|
+
|
|
254
|
+
Examples are organized by difficulty and feature category:
|
|
255
|
+
|
|
256
|
+
- **[Quick Start](./examples/00-quick-start/)** - Get started in 5 minutes
|
|
257
|
+
- `01-hello-world.ts` - Minimal example (5 lines)
|
|
258
|
+
- `02-basic-routing.ts` - HTTP methods and route parameters
|
|
259
|
+
- `03-dependency-injection.ts` - DI basics with services
|
|
260
|
+
|
|
261
|
+
- **[Core Features](./examples/01-core-features/)** - Deep dive into framework mechanics
|
|
262
|
+
- `basic-app.ts` - DI + Logger + Swagger + Config integration
|
|
263
|
+
- `multi-module-app.ts` - Module dependencies and organization
|
|
264
|
+
- `context-scope-app.ts` - Request scoping and ContextService
|
|
265
|
+
- `full-app.ts` - Validation, uploads, static files, WebSocket
|
|
266
|
+
|
|
267
|
+
- **[Official Modules](./examples/02-official-modules/)** - Ready-to-use modules
|
|
268
|
+
- `auth-app.ts` - JWT + OAuth2 authentication (with Web UI)
|
|
269
|
+
- `session-app.ts` - Session management
|
|
270
|
+
- `database-app.ts` - Database connection and queries
|
|
271
|
+
- `orm-app.ts` - Entity + Repository pattern
|
|
272
|
+
- `cache-app.ts` - Caching with decorators
|
|
273
|
+
- `queue-app.ts` - Task queues and Cron jobs
|
|
274
|
+
|
|
275
|
+
- **[Advanced](./examples/03-advanced/)** - Custom framework extensions
|
|
276
|
+
- `custom-decorator-app.ts` - Create custom decorators
|
|
277
|
+
- `websocket-chat-app.ts` - Complete WebSocket chat with rooms (with Web UI)
|
|
278
|
+
- `microservice-app.ts` - Microservices architecture
|
|
279
|
+
|
|
280
|
+
- **[Real World](./examples/04-real-world/)** - Production-ready examples
|
|
281
|
+
- `database-test-app.ts` - Database connection tester (Web UI)
|
|
282
|
+
- `perf/app.ts` - Performance benchmarking
|
|
283
|
+
|
|
284
|
+
### 🔑 Symbol + Interface Pattern
|
|
285
|
+
|
|
286
|
+
This framework features a unique **Symbol + Interface co-naming pattern** that solves TypeScript's type erasure problem:
|
|
287
|
+
|
|
288
|
+
```typescript
|
|
289
|
+
// 1. Define interface and Symbol with same name
|
|
290
|
+
interface UserService {
|
|
291
|
+
find(id: string): Promise<User>;
|
|
292
|
+
}
|
|
293
|
+
const UserService = Symbol('UserService');
|
|
294
|
+
|
|
295
|
+
// 2. Implement interface
|
|
296
|
+
@Injectable()
|
|
297
|
+
class UserServiceImpl implements UserService {
|
|
298
|
+
async find(id: string) { ... }
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
// 3. Register with Symbol token
|
|
302
|
+
@Module({
|
|
303
|
+
providers: [{
|
|
304
|
+
provide: UserService, // Symbol token
|
|
305
|
+
useClass: UserServiceImpl, // Implementation
|
|
306
|
+
}],
|
|
307
|
+
})
|
|
308
|
+
|
|
309
|
+
// 4. Inject with type safety
|
|
310
|
+
constructor(private readonly userService: UserService) {}
|
|
311
|
+
```
|
|
312
|
+
|
|
313
|
+
**Key**: Import as `import { UserService }` (not `import type { UserService }`).
|
|
314
|
+
|
|
315
|
+
See [Symbol + Interface Pattern Guide](./docs/symbol-interface-pattern.md) for details.
|
|
316
|
+
|
|
317
|
+
### 🔌 Extensions
|
|
318
|
+
|
|
319
|
+
- `packages/@dangao/bun-server/src/extensions/`: Official extensions (e.g.
|
|
255
320
|
`LoggerExtension`) for plugging in external capabilities.
|
|
256
321
|
|
|
322
|
+
### 📖 Complete Example Index
|
|
323
|
+
|
|
324
|
+
See [examples/README.md](./examples/README.md) for the complete catalog with learning paths, difficulty ratings, and usage scenarios.
|
|
325
|
+
|
|
257
326
|
## Benchmark Suite
|
|
258
327
|
|
|
259
328
|
Benchmarks live in `benchmark/` and rely on `PerformanceHarness` &
|
|
@@ -1,9 +1,27 @@
|
|
|
1
1
|
import { type CacheModuleOptions } from './types';
|
|
2
|
+
import { CachePostProcessor } from './service-proxy';
|
|
3
|
+
/**
|
|
4
|
+
* 缓存后处理器 Token
|
|
5
|
+
*/
|
|
6
|
+
export declare const CACHE_POST_PROCESSOR_TOKEN: unique symbol;
|
|
2
7
|
export declare class CacheModule {
|
|
8
|
+
/**
|
|
9
|
+
* 缓存后处理器实例(单例)
|
|
10
|
+
*/
|
|
11
|
+
private static postProcessor;
|
|
3
12
|
/**
|
|
4
13
|
* 创建缓存模块
|
|
5
14
|
* @param options - 模块配置
|
|
6
15
|
*/
|
|
7
16
|
static forRoot(options?: CacheModuleOptions): typeof CacheModule;
|
|
17
|
+
/**
|
|
18
|
+
* 获取缓存后处理器
|
|
19
|
+
* 用于在应用启动时注册到 DI 容器
|
|
20
|
+
*/
|
|
21
|
+
static getPostProcessor(): CachePostProcessor | null;
|
|
22
|
+
/**
|
|
23
|
+
* 重置模块状态(主要用于测试)
|
|
24
|
+
*/
|
|
25
|
+
static reset(): void;
|
|
8
26
|
}
|
|
9
27
|
//# sourceMappingURL=cache-module.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cache-module.d.ts","sourceRoot":"","sources":["../../src/cache/cache-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"cache-module.d.ts","sourceRoot":"","sources":["../../src/cache/cache-module.ts"],"names":[],"mappings":"AAGA,OAAO,EAIL,KAAK,kBAAkB,EAExB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,0BAA0B,eAAoD,CAAC;AAE5F,qBAGa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,aAAa,CAAmC;IAE/D;;;OAGG;WACW,OAAO,CACnB,OAAO,GAAE,kBAAuB,GAC/B,OAAO,WAAW;IAwDrB;;;OAGG;WACW,gBAAgB,IAAI,kBAAkB,GAAG,IAAI;IAI3D;;OAEG;WACW,KAAK,IAAI,IAAI;CAI5B"}
|
package/dist/cache/index.d.ts
CHANGED
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
export { CacheModule } from './cache-module';
|
|
1
|
+
export { CacheModule, CACHE_POST_PROCESSOR_TOKEN } from './cache-module';
|
|
2
2
|
export { CacheService } from './service';
|
|
3
3
|
export { Cacheable, CacheEvict, CachePut, getCacheableMetadata, getCacheEvictMetadata, getCachePutMetadata, type CacheableOptions, type CacheEvictOptions, type CachePutOptions, type CacheableMetadata, type CacheEvictMetadata, type CachePutMetadata, } from './decorators';
|
|
4
4
|
export { MemoryCacheStore, RedisCacheStore, CACHE_SERVICE_TOKEN, CACHE_OPTIONS_TOKEN, } from './types';
|
|
5
5
|
export type { CacheStore, CacheModuleOptions, RedisCacheStoreOptions, } from './types';
|
|
6
|
+
export { CacheServiceProxy, CachePostProcessor, EnableCacheProxy, isCacheProxyEnabled, CACHE_PROXY_ENABLED_KEY, } from './service-proxy';
|
|
7
|
+
export { CacheableInterceptor, CacheEvictInterceptor, CachePutInterceptor, CACHEABLE_INTERCEPTOR_KEY, CACHE_EVICT_INTERCEPTOR_KEY, CACHE_PUT_INTERCEPTOR_KEY, } from './interceptors';
|
|
6
8
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cache/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,0BAA0B,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,EACL,SAAS,EACT,UAAU,EACV,QAAQ,EACR,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,KAAK,gBAAgB,EACrB,KAAK,iBAAiB,EACtB,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,GACtB,MAAM,cAAc,CAAC;AACtB,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AACjB,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,uBAAuB,GACxB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,2BAA2B,EAC3B,yBAAyB,GAC1B,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import { BaseInterceptor } from '../interceptor/base-interceptor';
|
|
3
|
+
import type { Container } from '../di/container';
|
|
4
|
+
import type { Context } from '../core/context';
|
|
5
|
+
/**
|
|
6
|
+
* 缓存装饰器元数据键(用于拦截器注册)
|
|
7
|
+
*/
|
|
8
|
+
export declare const CACHEABLE_INTERCEPTOR_KEY: unique symbol;
|
|
9
|
+
export declare const CACHE_EVICT_INTERCEPTOR_KEY: unique symbol;
|
|
10
|
+
export declare const CACHE_PUT_INTERCEPTOR_KEY: unique symbol;
|
|
11
|
+
/**
|
|
12
|
+
* @Cacheable 拦截器
|
|
13
|
+
* 实现方法结果缓存功能
|
|
14
|
+
*/
|
|
15
|
+
export declare class CacheableInterceptor extends BaseInterceptor {
|
|
16
|
+
/**
|
|
17
|
+
* 执行拦截器逻辑
|
|
18
|
+
*/
|
|
19
|
+
execute<T>(target: unknown, propertyKey: string | symbol, originalMethod: (...args: unknown[]) => T | Promise<T>, args: unknown[], container: Container, context?: Context): Promise<T>;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* @CacheEvict 拦截器
|
|
23
|
+
* 实现缓存清除功能
|
|
24
|
+
*/
|
|
25
|
+
export declare class CacheEvictInterceptor extends BaseInterceptor {
|
|
26
|
+
/**
|
|
27
|
+
* 执行拦截器逻辑
|
|
28
|
+
*/
|
|
29
|
+
execute<T>(target: unknown, propertyKey: string | symbol, originalMethod: (...args: unknown[]) => T | Promise<T>, args: unknown[], container: Container, context?: Context): Promise<T>;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* @CachePut 拦截器
|
|
33
|
+
* 实现缓存更新功能(总是执行方法并更新缓存)
|
|
34
|
+
*/
|
|
35
|
+
export declare class CachePutInterceptor extends BaseInterceptor {
|
|
36
|
+
/**
|
|
37
|
+
* 执行拦截器逻辑
|
|
38
|
+
*/
|
|
39
|
+
execute<T>(target: unknown, propertyKey: string | symbol, originalMethod: (...args: unknown[]) => T | Promise<T>, args: unknown[], container: Container, context?: Context): Promise<T>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=interceptors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interceptors.d.ts","sourceRoot":"","sources":["../../src/cache/interceptors.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAClE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAY/C;;GAEG;AACH,eAAO,MAAM,yBAAyB,eAA+C,CAAC;AACtF,eAAO,MAAM,2BAA2B,eAAiD,CAAC;AAC1F,eAAO,MAAM,yBAAyB,eAA+C,CAAC;AA8DtF;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,eAAe;IACvD;;OAEG;IACU,OAAO,CAAC,CAAC,EACpB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACtD,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,CAAC;CAwDd;AAED;;;GAGG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD;;OAEG;IACU,OAAO,CAAC,CAAC,EACpB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACtD,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,CAAC;CAyDd;AAED;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD;;OAEG;IACU,OAAO,CAAC,CAAC,EACpB,MAAM,EAAE,OAAO,EACf,WAAW,EAAE,MAAM,GAAG,MAAM,EAC5B,cAAc,EAAE,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACtD,IAAI,EAAE,OAAO,EAAE,EACf,SAAS,EAAE,SAAS,EACpB,OAAO,CAAC,EAAE,OAAO,GAChB,OAAO,CAAC,CAAC,CAAC;CAkDd"}
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import 'reflect-metadata';
|
|
2
|
+
import type { Container } from '../di/container';
|
|
3
|
+
import type { InstancePostProcessor } from '../di/types';
|
|
4
|
+
import type { Constructor } from '../core/types';
|
|
5
|
+
/**
|
|
6
|
+
* 缓存服务代理工厂
|
|
7
|
+
* 为服务实例创建代理,拦截带有缓存装饰器的方法
|
|
8
|
+
*/
|
|
9
|
+
export declare class CacheServiceProxy {
|
|
10
|
+
private static cacheableInterceptor;
|
|
11
|
+
private static cacheEvictInterceptor;
|
|
12
|
+
private static cachePutInterceptor;
|
|
13
|
+
/**
|
|
14
|
+
* 为服务实例创建缓存代理
|
|
15
|
+
* @param instance - 原始服务实例
|
|
16
|
+
* @param container - DI 容器
|
|
17
|
+
* @returns 代理实例
|
|
18
|
+
*/
|
|
19
|
+
static createProxy<T extends object>(instance: T, container: Container): T;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* 元数据键:标记服务需要缓存代理
|
|
23
|
+
*/
|
|
24
|
+
export declare const CACHE_PROXY_ENABLED_KEY: unique symbol;
|
|
25
|
+
/**
|
|
26
|
+
* 启用服务缓存代理的装饰器
|
|
27
|
+
* 用于标记服务类需要缓存代理支持
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* @Injectable()
|
|
32
|
+
* @EnableCacheProxy()
|
|
33
|
+
* class UserService {
|
|
34
|
+
* @Cacheable({ key: 'user:{0}', ttl: 60000 })
|
|
35
|
+
* async findById(id: string) {
|
|
36
|
+
* return await this.db.findUser(id);
|
|
37
|
+
* }
|
|
38
|
+
* }
|
|
39
|
+
* ```
|
|
40
|
+
*/
|
|
41
|
+
export declare function EnableCacheProxy(): ClassDecorator;
|
|
42
|
+
/**
|
|
43
|
+
* 检查类是否启用了缓存代理
|
|
44
|
+
* @param target - 目标类
|
|
45
|
+
* @returns 是否启用
|
|
46
|
+
*/
|
|
47
|
+
export declare function isCacheProxyEnabled(target: Function): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 缓存实例后处理器
|
|
50
|
+
* 自动为带有 @EnableCacheProxy() 装饰器的服务创建缓存代理
|
|
51
|
+
*/
|
|
52
|
+
export declare class CachePostProcessor implements InstancePostProcessor {
|
|
53
|
+
/**
|
|
54
|
+
* 优先级(较低以确保在其他处理器之后运行)
|
|
55
|
+
*/
|
|
56
|
+
priority: number;
|
|
57
|
+
/**
|
|
58
|
+
* 处理新创建的实例
|
|
59
|
+
*/
|
|
60
|
+
postProcess<T>(instance: T, constructor: Constructor<T>, container: unknown): T;
|
|
61
|
+
}
|
|
62
|
+
//# sourceMappingURL=service-proxy.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"service-proxy.d.ts","sourceRoot":"","sources":["../../src/cache/service-proxy.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAYjD;;;GAGG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAC,oBAAoB,CAA8B;IACjE,OAAO,CAAC,MAAM,CAAC,qBAAqB,CAA+B;IACnE,OAAO,CAAC,MAAM,CAAC,mBAAmB,CAA6B;IAE/D;;;;;OAKG;WACW,WAAW,CAAC,CAAC,SAAS,MAAM,EACxC,QAAQ,EAAE,CAAC,EACX,SAAS,EAAE,SAAS,GACnB,CAAC;CAmHL;AAED;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAmD,CAAC;AAExF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,IAAI,cAAc,CAIjD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAE7D;AAED;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,qBAAqB;IAC9D;;OAEG;IACI,QAAQ,SAAM;IAErB;;OAEG;IACI,WAAW,CAAC,CAAC,EAClB,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,OAAO,GACjB,CAAC;CAeL"}
|
|
@@ -48,6 +48,14 @@ export declare class ControllerRegistry {
|
|
|
48
48
|
* @param basePath - 基础路径
|
|
49
49
|
* @param methodPath - 方法路径
|
|
50
50
|
* @returns 组合后的路径
|
|
51
|
+
*
|
|
52
|
+
* 路径规范化规则:
|
|
53
|
+
* - [/ + /api/base] -> /api/base
|
|
54
|
+
* - [// + /api/base] -> /api/base
|
|
55
|
+
* - [/api + /base] -> /api/base
|
|
56
|
+
* - [/api/ + base] -> /api/base
|
|
57
|
+
* - [/api/base + ""] -> /api/base
|
|
58
|
+
* - [/api/base + /] -> /api/base
|
|
51
59
|
*/
|
|
52
60
|
private combinePaths;
|
|
53
61
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,IACzB,QAAQ,WAAW,CAAC,OAAO,CAAC,UAI9C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IAEnF,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAyJnF
|
|
1
|
+
{"version":3,"file":"controller.d.ts","sourceRoot":"","sources":["../../src/controller/controller.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAS5C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAQhD;;GAEG;AACH,eAAO,MAAM,uBAAuB,eAAuB,CAAC;AAE5D;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,MAAM,EAAE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC9B;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,IAAI,GAAE,MAAW,IACzB,QAAQ,WAAW,CAAC,OAAO,CAAC,UAI9C;AAED;;;GAGG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAY;IACtC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA4C;IACxE,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAA8C;IAEnF,OAAO;IAIP;;OAEG;WACW,WAAW,IAAI,kBAAkB;IAO/C;;;OAGG;IACI,QAAQ,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,EAAE,SAAS,GAAG,IAAI;IAyJnF;;;;;;;;;;;;;OAaG;IACH,OAAO,CAAC,YAAY;IA+BpB;;;OAGG;IACI,YAAY,IAAI,SAAS;IAIhC;;;OAGG;IACI,iBAAiB,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;IAIlD;;;OAGG;IACI,wBAAwB,IAAI,WAAW,CAAC,OAAO,CAAC,EAAE;IAIzD;;OAEG;IACI,KAAK,IAAI,IAAI;CAKrB"}
|
|
@@ -87,6 +87,11 @@ export declare class Application {
|
|
|
87
87
|
* @param moduleClass - 模块类
|
|
88
88
|
*/
|
|
89
89
|
registerModule(moduleClass: ModuleClass): void;
|
|
90
|
+
/**
|
|
91
|
+
* 检测并注册缓存后处理器
|
|
92
|
+
* @param container - DI 容器
|
|
93
|
+
*/
|
|
94
|
+
private registerCachePostProcessorIfNeeded;
|
|
90
95
|
/**
|
|
91
96
|
* 注册 WebSocket 网关
|
|
92
97
|
* @param gatewayClass - WebSocket 网关类
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAMzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"application.d.ts","sourceRoot":"","sources":["../../src/core/application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAsB,MAAM,UAAU,CAAC;AAMzD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQ3C;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;IAEjC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED;;;GAGG;AACH,qBAAa,WAAW;IACtB,OAAO,CAAC,MAAM,CAAC,CAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAqB;IAC7C,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAqB;IACxD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA2B;IAC7D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;IACzD,OAAO,CAAC,uBAAuB,CAAkB;gBAE9B,OAAO,GAAE,kBAAuB;IAsBnD;;;OAGG;IACI,GAAG,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI;IAIxC;;OAEG;IACU,MAAM,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAkCpE;;OAEG;YACW,oBAAoB;IAqBlC;;;OAGG;YACW,sBAAsB;IAyBpC;;OAEG;IACU,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAYlC;;;;;OAKG;IACU,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgB9D;;OAEG;YACW,eAAe;IAkB7B;;;;OAIG;YACW,aAAa;IA8B3B;;;OAGG;IACI,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAKtE;;;OAGG;IACI,cAAc,CAAC,WAAW,EAAE,WAAW,GAAG,IAAI;IAqBrD;;;OAGG;IACH,OAAO,CAAC,kCAAkC;IAc1C;;;OAGG;IACI,wBAAwB,CAAC,YAAY,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,IAAI;IAIzE;;;OAGG;IACI,iBAAiB,CAAC,SAAS,EAAE,oBAAoB,GAAG,IAAI;IAK/D;;;OAGG;IACI,SAAS,IAAI,SAAS,GAAG,SAAS;IAIzC;;;OAGG;YACW,gBAAgB;IAsB9B;;;OAGG;YACW,kBAAkB;IAwBhC;;;OAGG;IACI,YAAY;IAInB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2B7B;;OAEG;IACH,OAAO,CAAC,oBAAoB;CAS7B"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1D;;OAEG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAa;gBAElB,OAAO,EAAE,aAAa;IAIzC;;OAEG;IACI,KAAK,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/core/server.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAClC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAErE;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;OAEG;IACH,KAAK,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE1D;;OAEG;IACH,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C;;;OAGG;IACH,uBAAuB,CAAC,EAAE,MAAM,CAAC;CAClC;AAED;;;GAGG;AACH,qBAAa,SAAS;IACpB,OAAO,CAAC,MAAM,CAAC,CAAkC;IACjD,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,cAAc,CAAa;IACnC,OAAO,CAAC,cAAc,CAAkB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAgB;IACxC,OAAO,CAAC,eAAe,CAAC,CAAa;gBAElB,OAAO,EAAE,aAAa;IAIzC;;OAEG;IACI,KAAK,IAAI,IAAI;IAoGpB;;OAEG;IACI,IAAI,IAAI,IAAI;IAWnB;;;;;OAKG;IACU,gBAAgB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C9D;;OAEG;IACI,iBAAiB,IAAI,MAAM;IAIlC;;OAEG;IACI,mBAAmB,IAAI,OAAO;IAIrC;;;OAGG;IACI,SAAS,IAAI,MAAM,CAAC,uBAAuB,CAAC,GAAG,SAAS;IAI/D;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;OAEG;IACI,OAAO,IAAI,MAAM;IAIxB;;OAEG;IACI,WAAW,IAAI,MAAM,GAAG,SAAS;CAGzC"}
|
package/dist/di/container.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import "reflect-metadata";
|
|
2
|
-
import { type ProviderConfig } from "./types";
|
|
2
|
+
import { type InstancePostProcessor, type ProviderConfig } from "./types";
|
|
3
3
|
import type { Constructor } from "@/core/types";
|
|
4
4
|
/**
|
|
5
5
|
* 依赖注入容器
|
|
@@ -32,6 +32,10 @@ export declare class Container {
|
|
|
32
32
|
* 依赖计划缓存,避免重复解析反射元数据
|
|
33
33
|
*/
|
|
34
34
|
private readonly dependencyPlans;
|
|
35
|
+
/**
|
|
36
|
+
* 实例后处理器列表
|
|
37
|
+
*/
|
|
38
|
+
private readonly postProcessors;
|
|
35
39
|
/**
|
|
36
40
|
* 注册提供者
|
|
37
41
|
* @param token - 提供者标识符(类构造函数或 token)
|
|
@@ -44,6 +48,19 @@ export declare class Container {
|
|
|
44
48
|
* @param instance - 实例对象
|
|
45
49
|
*/
|
|
46
50
|
registerInstance<T>(token: Constructor<T> | string | symbol, instance: T): void;
|
|
51
|
+
/**
|
|
52
|
+
* 注册实例后处理器
|
|
53
|
+
* @param processor - 后处理器实例
|
|
54
|
+
*/
|
|
55
|
+
registerPostProcessor(processor: InstancePostProcessor): void;
|
|
56
|
+
/**
|
|
57
|
+
* 应用所有后处理器(包括父容器的后处理器)
|
|
58
|
+
* @param instance - 原始实例
|
|
59
|
+
* @param constructor - 构造函数
|
|
60
|
+
* @param originContainer - 原始调用容器(用于后处理器解析依赖)
|
|
61
|
+
* @returns 处理后的实例
|
|
62
|
+
*/
|
|
63
|
+
private applyPostProcessors;
|
|
47
64
|
/**
|
|
48
65
|
* 解析依赖
|
|
49
66
|
* @param token - 提供者标识符
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,
|
|
1
|
+
{"version":3,"file":"container.d.ts","sourceRoot":"","sources":["../../src/di/container.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,qBAAqB,EAG1B,KAAK,cAAc,EACpB,MAAM,SAAS,CAAC;AAOjB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD;;;GAGG;AACH,UAAU,gBAAgB;IACxB,MAAM,CAAC,EAAE,SAAS,CAAC;CACpB;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAY;gBAEjB,OAAO,GAAE,gBAAqB;IAGjD;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA8C;IAExE;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;IAElE;;;OAGG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAwD;IAExF;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,WAAW,CAGxB;IAEJ;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,eAAe,CAG5B;IAEJ;;OAEG;IACH,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA+B;IAE9D;;;;OAIG;IACI,QAAQ,CAAC,CAAC,EACf,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,EACvC,MAAM,CAAC,EAAE,cAAc,GACtB,IAAI;IA6BP;;;;OAIG;IACI,gBAAgB,CAAC,CAAC,EACvB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,EACvC,QAAQ,EAAE,CAAC,GACV,IAAI;IAQP;;;OAGG;IACI,qBAAqB,CAAC,SAAS,EAAE,qBAAqB,GAAG,IAAI;IAMpE;;;;;;OAMG;IACH,OAAO,CAAC,mBAAmB;IAsB3B;;;;OAIG;IACI,OAAO,CAAC,CAAC,EAAE,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,CAAC;IAyF7D;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAsGvB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IAkBnB;;;;OAIG;IACH,OAAO,CAAC,WAAW;IASnB;;;OAGG;IACI,KAAK,IAAI,IAAI;IASpB;;;;OAIG;IACI,YAAY,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO;IAK3E,OAAO,CAAC,iBAAiB;IAuDzB,OAAO,CAAC,eAAe;CA6BxB"}
|
package/dist/di/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { Container } from './container';
|
|
2
2
|
export { Injectable, Inject, getDependencyMetadata, isInjectable, getLifecycle } from './decorators';
|
|
3
|
-
export { Lifecycle, type ProviderConfig, type DependencyMetadata } from './types';
|
|
3
|
+
export { Lifecycle, INSTANCE_POST_PROCESSOR_TOKEN, type ProviderConfig, type DependencyMetadata, type InstancePostProcessor, } from './types';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/di/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/di/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,qBAAqB,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACrG,OAAO,EACL,SAAS,EACT,6BAA6B,EAC7B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,qBAAqB,GAC3B,MAAM,SAAS,CAAC"}
|
package/dist/di/types.d.ts
CHANGED
|
@@ -1,4 +1,26 @@
|
|
|
1
1
|
import type { Constructor } from '@/core/types';
|
|
2
|
+
/**
|
|
3
|
+
* 实例后处理器接口
|
|
4
|
+
* 用于在 DI 容器创建实例后进行处理(如创建代理、注入额外依赖等)
|
|
5
|
+
*/
|
|
6
|
+
export interface InstancePostProcessor {
|
|
7
|
+
/**
|
|
8
|
+
* 处理新创建的实例
|
|
9
|
+
* @param instance - 原始实例
|
|
10
|
+
* @param constructor - 构造函数
|
|
11
|
+
* @param container - DI 容器引用
|
|
12
|
+
* @returns 处理后的实例(可以是代理)
|
|
13
|
+
*/
|
|
14
|
+
postProcess<T>(instance: T, constructor: Constructor<T>, container: unknown): T;
|
|
15
|
+
/**
|
|
16
|
+
* 优先级(数字越小优先级越高,默认 100)
|
|
17
|
+
*/
|
|
18
|
+
priority?: number;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* 实例后处理器注册表 Token
|
|
22
|
+
*/
|
|
23
|
+
export declare const INSTANCE_POST_PROCESSOR_TOKEN: unique symbol;
|
|
2
24
|
/**
|
|
3
25
|
* 依赖生命周期类型
|
|
4
26
|
*/
|
package/dist/di/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;GAEG;AACH,oBAAY,SAAS;IACnB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/di/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAE/C;;;GAGG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;OAMG;IACH,WAAW,CAAC,CAAC,EACX,QAAQ,EAAE,CAAC,EACX,WAAW,EAAE,WAAW,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,OAAO,GACjB,CAAC,CAAC;IAEL;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,6BAA6B,eAAiD,CAAC;AAE5F;;GAEG;AACH,oBAAY,SAAS;IACnB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,SAAS,cAAc;IAEvB;;OAEG;IACH,MAAM,WAAW;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,SAAS,CAAC,EAAE,SAAS,CAAC;IAEtB;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC;IAExB;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAExB;;OAEG;IACH,cAAc,CAAC,EAAE,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IAEd;;OAEG;IACH,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,MAAM,CAAC;IAEpC;;OAEG;IACH,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACzB"}
|
package/dist/index.d.ts
CHANGED
|
@@ -30,7 +30,7 @@ export { MetricsModule, MetricsCollector, PrometheusFormatter, createHttpMetrics
|
|
|
30
30
|
export { DatabaseModule, DatabaseService, DatabaseConnectionManager, ConnectionPool, DatabaseHealthIndicator, DatabaseExtension, DATABASE_SERVICE_TOKEN, DATABASE_OPTIONS_TOKEN, type DatabaseModuleOptions, type DatabaseConfig, type DatabaseType, type ConnectionInfo, type ConnectionPoolOptions, type SqliteConfig, type PostgresConfig, type MysqlConfig, Entity, Column, PrimaryKey, Repository, BaseRepository, DrizzleBaseRepository, OrmService, ORM_SERVICE_TOKEN, getEntityMetadata, getColumnMetadata, getRepositoryMetadata, type OrmModuleOptions, type BaseRepository as BaseRepositoryInterface, type EntityMetadata, type ColumnMetadata, Transactional, TransactionManager, TransactionInterceptor, Propagation, IsolationLevel, TransactionStatus, TRANSACTION_SERVICE_TOKEN, getTransactionMetadata, type TransactionOptions, type TransactionContext, } from './database';
|
|
31
31
|
export { JWTUtil, OAuth2Service, OAuth2Controller, Auth, getAuthMetadata, requiresAuth, checkRoles, OAUTH2_SERVICE_TOKEN, JWT_UTIL_TOKEN, type JWTConfig, type JWTPayload, type OAuth2Client, type OAuth2AuthorizationRequest, type OAuth2TokenRequest, type OAuth2TokenResponse, type UserInfo, type AuthContext, type AuthConfig, } from './auth';
|
|
32
32
|
export { PerformanceHarness, StressTester, type BenchmarkResult, type StressResult, } from './testing/harness';
|
|
33
|
-
export { CacheModule, CacheService, Cacheable, CacheEvict, CachePut, MemoryCacheStore, RedisCacheStore, CACHE_SERVICE_TOKEN, CACHE_OPTIONS_TOKEN, } from './cache';
|
|
33
|
+
export { CacheModule, CacheService, Cacheable, CacheEvict, CachePut, EnableCacheProxy, CacheServiceProxy, CachePostProcessor, CacheableInterceptor, CacheEvictInterceptor, CachePutInterceptor, MemoryCacheStore, RedisCacheStore, CACHE_SERVICE_TOKEN, CACHE_OPTIONS_TOKEN, CACHE_POST_PROCESSOR_TOKEN, } from './cache';
|
|
34
34
|
export type { CacheModuleOptions, CacheStore, RedisCacheStoreOptions, CacheableOptions, CacheEvictOptions, CachePutOptions, } from './cache';
|
|
35
35
|
export { QueueModule, QueueService, Queue, Cron, MemoryQueueStore, QUEUE_SERVICE_TOKEN, QUEUE_OPTIONS_TOKEN, } from './queue';
|
|
36
36
|
export type { QueueModuleOptions, QueueStore, Job, JobData, JobHandler, JobOptions, CronOptions, QueueOptions, CronDecoratorOptions, } from './queue';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|