@bgord/bun 1.6.2 → 1.6.4
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/event-handler-bare.adapter.d.ts +9 -0
- package/dist/event-handler-bare.adapter.d.ts.map +1 -0
- package/dist/event-handler-bare.adapter.js +6 -0
- package/dist/event-handler-bare.adapter.js.map +1 -0
- package/dist/event-handler-noop.adapter.d.ts +9 -0
- package/dist/event-handler-noop.adapter.d.ts.map +1 -0
- package/dist/event-handler-noop.adapter.js +6 -0
- package/dist/event-handler-noop.adapter.js.map +1 -0
- package/dist/{event-handler.service.d.ts → event-handler-with-logger.adapter.d.ts} +5 -2
- package/dist/event-handler-with-logger.adapter.d.ts.map +1 -0
- package/dist/{event-handler.service.js → event-handler-with-logger.adapter.js} +6 -4
- package/dist/event-handler-with-logger.adapter.js.map +1 -0
- package/dist/event-handler.port.d.ts +8 -0
- package/dist/event-handler.port.d.ts.map +1 -0
- package/dist/event-handler.port.js +2 -0
- package/dist/event-handler.port.js.map +1 -0
- package/dist/index.d.ts +6 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -1
- package/dist/index.js.map +1 -1
- package/dist/job-handler-bare.adapter.d.ts +12 -0
- package/dist/job-handler-bare.adapter.d.ts.map +1 -0
- package/dist/job-handler-bare.adapter.js +12 -0
- package/dist/job-handler-bare.adapter.js.map +1 -0
- package/dist/job-handler-noop.adapter.d.ts +6 -0
- package/dist/job-handler-noop.adapter.d.ts.map +1 -0
- package/dist/job-handler-noop.adapter.js +7 -0
- package/dist/job-handler-noop.adapter.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/readme.md +6 -1
- package/src/event-handler-bare.adapter.ts +9 -0
- package/src/event-handler-noop.adapter.ts +9 -0
- package/src/{event-handler.service.ts → event-handler-with-logger.adapter.ts} +9 -4
- package/src/event-handler.port.ts +8 -0
- package/src/index.ts +6 -1
- package/src/job-handler-bare.adapter.ts +15 -0
- package/src/job-handler-noop.adapter.ts +9 -0
- package/dist/event-handler.service.d.ts.map +0 -1
- package/dist/event-handler.service.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@bgord/bun",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.4",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"author": "Bartosz Gordon",
|
|
@@ -28,7 +28,7 @@
|
|
|
28
28
|
"@types/nodemailer": "7.0.4",
|
|
29
29
|
"@types/yazl": "3.3.0",
|
|
30
30
|
"cspell": "9.4.0",
|
|
31
|
-
"knip": "5.75.
|
|
31
|
+
"knip": "5.75.2",
|
|
32
32
|
"lefthook": "2.0.12",
|
|
33
33
|
"lockfile-lint": "4.14.1",
|
|
34
34
|
"only-allow": "1.2.2",
|
package/readme.md
CHANGED
|
@@ -88,7 +88,10 @@ src/
|
|
|
88
88
|
├── etag-extractor.middleware.ts
|
|
89
89
|
├── event-bus-like.types.ts
|
|
90
90
|
├── event-envelope.ts
|
|
91
|
-
├── event-handler.
|
|
91
|
+
├── event-handler-bare.adapter.ts
|
|
92
|
+
├── event-handler-noop.adapter.ts
|
|
93
|
+
├── event-handler-with-logger.adapter.ts
|
|
94
|
+
├── event-handler.port.ts
|
|
92
95
|
├── event-logger.service.ts
|
|
93
96
|
├── event-publisher.types.ts
|
|
94
97
|
├── event-store-like.types.ts
|
|
@@ -153,6 +156,8 @@ src/
|
|
|
153
156
|
├── image-resizer.port.ts
|
|
154
157
|
├── invariant-error-handler.service.ts
|
|
155
158
|
├── invariant.service.ts
|
|
159
|
+
├── job-handler-bare.adapter.ts
|
|
160
|
+
├── job-handler-noop.adapter.ts
|
|
156
161
|
├── job-handler-with-logger.adapter.ts
|
|
157
162
|
├── job-handler.port.ts
|
|
158
163
|
├── jobs.service.ts
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { z } from "zod/v4";
|
|
2
|
+
import type { GenericEventSchema } from "./event.types";
|
|
3
|
+
import type { EventHandlerPort } from "./event-handler.port";
|
|
4
|
+
|
|
5
|
+
export class EventHandlerBareAdapter implements EventHandlerPort {
|
|
6
|
+
handle<T extends { name: z.infer<GenericEventSchema["shape"]["name"]> }>(fn: (event: T) => Promise<void>) {
|
|
7
|
+
return async (event: T) => fn(event);
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { z } from "zod/v4";
|
|
2
|
+
import type { GenericEventSchema } from "./event.types";
|
|
3
|
+
import type { EventHandlerPort } from "./event-handler.port";
|
|
4
|
+
|
|
5
|
+
export class EventHandlerNoopAdapter implements EventHandlerPort {
|
|
6
|
+
handle<T extends { name: z.infer<GenericEventSchema["shape"]["name"]> }>(_fn: (event: T) => Promise<void>) {
|
|
7
|
+
return async (_event: T) => {};
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -1,24 +1,29 @@
|
|
|
1
|
+
import * as tools from "@bgord/tools";
|
|
1
2
|
import type { z } from "zod/v4";
|
|
3
|
+
import type { ClockPort } from "./clock.port";
|
|
2
4
|
import type { GenericEventSchema } from "./event.types";
|
|
5
|
+
import type { EventHandlerPort } from "./event-handler.port";
|
|
3
6
|
import type { LoggerPort } from "./logger.port";
|
|
4
7
|
import { formatError } from "./logger-format-error.service";
|
|
5
8
|
|
|
6
|
-
type Dependencies = { Logger: LoggerPort };
|
|
9
|
+
type Dependencies = { Logger: LoggerPort; Clock: ClockPort };
|
|
7
10
|
|
|
8
|
-
export class
|
|
11
|
+
export class EventHandlerWithLoggerAdapter implements EventHandlerPort {
|
|
9
12
|
constructor(private readonly deps: Dependencies) {}
|
|
10
13
|
|
|
11
14
|
handle<T extends { name: z.infer<GenericEventSchema["shape"]["name"]> }>(fn: (event: T) => Promise<void>) {
|
|
12
15
|
return async (event: T) => {
|
|
16
|
+
const stopwatch = new tools.Stopwatch(this.deps.Clock.now());
|
|
17
|
+
|
|
13
18
|
try {
|
|
14
19
|
await fn(event);
|
|
15
20
|
} catch (error) {
|
|
16
21
|
this.deps.Logger.error({
|
|
17
22
|
message: `Unknown ${event.name} event handler error`,
|
|
18
23
|
component: "infra",
|
|
19
|
-
operation: "
|
|
24
|
+
operation: "event_handler",
|
|
25
|
+
metadata: { name: event.name, duration: stopwatch.stop() },
|
|
20
26
|
error: formatError(error),
|
|
21
|
-
metadata: { name: event.name },
|
|
22
27
|
});
|
|
23
28
|
}
|
|
24
29
|
};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { z } from "zod/v4";
|
|
2
|
+
import type { GenericEventSchema } from "./event.types";
|
|
3
|
+
|
|
4
|
+
export interface EventHandlerPort {
|
|
5
|
+
handle<T extends { name: z.infer<GenericEventSchema["shape"]["name"]> }>(
|
|
6
|
+
fn: (event: T) => Promise<void>,
|
|
7
|
+
): (event: T) => Promise<void>;
|
|
8
|
+
}
|
package/src/index.ts
CHANGED
|
@@ -61,7 +61,10 @@ export * from "./etag-extractor.middleware";
|
|
|
61
61
|
export * from "./event.types";
|
|
62
62
|
export * from "./event-bus-like.types";
|
|
63
63
|
export * from "./event-envelope";
|
|
64
|
-
export * from "./event-handler.
|
|
64
|
+
export * from "./event-handler.port";
|
|
65
|
+
export * from "./event-handler-bare.adapter";
|
|
66
|
+
export * from "./event-handler-noop.adapter";
|
|
67
|
+
export * from "./event-handler-with-logger.adapter";
|
|
65
68
|
export * from "./event-logger.service";
|
|
66
69
|
export * from "./event-store";
|
|
67
70
|
export * from "./event-store-like.types";
|
|
@@ -129,6 +132,8 @@ export * from "./image-resizer-sharp.adapter";
|
|
|
129
132
|
export * from "./invariant.service";
|
|
130
133
|
export * from "./invariant-error-handler.service";
|
|
131
134
|
export * from "./job-handler.port";
|
|
135
|
+
export * from "./job-handler-bare.adapter";
|
|
136
|
+
export * from "./job-handler-noop.adapter";
|
|
132
137
|
export * from "./job-handler-with-logger.adapter";
|
|
133
138
|
export * from "./jobs.service";
|
|
134
139
|
export * from "./json-file-reader.port";
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { CorrelationStorage } from "./correlation-storage.service";
|
|
2
|
+
import type { IdProviderPort } from "./id-provider.port";
|
|
3
|
+
import type { JobHandlerPort, UnitOfWork } from "./job-handler.port";
|
|
4
|
+
|
|
5
|
+
type Dependencies = { IdProvider: IdProviderPort };
|
|
6
|
+
|
|
7
|
+
export class JobHandlerBare implements JobHandlerPort {
|
|
8
|
+
constructor(private readonly deps: Dependencies) {}
|
|
9
|
+
|
|
10
|
+
handle(uow: UnitOfWork) {
|
|
11
|
+
const correlationId = this.deps.IdProvider.generate();
|
|
12
|
+
|
|
13
|
+
return async () => CorrelationStorage.run(correlationId, async () => uow.process());
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.service.d.ts","sourceRoot":"","sources":["../src/event-handler.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAGhD,KAAK,YAAY,GAAG;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,CAAC;AAE3C,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,IAAI;gBAAJ,IAAI,EAAE,YAAY;IAE/C,MAAM,CAAC,CAAC,SAAS;QAAE,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;KAAE,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,IACxF,OAAO,CAAC;CAczB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.service.js","sourceRoot":"","sources":["../src/event-handler.service.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAI5D,MAAM,OAAO,YAAY;IACM;IAA7B,YAA6B,IAAkB;QAAlB,SAAI,GAAJ,IAAI,CAAc;IAAG,CAAC;IAEnD,MAAM,CAAmE,EAA+B;QACtG,OAAO,KAAK,EAAE,KAAQ,EAAE,EAAE;YACxB,IAAI,CAAC;gBACH,MAAM,EAAE,CAAC,KAAK,CAAC,CAAC;YAClB,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;oBACrB,OAAO,EAAE,WAAW,KAAK,CAAC,IAAI,sBAAsB;oBACpD,SAAS,EAAE,OAAO;oBAClB,SAAS,EAAE,6BAA6B;oBACxC,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC;oBACzB,QAAQ,EAAE,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE;iBAC/B,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC;IACJ,CAAC;CACF"}
|