feat: add universal adapters for browser compatibility
- Create universal adapters for cross-platform support (browser/Node/serverless) - Replace Node.js-specific imports with universal implementations - Add OPFS support for browser persistent storage - Maintain same BrainyData interface across all environments - Enable real Brainy usage in browser console UI - Keep package size optimized (no bloat) Universal adapters in /src/universal/: - uuid.ts: Cross-platform UUID generation - crypto.ts: Browser/Node crypto operations - fs.ts: OPFS/FileSystem/Memory storage adapter - path.ts: Universal path operations - events.ts: EventEmitter compatibility layer This enables 'write once, run anywhere' for Brainy while maintaining the exact same API. No breaking changes to existing code.
This commit is contained in:
parent
6e8869ecb7
commit
93804be354
31 changed files with 2120 additions and 2028 deletions
|
|
@ -3,7 +3,7 @@
|
|||
* Main class that provides the vector database functionality
|
||||
*/
|
||||
|
||||
import { v4 as uuidv4 } from 'uuid'
|
||||
import { v4 as uuidv4 } from './universal/uuid.js'
|
||||
import { HNSWIndex } from './hnsw/hnswIndex.js'
|
||||
import {
|
||||
HNSWIndexOptimized,
|
||||
|
|
@ -6071,7 +6071,7 @@ export class BrainyData<T = any> implements BrainyDataInterface<T> {
|
|||
// Configure HNSW with disk-based storage when a storage adapter is provided
|
||||
const hnswConfig = data.hnswIndex.config || {}
|
||||
if (this.storage) {
|
||||
hnswConfig.useDiskBasedIndex = true
|
||||
;(hnswConfig as any).useDiskBasedIndex = true
|
||||
}
|
||||
|
||||
this.index = new HNSWIndexOptimized(
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue