@dangao/bun-server 1.8.3 → 1.10.0
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 +60 -6
- package/dist/core/application.d.ts +12 -0
- package/dist/core/application.d.ts.map +1 -1
- package/dist/core/server.d.ts +7 -0
- package/dist/core/server.d.ts.map +1 -1
- package/dist/events/event-module.d.ts +4 -0
- package/dist/events/event-module.d.ts.map +1 -1
- package/dist/events/types.d.ts +16 -0
- package/dist/events/types.d.ts.map +1 -1
- package/dist/index.js +4969 -4882
- package/docs/custom-decorators.md +1 -7
- package/docs/extensions.md +0 -2
- package/docs/guide.md +0 -1
- package/docs/zh/custom-decorators.md +1 -7
- package/docs/zh/extensions.md +0 -2
- package/docs/zh/guide.md +0 -1
- package/docs/zh/migration.md +0 -5
- package/package.json +4 -4
- package/src/core/application.ts +38 -0
- package/src/core/server.ts +9 -0
- package/src/events/event-module.ts +108 -0
- package/src/events/types.ts +19 -0
- package/tests/auth/auth-decorators.test.ts +0 -1
- package/tests/auth/oauth2-service.test.ts +0 -1
- package/tests/cache/cache-decorators-extended.test.ts +0 -1
- package/tests/cache/cache-decorators.test.ts +0 -1
- package/tests/cache/cache-interceptors.test.ts +0 -1
- package/tests/cache/cache-module.test.ts +0 -1
- package/tests/cache/cache-service-proxy.test.ts +0 -1
- package/tests/config/config-center-integration.test.ts +0 -1
- package/tests/config/config-module-extended.test.ts +0 -1
- package/tests/config/config-module.test.ts +0 -1
- package/tests/controller/controller.test.ts +0 -1
- package/tests/controller/param-binder.test.ts +0 -1
- package/tests/controller/path-combination.test.ts +0 -1
- package/tests/core/application.test.ts +34 -0
- package/tests/database/database-module.test.ts +0 -1
- package/tests/database/orm.test.ts +0 -1
- package/tests/database/postgres-mysql-integration.test.ts +0 -1
- package/tests/database/transaction.test.ts +0 -1
- package/tests/di/container.test.ts +0 -1
- package/tests/error/error-handler.test.ts +0 -1
- package/tests/events/event-decorators.test.ts +0 -1
- package/tests/events/event-listener-scanner.test.ts +0 -1
- package/tests/events/event-module.test.ts +0 -1
- package/tests/extensions/logger-module.test.ts +0 -1
- package/tests/health/health-module.test.ts +0 -1
- package/tests/integration/oauth2-e2e.test.ts +0 -1
- package/tests/integration/session-e2e.test.ts +0 -1
- package/tests/interceptor/base-interceptor.test.ts +0 -1
- package/tests/interceptor/builtin/cache-interceptor.test.ts +0 -1
- package/tests/interceptor/builtin/log-interceptor.test.ts +0 -1
- package/tests/interceptor/builtin/permission-interceptor.test.ts +0 -1
- package/tests/interceptor/interceptor-advanced-integration.test.ts +0 -1
- package/tests/interceptor/interceptor-chain.test.ts +0 -1
- package/tests/interceptor/interceptor-integration.test.ts +0 -1
- package/tests/interceptor/interceptor-metadata.test.ts +0 -1
- package/tests/interceptor/interceptor-registry.test.ts +0 -1
- package/tests/interceptor/perf/interceptor-performance.test.ts +0 -1
- package/tests/metrics/metrics-module.test.ts +0 -1
- package/tests/microservice/config-center.test.ts +0 -1
- package/tests/microservice/service-client-decorators.test.ts +0 -1
- package/tests/microservice/service-registry-decorators.test.ts +0 -1
- package/tests/microservice/service-registry.test.ts +0 -1
- package/tests/middleware/builtin/middleware-builtin-extended.test.ts +0 -1
- package/tests/middleware/builtin/rate-limit.test.ts +0 -1
- package/tests/middleware/middleware-decorators.test.ts +0 -1
- package/tests/middleware/middleware-pipeline.test.ts +0 -1
- package/tests/middleware/middleware.test.ts +0 -1
- package/tests/perf/optimization.test.ts +0 -1
- package/tests/queue/queue-decorators.test.ts +0 -1
- package/tests/queue/queue-module.test.ts +0 -1
- package/tests/queue/queue-service.test.ts +0 -1
- package/tests/router/router-decorators.test.ts +0 -1
- package/tests/router/router-extended.test.ts +0 -1
- package/tests/security/guards/guards-integration.test.ts +0 -1
- package/tests/security/guards/guards.test.ts +0 -1
- package/tests/security/guards/reflector.test.ts +0 -1
- package/tests/security/security-filter.test.ts +0 -1
- package/tests/security/security-module-extended.test.ts +0 -1
- package/tests/security/security-module.test.ts +0 -1
- package/tests/session/session-decorators.test.ts +0 -1
- package/tests/session/session-module.test.ts +0 -1
- package/tests/swagger/decorators.test.ts +0 -1
- package/tests/swagger/swagger-module.test.ts +0 -1
- package/tests/swagger/ui.test.ts +0 -1
- package/tests/validation/class-validator.test.ts +0 -1
- package/tests/validation/controller-validation.test.ts +0 -1
package/README.md
CHANGED
|
@@ -433,22 +433,71 @@ learning paths, difficulty ratings, and usage scenarios.
|
|
|
433
433
|
|
|
434
434
|
## Benchmark Suite
|
|
435
435
|
|
|
436
|
-
|
|
437
|
-
|
|
436
|
+
### Internal Micro-benchmarks
|
|
437
|
+
|
|
438
|
+
`PerformanceHarness` & `StressTester` based benchmarks:
|
|
438
439
|
|
|
439
440
|
| Script | Description |
|
|
440
441
|
| ----------------- | --------------------------------------------------------------------- |
|
|
441
442
|
| `router.bench.ts` | static/dynamic route hits, `router.handle` and stress runs |
|
|
442
443
|
| `di.bench.ts` | singleton vs factory resolves, nested dependencies, concurrent stress |
|
|
443
444
|
|
|
444
|
-
Run directly:
|
|
445
|
-
|
|
446
445
|
```bash
|
|
447
446
|
bun benchmark/router.bench.ts
|
|
448
447
|
bun benchmark/di.bench.ts
|
|
449
448
|
```
|
|
450
449
|
|
|
451
|
-
|
|
450
|
+
### Framework Comparison (bun-server vs Express vs NestJS)
|
|
451
|
+
|
|
452
|
+
Real HTTP load testing with [wrk](https://github.com/wg/wrk), comparing
|
|
453
|
+
bun-server against Express 5 and NestJS 11. All frameworks run on the same Bun
|
|
454
|
+
runtime to isolate framework overhead.
|
|
455
|
+
|
|
456
|
+
**Prerequisites:** wrk (`brew install wrk` / `apt install wrk`). The script
|
|
457
|
+
automatically raises `ulimit -n` to 10240 for child processes.
|
|
458
|
+
|
|
459
|
+
```bash
|
|
460
|
+
bun benchmark/run-wrk-compare.ts # full comparison (3 tiers)
|
|
461
|
+
TIER=0 bun benchmark/run-wrk-compare.ts # Light tier only
|
|
462
|
+
bun benchmark/run-wrk.ts # bun-server only (3 tiers)
|
|
463
|
+
```
|
|
464
|
+
|
|
465
|
+
> **Environment:** Apple M2 Pro (8P + 4E cores) / darwin arm64 / Bun 1.3.10
|
|
466
|
+
|
|
467
|
+
#### Req/Sec (Light: -t2 -c50 -d10s)
|
|
468
|
+
|
|
469
|
+
| Endpoint | bun-server | Express | NestJS |
|
|
470
|
+
|-----------------------|--------------|----------|----------|
|
|
471
|
+
| GET /ping | **31.41k** | 30.01k | 26.52k |
|
|
472
|
+
| GET /json | **28.22k** | 25.99k | 23.64k |
|
|
473
|
+
| GET /users/:id | **30.88k** | 29.91k | 25.62k |
|
|
474
|
+
| GET /search?q= | **29.96k** | 28.70k | 25.17k |
|
|
475
|
+
| POST /users | **27.65k** | 21.37k | 19.38k |
|
|
476
|
+
| POST /users/validated | **26.60k** | 21.28k | 18.93k |
|
|
477
|
+
| GET /middleware | **29.52k** | 28.57k | 24.69k |
|
|
478
|
+
| GET /headers | **30.98k** | 29.57k | 26.43k |
|
|
479
|
+
| GET /io | **21.37k** | 19.46k | 18.49k |
|
|
480
|
+
|
|
481
|
+
Zero errors across all frameworks and tiers. See the full report for Medium and
|
|
482
|
+
Heavy tier results.
|
|
483
|
+
|
|
484
|
+
> 📊 Full comparison report (3 tiers, latency breakdown, per-framework
|
|
485
|
+
> details): [`benchmark/REPORT_COMPARE.md`](./benchmark/REPORT_COMPARE.md)
|
|
486
|
+
>
|
|
487
|
+
> 📋 Single-framework detailed report:
|
|
488
|
+
> [`benchmark/REPORT.md`](./benchmark/REPORT.md)
|
|
489
|
+
|
|
490
|
+
### Multi-process Benchmark (reusePort, Linux only)
|
|
491
|
+
|
|
492
|
+
```bash
|
|
493
|
+
bun benchmark/run-wrk-cluster.ts # default: 1 worker per CPU core
|
|
494
|
+
WORKERS=4 bun benchmark/run-wrk-cluster.ts
|
|
495
|
+
```
|
|
496
|
+
|
|
497
|
+
Spawns N workers sharing the same port via `SO_REUSEPORT`. The kernel
|
|
498
|
+
distributes connections across processes. Report saved to
|
|
499
|
+
`benchmark/REPORT_CLUSTER.md`. Note: `reusePort` only works on **Linux**;
|
|
500
|
+
macOS/Windows silently ignore it.
|
|
452
501
|
|
|
453
502
|
## Docs & Localization
|
|
454
503
|
|
|
@@ -458,6 +507,11 @@ Or use `bun run bench*` scripts for convenience.
|
|
|
458
507
|
`docs/error-handling.md`, `docs/request-lifecycle.md`.
|
|
459
508
|
- **Chinese**: mirrored under `docs/zh/`. If something is missing, please fall
|
|
460
509
|
back to the English source.
|
|
510
|
+
- **Skills & Troubleshooting**: `skills/` directory
|
|
511
|
+
- Real-world problems encountered during development with solutions
|
|
512
|
+
- Organized by category (events, di, modules, common)
|
|
513
|
+
- Each issue includes complete error info, root cause analysis, and fix steps
|
|
514
|
+
- [View Skills Repository](./skills/README.md)
|
|
461
515
|
|
|
462
516
|
## Roadmap
|
|
463
517
|
|
|
@@ -520,6 +574,6 @@ Released under the [MIT License](./LICENSE).
|
|
|
520
574
|
|
|
521
575
|
## Other Languages
|
|
522
576
|
|
|
523
|
-
- [中文 README](./
|
|
577
|
+
- [中文 README](./README_ZH.md)
|
|
524
578
|
|
|
525
579
|
Enjoy building on Bun Server!
|
|
@@ -25,6 +25,13 @@ export interface ApplicationOptions {
|
|
|
25
25
|
* 默认 true
|
|
26
26
|
*/
|
|
27
27
|
enableSignalHandlers?: boolean;
|
|
28
|
+
/**
|
|
29
|
+
* 是否启用 SO_REUSEPORT
|
|
30
|
+
* 允许多进程绑定同一端口,用于多进程负载均衡
|
|
31
|
+
* 仅 Linux 有效,macOS/Windows 会忽略
|
|
32
|
+
* @default false
|
|
33
|
+
*/
|
|
34
|
+
reusePort?: boolean;
|
|
28
35
|
}
|
|
29
36
|
/**
|
|
30
37
|
* 应用主类
|
|
@@ -56,6 +63,11 @@ export declare class Application {
|
|
|
56
63
|
* 在所有模块注册完成后调用,确保 ConfigCenterModule 已注册
|
|
57
64
|
*/
|
|
58
65
|
private initializeConfigCenter;
|
|
66
|
+
/**
|
|
67
|
+
* 初始化事件监听器
|
|
68
|
+
* 在所有模块注册完成后调用,自动扫描并注册使用 @OnEvent 装饰器的类
|
|
69
|
+
*/
|
|
70
|
+
private initializeEventListeners;
|
|
59
71
|
/**
|
|
60
72
|
* 停止应用(立即停止,不等待请求完成)
|
|
61
73
|
*/
|
|
@@ -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;AAS3C;;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;IAE/B;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;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;IAsCpE;;OAEG;YACW,oBAAoB;IAqBlC;;;OAGG;YACW,sBAAsB;IAyBpC;;;OAGG;IACH,OAAO,CAAC,wBAAwB;IAqBhC;;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;IAyC3B;;;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"}
|
package/dist/core/server.d.ts
CHANGED
|
@@ -27,6 +27,13 @@ export interface ServerOptions {
|
|
|
27
27
|
* 默认 30 秒
|
|
28
28
|
*/
|
|
29
29
|
gracefulShutdownTimeout?: number;
|
|
30
|
+
/**
|
|
31
|
+
* 是否启用 SO_REUSEPORT
|
|
32
|
+
* 允许多进程绑定同一端口,用于多进程负载均衡
|
|
33
|
+
* 仅 Linux 有效,macOS/Windows 会忽略
|
|
34
|
+
* @default false
|
|
35
|
+
*/
|
|
36
|
+
reusePort?: boolean;
|
|
30
37
|
}
|
|
31
38
|
/**
|
|
32
39
|
* 服务器封装类
|
|
@@ -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;
|
|
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;IAEjC;;;;;OAKG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;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;IAqGpB;;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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-module.d.ts","sourceRoot":"","sources":["../../src/events/event-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B;;;;OAIG;gBAEgB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS;IAGvC;;;OAGG;IACI,eAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI;IAMzD;;;OAGG;IACI,qBAAqB,CAAC,aAAa,EAAE,QAAQ,GAAG,IAAI;CA2C5D;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAEF,qBAGa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkB;IAEhD;;;;;;;;;;;;;;;;;OAiBG;WACW,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,WAAW;
|
|
1
|
+
{"version":3,"file":"event-module.d.ts","sourceRoot":"","sources":["../../src/events/event-module.ts"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAKjD,OAAO,EAGL,KAAK,kBAAkB,EACvB,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAEjB;;;GAGG;AACH,qBAAa,oBAAoB;IAO7B,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS;IAP5B;;;;OAIG;gBAEgB,YAAY,EAAE,YAAY,EAC1B,SAAS,EAAE,SAAS;IAGvC;;;OAGG;IACI,eAAe,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI;IAMzD;;;OAGG;IACI,qBAAqB,CAAC,aAAa,EAAE,QAAQ,GAAG,IAAI;CA2C5D;AAED;;GAEG;AACH,eAAO,MAAM,4BAA4B,eAExC,CAAC;AAEF,qBAGa,WAAW;IACtB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,eAAe,CAAkB;IAEhD;;OAEG;IACH,OAAO,CAAC,MAAM,CAAC,OAAO,CAAmD;IAEzE;;;;;;;;;;;;;;;;;OAiBG;WACW,OAAO,CAAC,OAAO,GAAE,kBAAuB,GAAG,OAAO,WAAW;IA4C3E;;;;;;;;;;OAUG;WACW,iBAAiB,CAAC,eAAe,EAAE,QAAQ,EAAE,GAAG,IAAI;IAIlE;;;;;;;;;;;;;;;;;;;OAmBG;WACW,mBAAmB,CAC/B,iBAAiB,CAAC,EAAE,SAAS,EAC7B,mBAAmB,GAAE,QAAQ,EAAO,GACnC,IAAI;IA2CP;;;;;OAKG;WACW,eAAe,CAAC,SAAS,CAAC,EAAE,SAAS,GAAG,YAAY,GAAG,SAAS;CAyH/E"}
|
package/dist/events/types.d.ts
CHANGED
|
@@ -143,6 +143,22 @@ export interface EventModuleOptions {
|
|
|
143
143
|
* @param payload - 事件负载
|
|
144
144
|
*/
|
|
145
145
|
onError?: (error: Error, event: string | symbol, payload: unknown) => void;
|
|
146
|
+
/**
|
|
147
|
+
* 是否自动扫描和注册事件监听器
|
|
148
|
+
* 当设置为 true 时,框架会在应用启动时自动扫描所有模块中使用 @OnEvent 装饰器的类
|
|
149
|
+
* @default true
|
|
150
|
+
*/
|
|
151
|
+
autoScan?: boolean;
|
|
152
|
+
/**
|
|
153
|
+
* 需要排除的监听器类(不自动注册)
|
|
154
|
+
* 用于在自动扫描时排除某些类
|
|
155
|
+
*/
|
|
156
|
+
excludeListeners?: Function[];
|
|
157
|
+
/**
|
|
158
|
+
* 额外的监听器类(强制注册)
|
|
159
|
+
* 即使 autoScan 为 false,这些类也会被注册
|
|
160
|
+
*/
|
|
161
|
+
includeListeners?: Function[];
|
|
146
162
|
}
|
|
147
163
|
/**
|
|
148
164
|
* 装饰器方法元数据
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,OAAO;IACxC,CAAC,OAAO,EAAE,CAAC,GAAG,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACpC;AAED;;GAEG;AACH,MAAM,WAAW,aAAa;IAC5B;;OAEG;IACH,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAEvB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC,GAAG,OAAO;IAC7C;;OAEG;IACH,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAE3B;;OAEG;IACH,IAAI,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,QAAQ,EAAE,MAAM,CAAC;IAEjB;;OAEG;IACH,KAAK,EAAE,OAAO,CAAC;CAChB;AAED;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B;;;;OAIG;IACH,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC;IAElD;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhE;;;;;;OAMG;IACH,EAAE,CAAC,CAAC,EACF,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,MAAM,IAAI,CAAC;IAEd;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,EACJ,KAAK,EAAE,MAAM,GAAG,MAAM,EACtB,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,EAC1B,OAAO,CAAC,EAAE,eAAe,GACxB,MAAM,IAAI,CAAC;IAEd;;;;OAIG;IACH,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAEjE;;;OAGG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAElD;;;OAGG;IACH,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IAE9C;;OAEG;IACH,UAAU,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;OAGG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/events/types.ts"],"names":[],"mappings":"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"}
|