Merge pull request #30679 from Jonas-Beck/chore/events-kafka
chore(events): remove luxon dependency
This commit is contained in:
@@ -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 = (
|
||||
|
||||
Reference in New Issue
Block a user