tweak exports to allow decoupling of backend plugins

Signed-off-by: Brian Fletcher <brian@roadie.io>
This commit is contained in:
Brian Fletcher
2023-03-02 16:19:39 +00:00
parent d06fc3f3e3
commit 3538d9ad2c
10 changed files with 36 additions and 17 deletions
+12
View File
@@ -5,6 +5,7 @@
```ts
import { Config } from '@backstage/config';
import { EventBroker } from '@backstage/plugin-events-node';
import { EventParams } from '@backstage/plugin-events-node';
import { EventPublisher } from '@backstage/plugin-events-node';
import { EventSubscriber } from '@backstage/plugin-events-node';
import express from 'express';
@@ -42,4 +43,15 @@ export class HttpPostIngressEventPublisher implements EventPublisher {
// (undocumented)
setEventBroker(eventBroker: EventBroker): Promise<void>;
}
// @public
export class InMemoryEventBroker implements EventBroker {
constructor(logger: Logger);
// (undocumented)
publish(params: EventParams): Promise<void>;
// (undocumented)
subscribe(
...subscribers: Array<EventSubscriber | Array<EventSubscriber>>
): void;
}
```
+1
View File
@@ -22,3 +22,4 @@
export { EventsBackend } from './service/EventsBackend';
export { HttpPostIngressEventPublisher } from './service/http';
export { InMemoryEventBroker } from './service/InMemoryEventBroker';
@@ -25,6 +25,8 @@ import { Logger } from 'winston';
* In-memory event broker which will pass the event to all registered subscribers
* interested in it.
* Events will not be persisted in any form.
*
* @public
*/
// TODO(pjungermann): add prom metrics? (see plugins/catalog-backend/src/util/metrics.ts, etc.)
export class InMemoryEventBroker implements EventBroker {
@@ -107,7 +107,7 @@ export class HttpPostIngressEventPublisher implements EventPublisher {
return;
}
const eventPayload = request.body;
const eventPayload = request;
await this.eventBroker!.publish({
topic,
eventPayload,