Skip to content

Commit 48befad

Browse files
committed
Initial PermissionConsumer + type error fix
1 parent bb41abc commit 48befad

2 files changed

Lines changed: 37 additions & 1 deletion

File tree

packages/kafka/lib/AbstractKafkaConsumer.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,10 @@ import type { KafkaHandlerRouting } from './handler-container/KafkaHandlerRoutin
1414
import type { KafkaDependencies, TopicConfig } from './types.ts'
1515

1616
export type KafkaConsumerOptions<TopicsConfig extends TopicConfig[]> = BaseKafkaOptions &
17-
Omit<ConsumerOptions<string, object, string, object>, 'deserializers' | 'autocommit'> &
17+
Omit<
18+
ConsumerOptions<string, object, string, object>,
19+
'deserializers' | 'autocommit' | 'bootstrapBrokers'
20+
> &
1821
Omit<ConsumeOptions<string, object, string, object>, 'topics'> & {
1922
handlers: KafkaHandlerRouting<TopicsConfig>
2023
}
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
import { randomUUID } from 'node:crypto'
2+
import {
3+
AbstractKafkaConsumer,
4+
type KafkaConsumerOptions,
5+
} from '../../lib/AbstractKafkaConsumer.js'
6+
import { type KafkaDependencies, KafkaHandlerRoutingBuilder } from '../../lib/index.js'
7+
import type { PERMISSION_TOPIC_MESSAGES_CONFIG } from '../utils/permissionSchemas.js'
8+
import { getKafkaConfig } from '../utils/testContext.js'
9+
10+
export type PermissionConsumerOptions = Partial<
11+
Pick<
12+
KafkaConsumerOptions<typeof PERMISSION_TOPIC_MESSAGES_CONFIG>,
13+
'kafka' | 'handlerSpy' | 'autocreateTopics'
14+
>
15+
>
16+
17+
export class PermissionConsumer extends AbstractKafkaConsumer<
18+
typeof PERMISSION_TOPIC_MESSAGES_CONFIG
19+
> {
20+
constructor(deps: KafkaDependencies, options: PermissionConsumerOptions = {}) {
21+
super(deps, {
22+
handlers: new KafkaHandlerRoutingBuilder().build(),
23+
autocreateTopics: options.autocreateTopics ?? true,
24+
clientId: randomUUID(),
25+
groupId: randomUUID(),
26+
kafka: options.kafka ?? getKafkaConfig(),
27+
logMessages: true,
28+
handlerSpy: options.handlerSpy ?? true,
29+
messageIdField: 'id',
30+
messageTypeField: 'type',
31+
})
32+
}
33+
}

0 commit comments

Comments
 (0)