@fluojs/event-bus 1.0.0-beta.1 → 1.0.0-beta.3

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.ko.md CHANGED
@@ -11,6 +11,7 @@ fluo를 위한 인프로세스(In-process) 이벤트 발행 및 구독 패키지
11
11
  - [빠른 시작](#빠른-시작)
12
12
  - [일반적인 패턴](#일반적인-패턴)
13
13
  - [공개 API 개요](#공개-api-개요)
14
+ - [런타임별 및 통합 서브패스](#런타임별-및-통합-서브패스)
14
15
  - [관련 패키지](#관련-패키지)
15
16
  - [예제 소스](#예제-소스)
16
17
 
@@ -104,13 +105,23 @@ class UserRegisteredEvent {
104
105
  ## 공개 API 개요
105
106
 
106
107
  ### 핵심 구성 요소
107
- - `EventBusModule`: 이벤트 버스 기능을 위한 기본 모듈입니다.
108
+ - `EventBusModule.forRoot(...)`: 이벤트 버스 등록을 위한 기본 진입점입니다.
108
109
  - `EventBusLifecycleService`: 이벤트를 발행(`publish(event)`)하기 위한 기본 서비스입니다.
109
110
  - `@OnEvent(EventClass)`: 특정 메서드를 이벤트 핸들러로 지정하는 데코레이터입니다.
110
- - `EventBusModule.forRoot(...)`: in-process 이벤트 버스 구성을 설정합니다.
111
+ - `EVENT_BUS`: 발행 facade를 위한 호환성 주입 토큰입니다.
112
+ - `createEventBusPlatformStatusSnapshot(...)`: diagnostics와 health surface에서 사용하는 상태 스냅샷 헬퍼입니다.
111
113
 
112
114
  ### 인터페이스
113
115
  - `EventBusTransport`: 외부 트랜스포트 어댑터 구현을 위한 계약입니다.
116
+ - `EventBus`, `EventPublishOptions`, `EventBusModuleOptions`, `EventType`: 발행, 기본값, 트랜스포트, 안정적인 이벤트 키를 위한 타입 전용 계약입니다.
117
+
118
+ ## 런타임별 및 통합 서브패스
119
+
120
+ | 관심사 | 서브패스 | 내보내는 항목 |
121
+ | --- | --- | --- |
122
+ | Redis Pub/Sub 트랜스포트 | `@fluojs/event-bus/redis` | `RedisEventBusTransport`, `RedisEventBusTransportOptions` |
123
+
124
+ `RedisEventBusTransport`는 명시적인 `@fluojs/event-bus/redis` 서브패스에만 유지되어 루트 `@fluojs/event-bus` 진입점이 모듈 등록, 로컬 발행, 데코레이터, 타입 전용 계약에 집중하도록 합니다. 이 트랜스포트는 shutdown 중 자신이 등록한 채널을 unsubscribe하고 message listener를 분리하지만, 호출자가 소유한 Redis 클라이언트를 disconnect하지 않습니다.
114
125
 
115
126
  ## 관련 패키지
116
127
 
package/README.md CHANGED
@@ -11,6 +11,7 @@ In-process event publishing and subscription for fluo. It features decorator-bas
11
11
  - [Quick Start](#quick-start)
12
12
  - [Common Patterns](#common-patterns)
13
13
  - [Public API](#public-api)
14
+ - [Runtime-Specific and Integration Subpaths](#runtime-specific-and-integration-subpaths)
14
15
  - [Related Packages](#related-packages)
15
16
  - [Example Sources](#example-sources)
16
17
 
@@ -104,12 +105,23 @@ class UserRegisteredEvent {
104
105
  ## Public API Overview
105
106
 
106
107
  ### Core
107
- - `EventBusModule`: Main entry point for event bus registration.
108
+ - `EventBusModule.forRoot(...)`: Main entry point for event bus registration.
108
109
  - `EventBusLifecycleService`: Primary service for publishing events (`publish(event)`).
109
110
  - `@OnEvent(EventClass)`: Decorator to mark a method as an event handler.
111
+ - `EVENT_BUS`: Compatibility injection token for the publish facade.
112
+ - `createEventBusPlatformStatusSnapshot(...)`: Status snapshot helper used by diagnostics and health surfaces.
110
113
 
111
114
  ### Interfaces
112
115
  - `EventBusTransport`: Contract for implementing external transport adapters.
116
+ - `EventBus`, `EventPublishOptions`, `EventBusModuleOptions`, `EventType`: Type-only contracts for publishing, defaults, transports, and stable event keys.
117
+
118
+ ## Runtime-Specific and Integration Subpaths
119
+
120
+ | Concern | Subpath | Exports |
121
+ | --- | --- | --- |
122
+ | Redis Pub/Sub transport | `@fluojs/event-bus/redis` | `RedisEventBusTransport`, `RedisEventBusTransportOptions` |
123
+
124
+ `RedisEventBusTransport` stays on the explicit `@fluojs/event-bus/redis` subpath so the root `@fluojs/event-bus` entrypoint remains focused on module registration, local publishing, decorators, and type-only contracts. The transport unsubscribes the channels it registered and detaches its message listener during shutdown, but it does not disconnect caller-owned Redis clients.
113
125
 
114
126
  ## Related Packages
115
127
 
@@ -1 +1 @@
1
- {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAsCvD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,SAAS,CAS1H;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,KAAK,CAAC;IAAE,QAAQ,EAAE,oBAAoB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAW7E;AAED,eAAO,MAAM,sBAAsB,QAAkC,CAAC"}
1
+ {"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../src/metadata.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGxD,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AA8BvD,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,mBAAmB,EAChC,QAAQ,EAAE,oBAAoB,GAC7B,IAAI,CAEN;AAED,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,mBAAmB,GAAG,oBAAoB,GAAG,SAAS,CAS1H;AAED,wBAAgB,8BAA8B,CAC5C,MAAM,EAAE,MAAM,GACb,KAAK,CAAC;IAAE,QAAQ,EAAE,oBAAoB,CAAC;IAAC,WAAW,EAAE,mBAAmB,CAAA;CAAE,CAAC,CAW7E;AAED,eAAO,MAAM,sBAAsB,QAAkC,CAAC"}
package/dist/metadata.js CHANGED
@@ -1,4 +1,4 @@
1
- import { ensureSymbolMetadataPolyfill, metadataSymbol } from '@fluojs/core/internal';
1
+ import { ensureSymbolMetadataPolyfill, getStandardConstructorMetadataBag } from '@fluojs/core/internal';
2
2
  void ensureSymbolMetadataPolyfill();
3
3
  const standardEventHandlerMetadataKey = Symbol.for('fluo.event-bus.standard.handler');
4
4
  const eventHandlerMetadataStore = new WeakMap();
@@ -7,12 +7,8 @@ function cloneEventHandlerMetadata(metadata) {
7
7
  eventType: metadata.eventType
8
8
  };
9
9
  }
10
- function getStandardMetadataBag(target) {
11
- return target[metadataSymbol];
12
- }
13
10
  function getStandardEventHandlerMap(target) {
14
- const constructor = target.constructor;
15
- return constructor ? getStandardMetadataBag(constructor)?.[standardEventHandlerMetadataKey] : undefined;
11
+ return getStandardConstructorMetadataBag(target)?.[standardEventHandlerMetadataKey];
16
12
  }
17
13
  function getOrCreateEventHandlerMap(target) {
18
14
  let map = eventHandlerMetadataStore.get(target);
package/package.json CHANGED
@@ -8,7 +8,7 @@
8
8
  "pubsub",
9
9
  "in-process"
10
10
  ],
11
- "version": "1.0.0-beta.1",
11
+ "version": "1.0.0-beta.3",
12
12
  "private": false,
13
13
  "license": "MIT",
14
14
  "repository": {
@@ -39,9 +39,9 @@
39
39
  "dist"
40
40
  ],
41
41
  "dependencies": {
42
- "@fluojs/di": "^1.0.0-beta.1",
43
- "@fluojs/core": "^1.0.0-beta.1",
44
- "@fluojs/runtime": "^1.0.0-beta.1"
42
+ "@fluojs/core": "^1.0.0-beta.2",
43
+ "@fluojs/di": "^1.0.0-beta.3",
44
+ "@fluojs/runtime": "^1.0.0-beta.3"
45
45
  },
46
46
  "peerDependencies": {
47
47
  "ioredis": "^5.0.0"