@bgord/bun 1.12.0 → 1.12.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/dist/command-bus-collecting.adapter.d.ts +5 -7
- package/dist/command-bus-collecting.adapter.d.ts.map +1 -1
- package/dist/command-bus-collecting.adapter.js.map +1 -1
- package/dist/command-bus-emittery-v1.adapter.d.ts +4 -6
- package/dist/command-bus-emittery-v1.adapter.d.ts.map +1 -1
- package/dist/command-bus-emittery-v1.adapter.js.map +1 -1
- package/dist/command-bus-noop.adapter.d.ts +4 -6
- package/dist/command-bus-noop.adapter.d.ts.map +1 -1
- package/dist/command-bus-noop.adapter.js.map +1 -1
- package/dist/command-bus-with-logger.adapter.d.ts +5 -7
- package/dist/command-bus-with-logger.adapter.d.ts.map +1 -1
- package/dist/command-bus-with-logger.adapter.js.map +1 -1
- package/dist/command-bus.port.d.ts +4 -6
- package/dist/command-bus.port.d.ts.map +1 -1
- package/dist/dispatching-event-store.js.map +1 -1
- package/dist/event-bus-collecting.adapter.d.ts +5 -7
- package/dist/event-bus-collecting.adapter.d.ts.map +1 -1
- package/dist/event-bus-collecting.adapter.js.map +1 -1
- package/dist/event-bus-emittery-v1.adapter.d.ts +4 -6
- package/dist/event-bus-emittery-v1.adapter.d.ts.map +1 -1
- package/dist/event-bus-emittery-v1.adapter.js.map +1 -1
- package/dist/event-bus-noop.adapter.d.ts +4 -6
- package/dist/event-bus-noop.adapter.d.ts.map +1 -1
- package/dist/event-bus-noop.adapter.js.map +1 -1
- package/dist/event-bus-with-logger.adapter.d.ts +5 -7
- package/dist/event-bus-with-logger.adapter.d.ts.map +1 -1
- package/dist/event-bus-with-logger.adapter.js.map +1 -1
- package/dist/event-bus.port.d.ts +4 -6
- package/dist/event-bus.port.d.ts.map +1 -1
- package/dist/event-handler-bare.strategy.d.ts +2 -5
- package/dist/event-handler-bare.strategy.d.ts.map +1 -1
- package/dist/event-handler-bare.strategy.js.map +1 -1
- package/dist/event-handler-noop.strategy.d.ts +2 -5
- package/dist/event-handler-noop.strategy.d.ts.map +1 -1
- package/dist/event-handler-noop.strategy.js +1 -1
- package/dist/event-handler-noop.strategy.js.map +1 -1
- package/dist/event-handler-with-logger.strategy.d.ts +2 -5
- package/dist/event-handler-with-logger.strategy.d.ts.map +1 -1
- package/dist/event-handler-with-logger.strategy.js +2 -2
- package/dist/event-handler-with-logger.strategy.js.map +1 -1
- package/dist/event-handler.strategy.d.ts +2 -5
- package/dist/event-handler.strategy.d.ts.map +1 -1
- package/dist/event-store-like.types.d.ts +3 -4
- package/dist/event-store-like.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 +1 -1
- package/dist/index.js.map +1 -1
- package/dist/message.types.d.ts +7 -0
- package/dist/message.types.d.ts.map +1 -0
- package/dist/message.types.js +2 -0
- package/dist/message.types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/readme.md +1 -1
- package/src/command-bus-collecting.adapter.ts +11 -8
- package/src/command-bus-emittery-v1.adapter.ts +11 -8
- package/src/command-bus-noop.adapter.ts +9 -6
- package/src/command-bus-with-logger.adapter.ts +10 -7
- package/src/command-bus.port.ts +9 -6
- package/src/dispatching-event-store.ts +2 -2
- package/src/event-bus-collecting.adapter.ts +11 -8
- package/src/event-bus-emittery-v1.adapter.ts +11 -8
- package/src/event-bus-noop.adapter.ts +9 -6
- package/src/event-bus-with-logger.adapter.ts +10 -7
- package/src/event-bus.port.ts +9 -6
- package/src/event-handler-bare.strategy.ts +3 -4
- package/src/event-handler-noop.strategy.ts +3 -4
- package/src/event-handler-with-logger.strategy.ts +4 -5
- package/src/event-handler.strategy.ts +2 -5
- package/src/event-store-like.types.ts +4 -2
- package/src/index.ts +1 -1
- package/src/message.types.ts +5 -0
- package/dist/to-event-map.types.d.ts +0 -6
- package/dist/to-event-map.types.d.ts.map +0 -1
- package/dist/to-event-map.types.js +0 -2
- package/dist/to-event-map.types.js.map +0 -1
- package/src/to-event-map.types.ts +0 -3
package/package.json
CHANGED
package/readme.md
CHANGED
|
@@ -247,6 +247,7 @@ src/
|
|
|
247
247
|
├── markdown-generator.adapter.ts
|
|
248
248
|
├── markdown-generator.port.ts
|
|
249
249
|
├── memory-consumption.service.ts
|
|
250
|
+
├── message.types.ts
|
|
250
251
|
├── middleware-hono-noop.adapter.ts
|
|
251
252
|
├── middleware-hono.port.ts
|
|
252
253
|
├── modules
|
|
@@ -450,7 +451,6 @@ src/
|
|
|
450
451
|
├── timeout-runner.port.ts
|
|
451
452
|
├── timing-hono.middleware.ts
|
|
452
453
|
├── timing.middleware.ts
|
|
453
|
-
├── to-event-map.types.ts
|
|
454
454
|
├── trailing-slash-hono.middleware.ts
|
|
455
455
|
├── trailing-slash.middleware.ts
|
|
456
456
|
├── translations-hono.handler.ts
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { CommandBusPort } from "./command-bus.port";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
3
3
|
|
|
4
|
-
export class CommandBusCollectingAdapter<
|
|
5
|
-
public commands: Array<
|
|
4
|
+
export class CommandBusCollectingAdapter<Command extends Message> implements CommandBusPort<Command> {
|
|
5
|
+
public commands: Array<Command> = [];
|
|
6
6
|
|
|
7
|
-
async emit<
|
|
8
|
-
|
|
7
|
+
async emit<CommandName extends keyof ToMessageMap<Command>>(
|
|
8
|
+
_name: CommandName,
|
|
9
|
+
command: ToMessageMap<Command>[CommandName],
|
|
10
|
+
): Promise<void> {
|
|
11
|
+
this.commands.push(command as Command);
|
|
9
12
|
}
|
|
10
13
|
|
|
11
|
-
on<
|
|
12
|
-
_name:
|
|
13
|
-
_handler: (command:
|
|
14
|
+
on<CommandName extends keyof ToMessageMap<Command>>(
|
|
15
|
+
_name: CommandName,
|
|
16
|
+
_handler: (command: ToMessageMap<Command>[CommandName]) => void | Promise<void>,
|
|
14
17
|
): void {}
|
|
15
18
|
}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import Emittery from "emittery";
|
|
2
2
|
import type { CommandBusPort } from "./command-bus.port";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
4
4
|
|
|
5
|
-
export class CommandBusEmitteryV1Adapter<
|
|
6
|
-
private readonly emittery: Emittery<
|
|
5
|
+
export class CommandBusEmitteryV1Adapter<Command extends Message> implements CommandBusPort<Command> {
|
|
6
|
+
private readonly emittery: Emittery<ToMessageMap<Command>>;
|
|
7
7
|
|
|
8
8
|
constructor() {
|
|
9
|
-
this.emittery = new Emittery<
|
|
9
|
+
this.emittery = new Emittery<ToMessageMap<Command>>();
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
async emit<
|
|
12
|
+
async emit<CommandName extends keyof ToMessageMap<Command>>(
|
|
13
|
+
name: CommandName,
|
|
14
|
+
command: ToMessageMap<Command>[CommandName],
|
|
15
|
+
): Promise<void> {
|
|
13
16
|
await this.emittery.emit(name, command);
|
|
14
17
|
}
|
|
15
18
|
|
|
16
|
-
on<
|
|
17
|
-
name:
|
|
18
|
-
handler: (command:
|
|
19
|
+
on<CommandName extends keyof ToMessageMap<Command>>(
|
|
20
|
+
name: CommandName,
|
|
21
|
+
handler: (command: ToMessageMap<Command>[CommandName]) => void | Promise<void>,
|
|
19
22
|
): void {
|
|
20
23
|
this.emittery.on(name, handler);
|
|
21
24
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { CommandBusPort } from "./command-bus.port";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
3
3
|
|
|
4
|
-
export class CommandBusNoopAdapter<
|
|
5
|
-
async emit<
|
|
4
|
+
export class CommandBusNoopAdapter<Command extends Message> implements CommandBusPort<Command> {
|
|
5
|
+
async emit<CommandName extends keyof ToMessageMap<Command>>(
|
|
6
|
+
_name: CommandName,
|
|
7
|
+
_command: ToMessageMap<Command>[CommandName],
|
|
8
|
+
): Promise<void> {}
|
|
6
9
|
|
|
7
|
-
on<
|
|
8
|
-
_name:
|
|
9
|
-
_handler: (command:
|
|
10
|
+
on<CommandName extends keyof ToMessageMap<Command>>(
|
|
11
|
+
_name: CommandName,
|
|
12
|
+
_handler: (command: ToMessageMap<Command>[CommandName]) => void | Promise<void>,
|
|
10
13
|
): void {}
|
|
11
14
|
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { CommandBusPort } from "./command-bus.port";
|
|
2
2
|
import type { LogCoreType, LoggerPort } from "./logger.port";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
4
4
|
|
|
5
5
|
type Dependencies = { Logger: LoggerPort };
|
|
6
6
|
|
|
7
|
-
export class CommandBusWithLoggerAdapter<
|
|
7
|
+
export class CommandBusWithLoggerAdapter<Command extends Message> implements CommandBusPort<Command> {
|
|
8
8
|
private readonly base = { component: "infra", operation: "command_emitted" };
|
|
9
9
|
|
|
10
10
|
constructor(
|
|
11
|
-
private readonly inner: CommandBusPort<
|
|
11
|
+
private readonly inner: CommandBusPort<Command>,
|
|
12
12
|
private readonly deps: Dependencies,
|
|
13
13
|
) {}
|
|
14
14
|
|
|
15
|
-
async emit<
|
|
15
|
+
async emit<CommandName extends keyof ToMessageMap<Command>>(
|
|
16
|
+
name: CommandName,
|
|
17
|
+
command: ToMessageMap<Command>[CommandName],
|
|
18
|
+
): Promise<void> {
|
|
16
19
|
this.deps.Logger.info({
|
|
17
20
|
message: `${name.toString()} emitted`,
|
|
18
21
|
metadata: command as LogCoreType["metadata"],
|
|
@@ -22,9 +25,9 @@ export class CommandBusWithLoggerAdapter<C extends { name: string }> implements
|
|
|
22
25
|
return this.inner.emit(name, command);
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
on<
|
|
26
|
-
name:
|
|
27
|
-
handler: (command:
|
|
28
|
+
on<CommandName extends keyof ToMessageMap<Command>>(
|
|
29
|
+
name: CommandName,
|
|
30
|
+
handler: (command: ToMessageMap<Command>[CommandName]) => void | Promise<void>,
|
|
28
31
|
): void {
|
|
29
32
|
this.inner.on(name, handler);
|
|
30
33
|
}
|
package/src/command-bus.port.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
2
2
|
|
|
3
|
-
export interface CommandBusPort<
|
|
4
|
-
emit<
|
|
3
|
+
export interface CommandBusPort<Command extends Message> {
|
|
4
|
+
emit<CommandName extends keyof ToMessageMap<Command>>(
|
|
5
|
+
name: CommandName,
|
|
6
|
+
command: ToMessageMap<Command>[CommandName],
|
|
7
|
+
): Promise<void>;
|
|
5
8
|
|
|
6
|
-
on<
|
|
7
|
-
name:
|
|
8
|
-
handler: (command:
|
|
9
|
+
on<CommandName extends keyof ToMessageMap<Command>>(
|
|
10
|
+
name: CommandName,
|
|
11
|
+
handler: (command: ToMessageMap<Command>[CommandName]) => void | Promise<void>,
|
|
9
12
|
): void;
|
|
10
13
|
}
|
|
@@ -4,7 +4,7 @@ import type { GenericEventSchema, GenericParsedEventSchema } from "./event.types
|
|
|
4
4
|
import type { EventBusPort } from "./event-bus.port";
|
|
5
5
|
import { EventStore as BaseStore } from "./event-store";
|
|
6
6
|
import type { EventStreamType } from "./event-stream.vo";
|
|
7
|
-
import type {
|
|
7
|
+
import type { ToMessageMap } from "./message.types";
|
|
8
8
|
|
|
9
9
|
export class DispatchingEventStore<AllEvents extends GenericEventSchema> extends BaseStore<AllEvents> {
|
|
10
10
|
static EMPTY_STREAM_REVISION = -1;
|
|
@@ -31,7 +31,7 @@ export class DispatchingEventStore<AllEvents extends GenericEventSchema> extends
|
|
|
31
31
|
|
|
32
32
|
await Promise.all(
|
|
33
33
|
events.map((event) =>
|
|
34
|
-
this.publisher.emit(event.name as keyof
|
|
34
|
+
this.publisher.emit(event.name as keyof ToMessageMap<z.infer<AllEvents>>, event as any),
|
|
35
35
|
),
|
|
36
36
|
);
|
|
37
37
|
|
|
@@ -1,15 +1,18 @@
|
|
|
1
1
|
import type { EventBusPort } from "./event-bus.port";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
3
3
|
|
|
4
|
-
export class EventBusCollectingAdapter<
|
|
5
|
-
public events: Array<
|
|
4
|
+
export class EventBusCollectingAdapter<Event extends Message> implements EventBusPort<Event> {
|
|
5
|
+
public events: Array<Event> = [];
|
|
6
6
|
|
|
7
|
-
async emit<
|
|
8
|
-
|
|
7
|
+
async emit<EventName extends keyof ToMessageMap<Event>>(
|
|
8
|
+
_name: EventName,
|
|
9
|
+
event: ToMessageMap<Event>[EventName],
|
|
10
|
+
): Promise<void> {
|
|
11
|
+
this.events.push(event as Event);
|
|
9
12
|
}
|
|
10
13
|
|
|
11
|
-
on<
|
|
12
|
-
_name:
|
|
13
|
-
_handler: (event:
|
|
14
|
+
on<EventName extends keyof ToMessageMap<Event>>(
|
|
15
|
+
_name: EventName,
|
|
16
|
+
_handler: (event: ToMessageMap<Event>[EventName]) => void | Promise<void>,
|
|
14
17
|
): void {}
|
|
15
18
|
}
|
|
@@ -1,21 +1,24 @@
|
|
|
1
1
|
import Emittery from "emittery";
|
|
2
2
|
import type { EventBusPort } from "./event-bus.port";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
4
4
|
|
|
5
|
-
export class EventBusEmitteryV1Adapter<
|
|
6
|
-
private readonly emittery: Emittery<
|
|
5
|
+
export class EventBusEmitteryV1Adapter<Event extends Message> implements EventBusPort<Event> {
|
|
6
|
+
private readonly emittery: Emittery<ToMessageMap<Event>>;
|
|
7
7
|
|
|
8
8
|
constructor() {
|
|
9
|
-
this.emittery = new Emittery<
|
|
9
|
+
this.emittery = new Emittery<ToMessageMap<Event>>();
|
|
10
10
|
}
|
|
11
11
|
|
|
12
|
-
async emit<
|
|
12
|
+
async emit<EventName extends keyof ToMessageMap<Event>>(
|
|
13
|
+
name: EventName,
|
|
14
|
+
event: ToMessageMap<Event>[EventName],
|
|
15
|
+
): Promise<void> {
|
|
13
16
|
await this.emittery.emit(name, event);
|
|
14
17
|
}
|
|
15
18
|
|
|
16
|
-
on<
|
|
17
|
-
name:
|
|
18
|
-
handler: (event:
|
|
19
|
+
on<EventName extends keyof ToMessageMap<Event>>(
|
|
20
|
+
name: EventName,
|
|
21
|
+
handler: (event: ToMessageMap<Event>[EventName]) => void | Promise<void>,
|
|
19
22
|
): void {
|
|
20
23
|
this.emittery.on(name, handler);
|
|
21
24
|
}
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { EventBusPort } from "./event-bus.port";
|
|
2
|
-
import type {
|
|
2
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
3
3
|
|
|
4
|
-
export class EventBusNoopAdapter<
|
|
5
|
-
async emit<
|
|
4
|
+
export class EventBusNoopAdapter<Event extends Message> implements EventBusPort<Event> {
|
|
5
|
+
async emit<EventName extends keyof ToMessageMap<Event>>(
|
|
6
|
+
_name: EventName,
|
|
7
|
+
_event: ToMessageMap<Event>[EventName],
|
|
8
|
+
): Promise<void> {}
|
|
6
9
|
|
|
7
|
-
on<
|
|
8
|
-
_name:
|
|
9
|
-
_handler: (event:
|
|
10
|
+
on<EventName extends keyof ToMessageMap<Event>>(
|
|
11
|
+
_name: EventName,
|
|
12
|
+
_handler: (event: ToMessageMap<Event>[EventName]) => void | Promise<void>,
|
|
10
13
|
): void {}
|
|
11
14
|
}
|
|
@@ -1,18 +1,21 @@
|
|
|
1
1
|
import type { EventBusPort } from "./event-bus.port";
|
|
2
2
|
import type { LogCoreType, LoggerPort } from "./logger.port";
|
|
3
|
-
import type {
|
|
3
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
4
4
|
|
|
5
5
|
type Dependencies = { Logger: LoggerPort };
|
|
6
6
|
|
|
7
|
-
export class EventBusWithLoggerAdapter<
|
|
7
|
+
export class EventBusWithLoggerAdapter<Event extends Message> implements EventBusPort<Event> {
|
|
8
8
|
private readonly base = { component: "infra", operation: "event_emitted" };
|
|
9
9
|
|
|
10
10
|
constructor(
|
|
11
|
-
private readonly inner: EventBusPort<
|
|
11
|
+
private readonly inner: EventBusPort<Event>,
|
|
12
12
|
private readonly deps: Dependencies,
|
|
13
13
|
) {}
|
|
14
14
|
|
|
15
|
-
async emit<
|
|
15
|
+
async emit<EventName extends keyof ToMessageMap<Event>>(
|
|
16
|
+
name: EventName,
|
|
17
|
+
event: ToMessageMap<Event>[EventName],
|
|
18
|
+
): Promise<void> {
|
|
16
19
|
this.deps.Logger.info({
|
|
17
20
|
message: `${name.toString()} emitted`,
|
|
18
21
|
metadata: event as LogCoreType["metadata"],
|
|
@@ -22,9 +25,9 @@ export class EventBusWithLoggerAdapter<E extends { name: string }> implements Ev
|
|
|
22
25
|
return this.inner.emit(name, event);
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
on<
|
|
26
|
-
name:
|
|
27
|
-
handler: (event:
|
|
28
|
+
on<EventName extends keyof ToMessageMap<Event>>(
|
|
29
|
+
name: EventName,
|
|
30
|
+
handler: (event: ToMessageMap<Event>[EventName]) => void | Promise<void>,
|
|
28
31
|
): void {
|
|
29
32
|
this.inner.on(name, handler);
|
|
30
33
|
}
|
package/src/event-bus.port.ts
CHANGED
|
@@ -1,10 +1,13 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Message, ToMessageMap } from "./message.types";
|
|
2
2
|
|
|
3
|
-
export interface EventBusPort<
|
|
4
|
-
emit<
|
|
3
|
+
export interface EventBusPort<Event extends Message> {
|
|
4
|
+
emit<EventName extends keyof ToMessageMap<Event>>(
|
|
5
|
+
name: EventName,
|
|
6
|
+
event: ToMessageMap<Event>[EventName],
|
|
7
|
+
): Promise<void>;
|
|
5
8
|
|
|
6
|
-
on<
|
|
7
|
-
name:
|
|
8
|
-
handler: (event:
|
|
9
|
+
on<EventName extends keyof ToMessageMap<Event>>(
|
|
10
|
+
name: EventName,
|
|
11
|
+
handler: (event: ToMessageMap<Event>[EventName]) => void | Promise<void>,
|
|
9
12
|
): void;
|
|
10
13
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type * as z from "zod/v4";
|
|
2
|
-
import type { GenericEventSchema } from "./event.types";
|
|
3
1
|
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
2
|
+
import type { Message } from "./message.types";
|
|
4
3
|
|
|
5
4
|
export class EventHandlerBareStrategy implements EventHandlerStrategy {
|
|
6
|
-
handle<
|
|
7
|
-
return async (event:
|
|
5
|
+
handle<Event extends Message>(fn: (event: Event) => Promise<void>) {
|
|
6
|
+
return async (event: Event) => fn(event);
|
|
8
7
|
}
|
|
9
8
|
}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type * as z from "zod/v4";
|
|
2
|
-
import type { GenericEventSchema } from "./event.types";
|
|
3
1
|
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
2
|
+
import type { Message } from "./message.types";
|
|
4
3
|
|
|
5
4
|
export class EventHandlerNoopStrategy implements EventHandlerStrategy {
|
|
6
|
-
handle<
|
|
7
|
-
return async (_event:
|
|
5
|
+
handle<Event extends Message>(_handler: (event: Event) => Promise<void>) {
|
|
6
|
+
return async (_event: Event) => {};
|
|
8
7
|
}
|
|
9
8
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import type * as z from "zod/v4";
|
|
2
1
|
import type { ClockPort } from "./clock.port";
|
|
3
|
-
import type { GenericEventSchema } from "./event.types";
|
|
4
2
|
import type { EventHandlerStrategy } from "./event-handler.strategy";
|
|
5
3
|
import type { LoggerPort } from "./logger.port";
|
|
4
|
+
import type { Message } from "./message.types";
|
|
6
5
|
import { Stopwatch } from "./stopwatch.service";
|
|
7
6
|
|
|
8
7
|
type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
|
|
@@ -10,12 +9,12 @@ type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
|
|
|
10
9
|
export class EventHandlerWithLoggerStrategy implements EventHandlerStrategy {
|
|
11
10
|
constructor(private readonly deps: Dependencies) {}
|
|
12
11
|
|
|
13
|
-
handle<
|
|
14
|
-
return async (event:
|
|
12
|
+
handle<Event extends Message>(handler: (event: Event) => Promise<void>) {
|
|
13
|
+
return async (event: Event) => {
|
|
15
14
|
const duration = new Stopwatch(this.deps);
|
|
16
15
|
|
|
17
16
|
try {
|
|
18
|
-
await
|
|
17
|
+
await handler(event);
|
|
19
18
|
} catch (error) {
|
|
20
19
|
this.deps.Logger.error({
|
|
21
20
|
message: `Unknown ${event.name} event handler error`,
|
|
@@ -1,8 +1,5 @@
|
|
|
1
|
-
import type
|
|
2
|
-
import type { GenericEventSchema } from "./event.types";
|
|
1
|
+
import type { Message } from "./message.types";
|
|
3
2
|
|
|
4
3
|
export interface EventHandlerStrategy {
|
|
5
|
-
handle<
|
|
6
|
-
fn: (event: T) => Promise<void>,
|
|
7
|
-
): (event: T) => Promise<void>;
|
|
4
|
+
handle<Event extends Message>(fn: (event: Event) => Promise<void>): (event: Event) => Promise<void>;
|
|
8
5
|
}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
import type { Message } from "./message.types";
|
|
2
|
+
|
|
3
|
+
export type EventStoreLike<Event extends Message> = {
|
|
4
|
+
save(events: ReadonlyArray<Event>): Promise<unknown>;
|
|
3
5
|
};
|
package/src/index.ts
CHANGED
|
@@ -216,6 +216,7 @@ export * from "./markdown-generator.adapter";
|
|
|
216
216
|
export * from "./markdown-generator.port";
|
|
217
217
|
export * from "./markdown-generator-noop.adapter";
|
|
218
218
|
export * from "./memory-consumption.service";
|
|
219
|
+
export * from "./message.types";
|
|
219
220
|
export * from "./middleware-hono.port";
|
|
220
221
|
export * from "./middleware-hono-noop.adapter";
|
|
221
222
|
export * as History from "./modules/history";
|
|
@@ -374,7 +375,6 @@ export * from "./timeout-runner-monitor.adapter";
|
|
|
374
375
|
export * from "./timeout-runner-noop.adapter";
|
|
375
376
|
export * from "./timing.middleware";
|
|
376
377
|
export * from "./timing-hono.middleware";
|
|
377
|
-
export * from "./to-event-map.types";
|
|
378
378
|
export * from "./trailing-slash.middleware";
|
|
379
379
|
export * from "./trailing-slash.middleware";
|
|
380
380
|
export * from "./trailing-slash-hono.middleware";
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"to-event-map.types.d.ts","sourceRoot":"","sources":["../src/to-event-map.types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,CAAC,CAAC,SAAS;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,IAAI;KAClD,EAAE,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC,GAAG,EAAE;CAC5B,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"to-event-map.types.js","sourceRoot":"","sources":["../src/to-event-map.types.ts"],"names":[],"mappings":""}
|