57 lines
2.1 KiB
JavaScript
57 lines
2.1 KiB
JavaScript
|
|
/**
|
||
|
|
* Unified entry point for Brainy
|
||
|
|
* This file exports everything from index.ts
|
||
|
|
* Environment detection is handled here and made available to all components
|
||
|
|
*/
|
||
|
|
// CRITICAL: The TensorFlow.js environment patch is now centralized in setup.ts
|
||
|
|
// We import setup.ts below which applies the necessary patches
|
||
|
|
// CRITICAL: Import setup.js first to ensure TensorFlow.js environment patching
|
||
|
|
// This MUST be the first import to prevent race conditions with TensorFlow.js initialization
|
||
|
|
// Moving or removing this import will cause errors like "TextEncoder is not a constructor"
|
||
|
|
// when the package is used in Node.js environments
|
||
|
|
//
|
||
|
|
// The setup.js file applies a patch that ensures TextEncoder/TextDecoder are properly
|
||
|
|
// available to TensorFlow.js before it initializes its platform detection
|
||
|
|
import './setup.js';
|
||
|
|
// Import environment detection functions
|
||
|
|
import { isBrowser, isNode, isWebWorker, isThreadingAvailable, isThreadingAvailableAsync, areWorkerThreadsAvailable } from './utils/environment.js';
|
||
|
|
// Export environment information with lazy evaluation
|
||
|
|
export const environment = {
|
||
|
|
get isBrowser() {
|
||
|
|
return isBrowser();
|
||
|
|
},
|
||
|
|
get isNode() {
|
||
|
|
return isNode();
|
||
|
|
},
|
||
|
|
get isServerless() {
|
||
|
|
return !isBrowser() && !isNode();
|
||
|
|
},
|
||
|
|
isWebWorker: function () {
|
||
|
|
return isWebWorker();
|
||
|
|
},
|
||
|
|
get isThreadingAvailable() {
|
||
|
|
return isThreadingAvailable();
|
||
|
|
},
|
||
|
|
isThreadingAvailableAsync: function () {
|
||
|
|
return isThreadingAvailableAsync();
|
||
|
|
},
|
||
|
|
areWorkerThreadsAvailable: function () {
|
||
|
|
return areWorkerThreadsAvailable();
|
||
|
|
}
|
||
|
|
};
|
||
|
|
// Make environment information available globally
|
||
|
|
if (typeof globalThis !== 'undefined') {
|
||
|
|
;
|
||
|
|
globalThis.__ENV__ = environment;
|
||
|
|
}
|
||
|
|
// Log the detected environment
|
||
|
|
console.log(`Brainy running in ${environment.isBrowser
|
||
|
|
? 'browser'
|
||
|
|
: environment.isNode
|
||
|
|
? 'Node.js'
|
||
|
|
: 'serverless/unknown'} environment`);
|
||
|
|
// Re-export everything from index.ts
|
||
|
|
export * from './index.js';
|
||
|
|
// Export the TensorFlow patch function for testing and manual use
|
||
|
|
export { applyTensorFlowPatch } from './utils/textEncoding.js';
|
||
|
|
//# sourceMappingURL=unified.js.map
|