1 | import { createServiceBuilder } from '@backstage/backend-common';
|
2 | import { Server } from 'http';
|
3 | import { Logger } from 'winston';
|
4 | import { createRouter } from './router';
|
5 |
|
6 | export interface ServerOptions {
|
7 | port: number;
|
8 | enableCors: boolean;
|
9 | logger: Logger;
|
10 | }
|
11 |
|
12 | export async function startStandaloneServer(
|
13 | options: ServerOptions,
|
14 | ): Promise<Server> {
|
15 | const logger = options.logger.child({ service: '{{id}}-backend' });
|
16 | logger.debug('Starting application server...');
|
17 | const router = await createRouter({
|
18 | logger,
|
19 | });
|
20 |
|
21 | let service = createServiceBuilder(module)
|
22 | .setPort(options.port)
|
23 | .addRouter('/{{id}}', router);
|
24 | if (options.enableCors) {
|
25 | service = service.enableCors({ origin: 'http://localhost:3000' });
|
26 | }
|
27 |
|
28 | return await service.start().catch(err => {
|
29 | logger.error(err);
|
30 | process.exit(1);
|
31 | });
|
32 | }
|
33 |
|
34 | module.hot?.accept();
|
35 |
|
\ | No newline at end of file |