Merge pull request #30679 from Jonas-Beck/chore/events-kafka

chore(events): remove luxon dependency
This commit is contained in:
Ben Lambert
2025-08-11 10:29:19 +02:00
committed by GitHub
7 changed files with 20 additions and 29 deletions
+5
View File
@@ -0,0 +1,5 @@
---
'@backstage/plugin-events-backend-module-kafka': patch
---
Remove luxon dependency and minor internal improvements
@@ -39,8 +39,7 @@
"@backstage/config": "workspace:^",
"@backstage/plugin-events-node": "workspace:^",
"@backstage/types": "workspace:^",
"kafkajs": "^2.2.4",
"luxon": "^3.0.0"
"kafkajs": "^2.2.4"
},
"devDependencies": {
"@backstage/backend-test-utils": "workspace:^",
@@ -25,8 +25,6 @@ import { loggerServiceAdapter } from './LoggerServiceAdapter';
* KafkaConsumerClient
*
* This class creates the Kafka client that will be used to create the KafkaConsumingEventPublisher
*
* @public
*/
export class KafkaConsumerClient {
private readonly kafka: Kafka;
@@ -21,11 +21,8 @@ import { KafkaConsumerConfig } from './config';
type EventMetadata = EventParams['metadata'];
/**
*
* This class subscribes to Kafka topics and publishes events received to the registered subscriber.
* The message payload will be used as the event payload and passed to the subscribers.
*
* @public
*/
export class KafkaConsumingEventPublisher {
private readonly kafkaConsumer: Consumer;
@@ -16,23 +16,21 @@
import { LoggerService } from '@backstage/backend-plugin-api';
import { LogEntry, logLevel } from 'kafkajs';
export const loggerServiceAdapter =
(loggerService: LoggerService) => (_level: logLevel) => {
export const loggerServiceAdapter = (loggerService: LoggerService) => {
const logMethods: Record<logLevel, (message: string, meta?: object) => void> =
{
[logLevel.ERROR]: loggerService.error,
[logLevel.WARN]: loggerService.warn,
[logLevel.INFO]: loggerService.info,
[logLevel.DEBUG]: loggerService.debug,
[logLevel.NOTHING]: () => {},
};
return (_level: logLevel) => {
return (entry: LogEntry) => {
const { namespace, level, log } = entry;
const { message, ...extra } = log;
const logMethods: Record<
logLevel,
(message: string, meta?: object) => void
> = {
[logLevel.ERROR]: loggerService.error,
[logLevel.WARN]: loggerService.warn,
[logLevel.INFO]: loggerService.info,
[logLevel.DEBUG]: loggerService.debug,
[logLevel.NOTHING]: () => {},
};
// Use loggerService method that matches the level
logMethods[level].call(
loggerService,
@@ -43,3 +41,4 @@ export const loggerServiceAdapter =
);
};
};
};
@@ -14,21 +14,15 @@
* limitations under the License.
*/
import { Config, readDurationFromConfig } from '@backstage/config';
import { durationToMilliseconds } from '@backstage/types';
import { ConsumerConfig, ConsumerSubscribeTopics, KafkaConfig } from 'kafkajs';
import { Duration } from 'luxon';
/**
* @public
*/
export interface KafkaConsumerConfig {
backstageTopic: string;
consumerConfig: ConsumerConfig;
consumerSubscribeTopics: ConsumerSubscribeTopics;
}
/**
* @public
*/
export interface KafkaEventSourceConfig {
kafkaConfig: KafkaConfig;
kafkaConsumerConfigs: KafkaConsumerConfig[];
@@ -54,7 +48,7 @@ const readOptionalHumanDurationInMs = (
if (!humanDuration) return undefined;
return Duration.fromObject(humanDuration).as('milliseconds');
return durationToMilliseconds(humanDuration);
};
export const readConfig = (
-1
View File
@@ -6308,7 +6308,6 @@ __metadata:
"@backstage/plugin-events-node": "workspace:^"
"@backstage/types": "workspace:^"
kafkajs: "npm:^2.2.4"
luxon: "npm:^3.0.0"
languageName: unknown
linkType: soft