feat: add service factory for signal service
Signed-off-by: Heikki Hellgren <heikki.hellgren@op.fi>
This commit is contained in:
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
@@ -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 });
|
||||
},
|
||||
}),
|
||||
});
|
||||
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user