Spaces:
Build error
Build error
| import type { ActionFunctionArgs, LoaderFunction } from '@remix-run/cloudflare'; | |
| import { json } from '@remix-run/cloudflare'; | |
| import { execSync } from 'child_process'; | |
| // These are injected by Vite at build time | |
| declare const __APP_VERSION: string; | |
| declare const __PKG_NAME: string; | |
| declare const __PKG_DESCRIPTION: string; | |
| declare const __PKG_LICENSE: string; | |
| declare const __PKG_DEPENDENCIES: Record<string, string>; | |
| declare const __PKG_DEV_DEPENDENCIES: Record<string, string>; | |
| declare const __PKG_PEER_DEPENDENCIES: Record<string, string>; | |
| declare const __PKG_OPTIONAL_DEPENDENCIES: Record<string, string>; | |
| const getGitInfo = () => { | |
| try { | |
| return { | |
| commitHash: execSync('git rev-parse --short HEAD').toString().trim(), | |
| branch: execSync('git rev-parse --abbrev-ref HEAD').toString().trim(), | |
| commitTime: execSync('git log -1 --format=%cd').toString().trim(), | |
| author: execSync('git log -1 --format=%an').toString().trim(), | |
| email: execSync('git log -1 --format=%ae').toString().trim(), | |
| remoteUrl: execSync('git config --get remote.origin.url').toString().trim(), | |
| repoName: execSync('git config --get remote.origin.url') | |
| .toString() | |
| .trim() | |
| .replace(/^.*github.com[:/]/, '') | |
| .replace(/\.git$/, ''), | |
| }; | |
| } catch (error) { | |
| console.error('Failed to get git info:', error); | |
| return { | |
| commitHash: 'unknown', | |
| branch: 'unknown', | |
| commitTime: 'unknown', | |
| author: 'unknown', | |
| email: 'unknown', | |
| remoteUrl: 'unknown', | |
| repoName: 'unknown', | |
| }; | |
| } | |
| }; | |
| const formatDependencies = ( | |
| deps: Record<string, string>, | |
| type: 'production' | 'development' | 'peer' | 'optional', | |
| ): Array<{ name: string; version: string; type: string }> => { | |
| return Object.entries(deps || {}).map(([name, version]) => ({ | |
| name, | |
| version: version.replace(/^\^|~/, ''), | |
| type, | |
| })); | |
| }; | |
| const getAppResponse = () => { | |
| const gitInfo = getGitInfo(); | |
| return { | |
| name: __PKG_NAME || 'bolt.diy', | |
| version: __APP_VERSION || '0.1.0', | |
| description: __PKG_DESCRIPTION || 'A DIY LLM interface', | |
| license: __PKG_LICENSE || 'MIT', | |
| environment: process.env.NODE_ENV || 'development', | |
| gitInfo, | |
| timestamp: new Date().toISOString(), | |
| runtimeInfo: { | |
| nodeVersion: process.version || 'unknown', | |
| }, | |
| dependencies: { | |
| production: formatDependencies(__PKG_DEPENDENCIES, 'production'), | |
| development: formatDependencies(__PKG_DEV_DEPENDENCIES, 'development'), | |
| peer: formatDependencies(__PKG_PEER_DEPENDENCIES, 'peer'), | |
| optional: formatDependencies(__PKG_OPTIONAL_DEPENDENCIES, 'optional'), | |
| }, | |
| }; | |
| }; | |
| export const loader: LoaderFunction = async ({ request: _request }) => { | |
| try { | |
| return json(getAppResponse()); | |
| } catch (error) { | |
| console.error('Failed to get webapp info:', error); | |
| return json( | |
| { | |
| name: 'bolt.diy', | |
| version: '0.0.0', | |
| description: 'Error fetching app info', | |
| license: 'MIT', | |
| environment: 'error', | |
| gitInfo: { | |
| commitHash: 'error', | |
| branch: 'unknown', | |
| commitTime: 'unknown', | |
| author: 'unknown', | |
| email: 'unknown', | |
| remoteUrl: 'unknown', | |
| repoName: 'unknown', | |
| }, | |
| timestamp: new Date().toISOString(), | |
| runtimeInfo: { nodeVersion: 'unknown' }, | |
| dependencies: { | |
| production: [], | |
| development: [], | |
| peer: [], | |
| optional: [], | |
| }, | |
| }, | |
| { status: 500 }, | |
| ); | |
| } | |
| }; | |
| export const action = async ({ request: _request }: ActionFunctionArgs) => { | |
| try { | |
| return json(getAppResponse()); | |
| } catch (error) { | |
| console.error('Failed to get webapp info:', error); | |
| return json( | |
| { | |
| name: 'bolt.diy', | |
| version: '0.0.0', | |
| description: 'Error fetching app info', | |
| license: 'MIT', | |
| environment: 'error', | |
| gitInfo: { | |
| commitHash: 'error', | |
| branch: 'unknown', | |
| commitTime: 'unknown', | |
| author: 'unknown', | |
| email: 'unknown', | |
| remoteUrl: 'unknown', | |
| repoName: 'unknown', | |
| }, | |
| timestamp: new Date().toISOString(), | |
| runtimeInfo: { nodeVersion: 'unknown' }, | |
| dependencies: { | |
| production: [], | |
| development: [], | |
| peer: [], | |
| optional: [], | |
| }, | |
| }, | |
| { status: 500 }, | |
| ); | |
| } | |
| }; | |