feat: add service factory for signal service

Signed-off-by: Heikki Hellgren <heikki.hellgren@op.fi>
This commit is contained in:
Heikki Hellgren
2023-12-08 16:42:16 +02:00
parent 5368d38e9d
commit 3b6b645d93
5 changed files with 29 additions and 11 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ import { signalService } from '@backstage/plugin-signals-node';
* @public
*/
export const signalsPlugin = createBackendPlugin({
pluginId: 'devtools',
pluginId: 'signals',
register(env) {
env.registerInit({
deps: {
+2 -2
View File
@@ -12,13 +12,13 @@ import { EventSubscriber } from '@backstage/plugin-events-node';
import { IdentityApi } from '@backstage/plugin-auth-node';
import { IncomingMessage } from 'http';
import { JsonObject } from '@backstage/types';
import { Logger } from 'winston';
import { LoggerService } from '@backstage/backend-plugin-api';
import { ServiceRef } from '@backstage/backend-plugin-api';
// @public (undocumented)
export type ServiceOptions = {
eventBroker?: EventBroker;
logger: Logger;
logger: LoggerService;
identity: IdentityApi;
};
+2 -2
View File
@@ -18,7 +18,6 @@ import {
EventParams,
EventSubscriber,
} from '@backstage/plugin-events-node';
import { Logger } from 'winston';
import {
ServiceOptions,
SignalConnection,
@@ -34,6 +33,7 @@ import {
IdentityApiGetIdentityRequest,
} from '@backstage/plugin-auth-node';
import { Duplex } from 'stream';
import { LoggerService } from '@backstage/backend-plugin-api';
/** @public */
export class SignalService implements EventSubscriber {
@@ -43,7 +43,7 @@ export class SignalService implements EventSubscriber {
SignalConnection
>();
private eventBroker?: EventBroker;
private logger: Logger;
private logger: LoggerService;
private identity: IdentityApi;
private server: WebSocketServer;
+22 -4
View File
@@ -13,9 +13,27 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { createServiceRef } from '@backstage/backend-plugin-api';
import {
coreServices,
createServiceFactory,
createServiceRef,
} from '@backstage/backend-plugin-api';
import { SignalService } from './SignalService';
/** @public */
export const signalService = createServiceRef<
import('./SignalService').SignalService
>({ id: 'signals.service', scope: 'plugin' });
export const signalService = createServiceRef<SignalService>({
id: 'signals.service',
scope: 'plugin',
defaultFactory: async service =>
createServiceFactory({
service,
deps: {
logger: coreServices.logger,
identity: coreServices.identity,
// TODO: EventBroker
},
factory({ logger, identity }) {
return SignalService.create({ identity, logger });
},
}),
});
+2 -2
View File
@@ -15,16 +15,16 @@
*/
import { IdentityApi } from '@backstage/plugin-auth-node';
import { EventBroker } from '@backstage/plugin-events-node';
import { Logger } from 'winston';
import { WebSocket } from 'ws';
import { JsonObject } from '@backstage/types';
import { LoggerService } from '@backstage/backend-plugin-api';
/**
* @public
*/
export type ServiceOptions = {
eventBroker?: EventBroker;
logger: Logger;
logger: LoggerService;
identity: IdentityApi;
};