From a66111ac1fa744a66f48d59484fad4c3d8837731 Mon Sep 17 00:00:00 2001
From: syuilo <Syuilotan@yahoo.co.jp>
Date: Sun, 18 Sep 2022 23:17:32 +0900
Subject: [PATCH] refactor(backend): simplify boot

---
 package.json                       |  4 +-
 packages/backend/src/boot/index.ts | 60 +++++++++++++++---------------
 packages/backend/src/index.ts      | 13 -------
 packages/backend/tsconfig.json     |  2 +-
 4 files changed, 34 insertions(+), 45 deletions(-)
 delete mode 100644 packages/backend/src/index.ts

diff --git a/package.json b/package.json
index 5bd22ebe7c..c84cb28bad 100644
--- a/package.json
+++ b/package.json
@@ -10,8 +10,8 @@
 	"scripts": {
 		"postinstall": "node ./scripts/install-packages.js",
 		"build": "node ./scripts/build.js",
-		"start": "cd packages/backend && node --experimental-json-modules ./built/index.js",
-		"start:test": "cd packages/backend && cross-env NODE_ENV=test node --experimental-json-modules ./built/index.js",
+		"start": "cd packages/backend && node --experimental-json-modules ./built/boot/index.js",
+		"start:test": "cd packages/backend && cross-env NODE_ENV=test node --experimental-json-modules ./built/boot/index.js",
 		"init": "npm run migrate",
 		"migrate": "cd packages/backend && npx typeorm migration:run -d ormconfig.js",
 		"migrateandstart": "npm run migrate && npm run start",
diff --git a/packages/backend/src/boot/index.ts b/packages/backend/src/boot/index.ts
index f67b09b1cc..fbf9e73e09 100644
--- a/packages/backend/src/boot/index.ts
+++ b/packages/backend/src/boot/index.ts
@@ -1,44 +1,28 @@
+
+/**
+ * Misskey Entry Point!
+ */
+
 import cluster from 'node:cluster';
+import { EventEmitter } from 'node:events';
 import chalk from 'chalk';
 import Xev from 'xev';
-
 import Logger from '@/logger.js';
 import { envOption } from '../env.js';
-
-// for typeorm
-import 'reflect-metadata';
 import { masterMain } from './master.js';
 import { workerMain } from './worker.js';
 
+import 'reflect-metadata';
+
+process.title = `Misskey (${cluster.isPrimary ? 'master' : 'worker'})`;
+
+Error.stackTraceLimit = Infinity;
+EventEmitter.defaultMaxListeners = 128;
+
 const logger = new Logger('core', 'cyan');
 const clusterLogger = logger.createSubLogger('cluster', 'orange', false);
 const ev = new Xev();
 
-/**
- * Init process
- */
-export default async function() {
-	process.title = `Misskey (${cluster.isPrimary ? 'master' : 'worker'})`;
-
-	if (cluster.isPrimary || envOption.disableClustering) {
-		await masterMain();
-
-		if (cluster.isPrimary) {
-			ev.mount();
-		}
-	}
-
-	if (cluster.isWorker || envOption.disableClustering) {
-		await workerMain();
-	}
-
-	// ユニットテスト時にMisskeyが子プロセスで起動された時のため
-	// それ以外のときは process.send は使えないので弾く
-	if (process.send) {
-		process.send('ok');
-	}
-}
-
 //#region Events
 
 // Listen new workers
@@ -77,3 +61,21 @@ process.on('exit', code => {
 });
 
 //#endregion
+
+if (cluster.isPrimary || envOption.disableClustering) {
+	await masterMain();
+
+	if (cluster.isPrimary) {
+		ev.mount();
+	}
+}
+
+if (cluster.isWorker || envOption.disableClustering) {
+	await workerMain();
+}
+
+// ユニットテスト時にMisskeyが子プロセスで起動された時のため
+// それ以外のときは process.send は使えないので弾く
+if (process.send) {
+	process.send('ok');
+}
diff --git a/packages/backend/src/index.ts b/packages/backend/src/index.ts
deleted file mode 100644
index bd9c0098bc..0000000000
--- a/packages/backend/src/index.ts
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Misskey Entry Point!
- */
-
-import { EventEmitter } from 'node:events';
-import boot from './boot/index.js';
-
-Error.stackTraceLimit = Infinity;
-EventEmitter.defaultMaxListeners = 128;
-
-boot().catch(err => {
-	console.error(err);
-});
diff --git a/packages/backend/tsconfig.json b/packages/backend/tsconfig.json
index dea4eb27db..0c95925744 100644
--- a/packages/backend/tsconfig.json
+++ b/packages/backend/tsconfig.json
@@ -10,7 +10,7 @@
 		"declaration": false,
 		"sourceMap": false,
 		"target": "es2021",
-		"module": "es2020",
+		"module": "es2022",
 		"moduleResolution": "node",
 		"allowSyntheticDefaultImports": true,
 		"removeComments": false,