import packageJson from '../../package.json'; import { DEFAULT_INPUT_TEMPLATE } from '../constant'; export function getBuildConfig() { if (typeof process === 'undefined') { throw new TypeError( '[Server Config] you are importing a nodejs-only module outside of nodejs', ); } const buildMode = process.env.BUILD_MODE ?? 'standalone'; const isApp = !!process.env.BUILD_APP; const version = `v${packageJson.version}`; const commitInfo = (() => { try { const childProcess = require('node:child_process'); const commitDate: string = childProcess .execSync('git log -1 --format="%at000" --date=unix') .toString() .trim(); const commitHash: string = childProcess .execSync('git log --pretty=format:"%H" -n 1') .toString() .trim(); return { commitDate, commitHash }; } catch (e) { console.error('[Build Config] No git or not from git repo.'); return { commitDate: 'unknown', commitHash: 'unknown', }; } })(); return { version, ...commitInfo, buildMode, isApp, template: process.env.DEFAULT_INPUT_TEMPLATE ?? DEFAULT_INPUT_TEMPLATE, }; } export type BuildConfig = ReturnType;