Skip to content

Commit 8d90701

Browse files
committed
feat: 메인 함수 수정
- cli와 rest mode 를 cli 입력으로 선택하여 실행할 수 있도록 변경
1 parent 9f7bbb3 commit 8d90701

File tree

1 file changed

+30
-5
lines changed

1 file changed

+30
-5
lines changed

example04/src/main.ts

+30-5
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,37 @@
1+
import bodyParser from 'body-parser';
2+
import express from 'express';
13
import { createInterface } from 'readline/promises';
24
import { RouterNetworkInputPort } from 'src/application/port/input/router-network.input-port';
5+
import { RouterNetworkRestAdapter } from 'src/framework/adapter/input/rest/router-network.rest.adapter';
36
import { RouterNetworkCLIAdapter } from 'src/framework/adapter/input/stdin/router-network.cli.adapter';
4-
import { routerNetworkFileAdapter } from 'src/framework/adapter/output/router-network.file.adapter';
7+
import { routerNetworkFileAdapter } from 'src/framework/adapter/output/file/router-network.file.adapter';
8+
import { prisma } from 'src/framework/adapter/output/prisma/prisma';
9+
import { routerNetworkPrismaAdapter } from 'src/framework/adapter/output/prisma/router-network.prisma.adapter';
10+
import { WebApp } from 'src/web-app.factory';
511

612
async function main(): Promise<void> {
7-
const usecase = new RouterNetworkInputPort(routerNetworkFileAdapter);
8-
const routerNetworkCliAdapter = new RouterNetworkCLIAdapter(usecase);
9-
await routerNetworkCliAdapter.processRequest(createInterface({ input: process.stdin, output: process.stdout }));
13+
const readline = createInterface({ input: process.stdin, output: process.stdout });
14+
const mode = await readline.question('> Please enter the mode : ');
15+
if (mode !== 'cli' && mode !== 'rest') throw new Error('mode is only cli or rest');
16+
if (mode === 'cli') {
17+
const usecase = new RouterNetworkInputPort(routerNetworkFileAdapter);
18+
const routerNetworkCliAdapter = new RouterNetworkCLIAdapter(usecase);
19+
await routerNetworkCliAdapter.processRequest(createInterface({ input: process.stdin, output: process.stdout }));
20+
} else {
21+
const usecase = new RouterNetworkInputPort(routerNetworkPrismaAdapter);
22+
const app = new WebApp();
23+
const routerNetworkRestAdapter = new RouterNetworkRestAdapter(usecase);
24+
routerNetworkRestAdapter.processRequest(app);
25+
app.start();
26+
}
1027
}
1128

12-
main();
29+
main()
30+
.then(async () => {
31+
await prisma.$disconnect();
32+
})
33+
.catch(async (e) => {
34+
console.error(e);
35+
await prisma.$disconnect();
36+
process.exit(1);
37+
});

0 commit comments

Comments
 (0)