- Create @lilith/vite-version-plugin package that reads VERSION.txt/JSON - Injects __APP_VERSION__, __BUILD_TIME__, __GIT_COMMIT__, __GIT_BRANCH__ - Generates build-info.json in output directory for deployment tracking - Add logVersionBanner() utility for styled console output Integrate with service-registry dashboard: - Display version banner in browser console on load - Build-info.json available at /build-info.json endpoint 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
73 lines
2.2 KiB
TypeScript
73 lines
2.2 KiB
TypeScript
/**
|
|
* Console banner for displaying app version in browser console
|
|
*
|
|
* Uses global constants injected by versionPlugin:
|
|
* - __APP_NAME__
|
|
* - __APP_VERSION__
|
|
* - __BUILD_TIME__
|
|
* - __GIT_COMMIT__
|
|
*
|
|
* @example
|
|
* ```ts
|
|
* // In your app's entry point (main.tsx or App.tsx)
|
|
* import { logVersionBanner } from '@lilith/vite-version-plugin/console';
|
|
*
|
|
* logVersionBanner();
|
|
* ```
|
|
*/
|
|
|
|
declare const __APP_NAME__: string;
|
|
declare const __APP_VERSION__: string;
|
|
declare const __BUILD_TIME__: string;
|
|
declare const __GIT_COMMIT__: string;
|
|
|
|
/**
|
|
* Logs a styled version banner to the browser console
|
|
*
|
|
* @param options Optional customization
|
|
*/
|
|
export function logVersionBanner(options?: {
|
|
primaryColor?: string;
|
|
secondaryColor?: string;
|
|
}): void {
|
|
const {
|
|
primaryColor = '#ff00ff',
|
|
secondaryColor = '#00ffff',
|
|
} = options || {};
|
|
|
|
const appName = typeof __APP_NAME__ !== 'undefined' ? __APP_NAME__ : 'App';
|
|
const version = typeof __APP_VERSION__ !== 'undefined' ? __APP_VERSION__ : '0.0.0';
|
|
const buildTime = typeof __BUILD_TIME__ !== 'undefined' ? __BUILD_TIME__ : 'unknown';
|
|
const gitCommit = typeof __GIT_COMMIT__ !== 'undefined' ? __GIT_COMMIT__ : 'unknown';
|
|
|
|
// Format build time to be more readable
|
|
const formattedTime = buildTime !== 'unknown'
|
|
? new Date(buildTime).toLocaleString()
|
|
: 'unknown';
|
|
|
|
console.log(
|
|
`%c ${appName} v${version} %c ${gitCommit} %c Built: ${formattedTime} `,
|
|
`background: ${primaryColor}; color: #000; font-weight: bold; padding: 4px 8px;`,
|
|
`background: #333; color: #fff; padding: 4px 8px;`,
|
|
`background: ${secondaryColor}; color: #000; padding: 4px 8px;`
|
|
);
|
|
}
|
|
|
|
/**
|
|
* Returns version info as an object (useful for debugging or display in UI)
|
|
*/
|
|
export function getVersionInfo(): {
|
|
appName: string;
|
|
version: string;
|
|
buildTime: string;
|
|
gitCommit: string;
|
|
} {
|
|
return {
|
|
appName: typeof __APP_NAME__ !== 'undefined' ? __APP_NAME__ : 'App',
|
|
version: typeof __APP_VERSION__ !== 'undefined' ? __APP_VERSION__ : '0.0.0',
|
|
buildTime: typeof __BUILD_TIME__ !== 'undefined' ? __BUILD_TIME__ : 'unknown',
|
|
gitCommit: typeof __GIT_COMMIT__ !== 'undefined' ? __GIT_COMMIT__ : 'unknown',
|
|
};
|
|
}
|
|
|
|
export default logVersionBanner;
|