File tree 3 files changed +23
-2
lines changed
3 files changed +23
-2
lines changed Original file line number Diff line number Diff line change 1
1
export * from './key-not-found.error' ;
2
+ export * from './transformer-not-found.error' ;
Original file line number Diff line number Diff line change
1
+ export class TransformerNotFoundError extends Error {
2
+ public static withType ( type : string ) {
3
+ return new TransformerNotFoundError ( `Missed ${ type } event map transformer` ) ;
4
+ }
5
+ }
Original file line number Diff line number Diff line change
1
+ import { ResolvedEvent } from '@eventstore/db-client' ;
1
2
import { Injectable } from '@nestjs/common' ;
2
3
import { ModulesContainer } from '@nestjs/core' ;
3
4
4
- import { TransformerRepo } from '../interfaces/transformer.type' ;
5
+ import { TransformerNotFoundError } from '../errors' ;
6
+ import { Transformer , TransformerRepo } from '../interfaces' ;
5
7
6
8
export const EVENT_STORE_TRANSFORMERS_TOKEN = 'EVENT_STORE_TRANSFORMERS_TOKEN' ;
7
9
8
10
@Injectable ( )
9
11
export class TransformerService {
10
- public readonly repo : TransformerRepo ;
12
+ private readonly repo : TransformerRepo ;
11
13
12
14
constructor ( private readonly modules : ModulesContainer ) {
13
15
const transformers = [ ...this . modules . values ( ) ]
@@ -17,4 +19,17 @@ export class TransformerService {
17
19
18
20
this . repo = Object . fromEntries ( transformers ) ;
19
21
}
22
+
23
+ public getTransformerToEvent (
24
+ resolvedEvent : ResolvedEvent ,
25
+ ) : Transformer | null {
26
+ const type = resolvedEvent . event . type ;
27
+
28
+ const transformer = this . repo [ type ] ;
29
+ if ( ! transformer ) {
30
+ throw TransformerNotFoundError . withType ( type ) ;
31
+ }
32
+
33
+ return transformer ;
34
+ }
20
35
}
You can’t perform that action at this time.
0 commit comments