fix: optimize package size and improve test reliability

Major improvements to build process, package optimization, and test infrastructure:

## Package Size Optimization (3.4MB → 2.2MB)
- Remove source maps from npm package (reduce size by 35%)
- Update package.json files field to exclude *.js.map and *.d.ts.map
- Enhanced .npmignore for better exclusion patterns
- Preserve all browser compatibility and universal shims

## Test Infrastructure Fixes
- Increase test timeouts to 120s for TensorFlow operations
- Improve memory management with garbage collection hooks
- Add proper cleanup between tests to prevent file accumulation
- Configure single-fork test execution to reduce memory usage
- Fix test parameter issues in intelligent verb scoring tests

## Bug Fixes
- Fix lock directory creation in FileSystemStorage
- Remove deprecated node-fetch import from api-integration tests
- Fix addVerb() and db.add() parameter usage throughout test suite
- Ensure proper vector dimensions (384) in all test vectors
- Add directory existence checks before lock file operations

## Build & Development
- Update vitest configuration for better concurrency and reliability
- Add comprehensive test cleanup in setup.ts
- Preserve all browser JavaScript functionality and universal compatibility layer

The package now meets size requirements while maintaining full functionality
for both browser and Node.js environments.
This commit is contained in:
David Snelling 2025-08-10 13:52:01 -07:00
parent 3f90f1c511
commit 69c3a1d5a0
7 changed files with 128 additions and 58 deletions

View file

@ -3,7 +3,9 @@
* No direct TensorFlow references - patches are handled internally by Brainy
*/
import { beforeEach } from 'vitest'
import { beforeEach, afterEach, afterAll } from 'vitest'
import { existsSync, rmSync } from 'fs'
import { join } from 'path'
// Define the test utilities type for reuse
type TestUtilsType = {
@ -34,6 +36,37 @@ beforeEach(() => {
if (typeof global !== 'undefined' && global.__ENV__) {
delete global.__ENV__
}
// Clean up test data directory to prevent file accumulation
const testDataDir = join(process.cwd(), 'brainy-data')
if (existsSync(testDataDir)) {
try {
rmSync(testDataDir, { recursive: true, force: true })
} catch (error) {
// Ignore errors during cleanup
}
}
})
// Clean up after each test
afterEach(() => {
// Force garbage collection if available (requires --expose-gc flag)
if (global.gc) {
global.gc()
}
})
// Final cleanup after all tests
afterAll(() => {
// Clean up test data directory
const testDataDir = join(process.cwd(), 'brainy-data')
if (existsSync(testDataDir)) {
try {
rmSync(testDataDir, { recursive: true, force: true })
} catch (error) {
// Ignore errors during cleanup
}
}
})
// Add simple test utilities to both global and globalThis for compatibility