brainy/dist/setup.js
David Snelling f8c45f2d8d Initial commit: Brainy - Multi-Dimensional AI Database
Open source vector database with HNSW indexing, graph relationships,
and metadata facets. Features CLI with professional augmentation registry
integration for discovering extensions and capabilities.
2025-08-18 17:35:06 -07:00

46 lines
No EOL
1.9 KiB
JavaScript

/**
* CRITICAL: This file is imported for its side effects to patch the environment
* for Node.js compatibility before any other library code runs.
*
* It ensures that by the time Transformers.js/ONNX Runtime is imported by any other
* module, the necessary compatibility fixes for the current Node.js
* environment are already in place.
*
* This file MUST be imported as the first import in unified.ts to prevent
* race conditions with library initialization. Failure to do so may
* result in errors like "TextEncoder is not a constructor" when the package
* is used in Node.js environments.
*
* The package.json file marks this file as having side effects to prevent
* tree-shaking by bundlers, ensuring the patch is always applied.
*/
// Get the appropriate global object for the current environment
const globalObj = (() => {
if (typeof globalThis !== 'undefined')
return globalThis;
if (typeof global !== 'undefined')
return global;
if (typeof self !== 'undefined')
return self;
return null; // No global object available
})();
// Define TextEncoder and TextDecoder globally to make sure they're available
// Now works across all environments: Node.js, serverless, and other server environments
if (globalObj) {
if (!globalObj.TextEncoder) {
globalObj.TextEncoder = TextEncoder;
}
if (!globalObj.TextDecoder) {
globalObj.TextDecoder = TextDecoder;
}
// Create special global constructors for library compatibility
;
globalObj.__TextEncoder__ = TextEncoder;
globalObj.__TextDecoder__ = TextDecoder;
}
// Also import normally for ES modules environments
import { applyTensorFlowPatch } from './utils/textEncoding.js';
// Apply the TextEncoder/TextDecoder compatibility patch
applyTensorFlowPatch();
console.log('Applied TextEncoder/TextDecoder patch via ES modules in setup.ts');
//# sourceMappingURL=setup.js.map