fix: implement automatic version detection from package.json

- Replace hardcoded version string with dynamic reading from package.json
- Add version caching for performance
- Export getBrainyVersion function from main index
- Ensures version stays automatically synchronized with releases
This commit is contained in:
David Snelling 2025-08-28 16:58:35 -07:00
parent b01a9ea0e3
commit fe7158600a
2 changed files with 23 additions and 3 deletions

View file

@ -50,6 +50,9 @@ export {
getStatistics
}
// Export version utilities
export { getBrainyVersion } from './utils/version.js'
// Export embedding functionality
import {
UniversalSentenceEncoder,

View file

@ -2,15 +2,32 @@
* Version utilities for Brainy
*/
// Package version - this should be updated during the build process
const BRAINY_VERSION = '0.41.0'
import { readFileSync } from 'fs'
import { join, dirname } from 'path'
import { fileURLToPath } from 'url'
// Get package.json path relative to this file
const __filename = fileURLToPath(import.meta.url)
const __dirname = dirname(__filename)
const packageJsonPath = join(__dirname, '../../package.json')
let cachedVersion: string | null = null
/**
* Get the current Brainy package version
* @returns The current version string
*/
export function getBrainyVersion(): string {
return BRAINY_VERSION
if (!cachedVersion) {
try {
const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'))
cachedVersion = packageJson.version
} catch {
// Fallback version if package.json can't be read
cachedVersion = '2.7.1'
}
}
return cachedVersion!
}
/**