|
1 | | -import "dotenv/config"; |
| 1 | +import 'dotenv/config'; |
2 | 2 |
|
3 | | -type InstallMode = "normal" | "bypass"; |
| 3 | +import { validateEnv } from './config/env'; |
| 4 | +import { createApp } from './app'; |
4 | 5 |
|
5 | | -const BOOTSTRAP_MESSAGE = "Fieldstack API bootstrap initialized"; |
| 6 | +// ── 환경변수 검증 (누락·오류 시 즉시 종료) ──────────────────── |
| 7 | +const env = validateEnv(process.env); |
6 | 8 |
|
7 | | -function resolveInstallMode(env: NodeJS.ProcessEnv): InstallMode { |
8 | | - const requestedMode = env.INSTALL_MODE; |
9 | | - const isDevelopment = env.NODE_ENV === "development"; |
| 9 | +// ── Install mode ────────────────────────────────────────────── |
| 10 | +const BOOTSTRAP_MESSAGE = 'Fieldstack API bootstrap initialized'; |
10 | 11 |
|
11 | | - if (requestedMode === "bypass") { |
12 | | - if (isDevelopment) { |
13 | | - return "bypass"; |
14 | | - } |
15 | | - |
16 | | - console.warn("[fieldstack][api] INSTALL_MODE=bypass ignored outside development"); |
17 | | - } |
| 12 | +console.log(BOOTSTRAP_MESSAGE); |
| 13 | +console.log(`[fieldstack][api] env: ${env.NODE_ENV}`); |
| 14 | +console.log(`[fieldstack][api] install mode: ${env.INSTALL_MODE ?? 'normal'}`); |
18 | 15 |
|
19 | | - return "normal"; |
| 16 | +if (env.INSTALL_MODE === 'bypass') { |
| 17 | + console.warn('[fieldstack][api] DEV INSTALL BYPASS ACTIVE'); |
20 | 18 | } |
21 | 19 |
|
22 | | -const installMode = resolveInstallMode(process.env); |
| 20 | +// ── 서버 시작 ───────────────────────────────────────────────── |
| 21 | +const app = createApp(); |
23 | 22 |
|
24 | | -console.log(BOOTSTRAP_MESSAGE); |
25 | | -console.log(`[fieldstack][api] install mode: ${installMode}`); |
26 | | - |
27 | | -if (installMode === "bypass") { |
28 | | - console.warn("[fieldstack][api] DEV INSTALL BYPASS ACTIVE"); |
29 | | -} |
| 23 | +app.listen(env.PORT, () => { |
| 24 | + console.log(`[fieldstack][api] server listening on http://localhost:${env.PORT}`); |
| 25 | +}); |
0 commit comments