From 8133856d75023982efa8d014b378600e73916b17 Mon Sep 17 00:00:00 2001 From: Haileyesus Date: Wed, 15 Apr 2026 13:39:32 +0300 Subject: [PATCH] refactor: remove build-server.mjs and inline its logic into package.json scripts --- package.json | 3 +- scripts/build-server.mjs | 61 ---------------------------------------- 2 files changed, 2 insertions(+), 62 deletions(-) delete mode 100644 scripts/build-server.mjs diff --git a/package.json b/package.json index e104b720..9c352644 100644 --- a/package.json +++ b/package.json @@ -31,7 +31,8 @@ "client": "vite", "build": "npm run build:client && npm run build:server", "build:client": "vite build", - "build:server": "node scripts/build-server.mjs", + "prebuild:server": "node -e \"require('node:fs').rmSync('dist-server', { recursive: true, force: true })\"", + "build:server": "tsc -p server/tsconfig.json && tsc-alias -p server/tsconfig.json", "preview": "vite preview", "typecheck": "tsc --noEmit -p tsconfig.json && tsc --noEmit -p server/tsconfig.json", "lint": "eslint src/ server/", diff --git a/scripts/build-server.mjs b/scripts/build-server.mjs deleted file mode 100644 index 5a736be4..00000000 --- a/scripts/build-server.mjs +++ /dev/null @@ -1,61 +0,0 @@ -import fs from 'node:fs'; -import fsPromises from 'node:fs/promises'; -import path from 'node:path'; -import { spawn } from 'node:child_process'; -import { createRequire } from 'node:module'; -import { fileURLToPath } from 'node:url'; - -const require = createRequire(import.meta.url); -const SCRIPT_DIR = path.dirname(fileURLToPath(import.meta.url)); -const PROJECT_ROOT = path.resolve(SCRIPT_DIR, '..'); -const OUTPUT_DIR = path.join(PROJECT_ROOT, 'dist-server'); -const SERVER_TSCONFIG_PATH = 'server/tsconfig.json'; - -function getPackageBinaryPath(packageName) { - const packageJsonPath = require.resolve(`${packageName}/package.json`); - const packageJson = JSON.parse(fs.readFileSync(packageJsonPath, 'utf8')); - const binField = packageJson.bin; - const binaryRelativePath = - typeof binField === 'string' - ? binField - : binField?.[packageName] ?? Object.values(binField ?? {})[0]; - - if (!binaryRelativePath) { - throw new Error(`Could not find a runnable binary for ${packageName}.`); - } - - return path.resolve(path.dirname(packageJsonPath), binaryRelativePath); -} - -function runPackageBinary(packageName, args) { - return new Promise((resolve, reject) => { - const child = spawn(process.execPath, [getPackageBinaryPath(packageName), ...args], { - cwd: PROJECT_ROOT, - stdio: 'inherit', - env: process.env, - }); - - child.on('error', reject); - child.on('close', (code) => { - if (code === 0) { - resolve(); - return; - } - - reject(new Error(`${packageName} exited with code ${code}.`)); - }); - }); -} - -async function main() { - // Clean first so removed server files do not linger in dist-server and shadow newer source changes. - await fsPromises.rm(OUTPUT_DIR, { recursive: true, force: true }); - - await runPackageBinary('typescript', ['-p', SERVER_TSCONFIG_PATH]); - await runPackageBinary('tsc-alias', ['-p', SERVER_TSCONFIG_PATH]); -} - -main().catch((error) => { - console.error(error); - process.exit(1); -});