brainy/examples/cli-wrapper-example.js
David Snelling 6e0045a6f1 **style(cli): update examples with consistent formatting and clean code**
- Removed extraneous semicolons across `cli-wrapper-example.js` for cleaner, consistent code style.
- Adjusted indentation and spacing for improved readability.
- Updated console statements to be consistent, ensuring uniform logging behavior across the example.

This change aligns the example file with the project's coding standards, improving code clarity and maintainability.
2025-07-15 11:53:42 -07:00

68 lines
1.9 KiB
JavaScript

#!/usr/bin/env node
/**
* Example CLI wrapper for Brainy that properly handles TensorFlow.js initialization
*
* This example demonstrates how to create a CLI tool that uses Brainy
* while ensuring TensorFlow.js is properly initialized in Node.js environments.
*
* Usage:
* node cli-wrapper-example.js
*/
// CRITICAL: Apply the TensorFlow.js patch before any other imports
// This prevents the "TextEncoder is not a constructor" error
try {
// For CommonJS environments
if (typeof require === 'function') {
// First require the setup module to apply the patch
require('../dist/setup.js')
console.log('Applied TensorFlow.js patch via CommonJS require')
}
} catch (error) {
console.warn('Failed to apply TensorFlow.js patch via require:', error)
}
// ES Modules approach - this will be used if the above fails or if using ES modules
import('../dist/setup.js')
.then(() => {
console.log('Applied TensorFlow.js patch via ES modules import')
return import('../dist/unified.js')
})
.then((brainy) => {
// Now it's safe to use Brainy and TensorFlow.js
console.log('Brainy loaded successfully')
// Example: Create a BrainyData instance
const db = new brainy.BrainyData({
name: 'cli-example',
storage: 'memory'
})
// Example: Add some data
db.addItem('Hello world', { id: '1', metadata: { type: 'greeting' } })
.then(() => {
console.log('Added item to database')
// Example: Search for similar items
return db.search('Hello', 1)
})
.then((results) => {
console.log('Search results:', results)
// Clean up
return db.close()
})
.then(() => {
console.log('Database closed')
process.exit(0)
})
.catch((error) => {
console.error('Error in Brainy operations:', error)
process.exit(1)
})
})
.catch((error) => {
console.error('Failed to load Brainy:', error)
process.exit(1)
})