- Introduced `test-fallback-function.js` and `test-fallback-simple.js` to validate `executeInThread` fallback functionality with both named and anonymous compute-intensive functions. - Added `test-tensorflow-textencoder.js` for TensorFlow.js and TextEncoder tests in a Node.js environment. - Created `test-tensorflow-textencoder.html` for browser-based TensorFlow.js and TextEncoder tests. - Implemented cross-environment test support in `cli-package/src/test-tensorflow-textencoder.ts` for CLI functionality. - Enhanced `src/utils/embedding.ts`, `textEncoding.ts`, and `brainy-wrapper.js` to include updated global `TextEncoder` and `TextDecoder` utilities for compatibility and worker improvements. - Standardized and expanded utility methods in `PlatformNode` for broader support, including `isFloat32Array` and `isTypedArray` checks. - Updated Node.js requirement to `>= 24.4.0` across documentation and configuration files for compatibility improvements. This update introduces comprehensive testing for fallback mechanisms, TensorFlow.js, and TextEncoder across multiple environments, ensuring robustness and compatibility.
35 lines
1 KiB
TypeScript
35 lines
1 KiB
TypeScript
/**
|
|
* Utility functions for TensorFlow.js compatibility
|
|
* This module provides utility functions that TensorFlow.js might need
|
|
* and avoids the need to use globalThis.util
|
|
*/
|
|
|
|
// Import the TensorFlowUtilObject interface
|
|
import type {
|
|
TensorFlowUtilObject,
|
|
PlatformNodeObject
|
|
} from '../types/tensorflowTypes.js'
|
|
|
|
// Note: TensorFlow.js platform patch is applied in setup.ts
|
|
// This ensures the global PlatformNode class uses our text encoding utilities
|
|
|
|
/**
|
|
* Check if an array is a Float32Array
|
|
* @param arr - The array to check
|
|
* @returns True if the array is a Float32Array
|
|
*/
|
|
export function isFloat32Array(arr: unknown): boolean {
|
|
return !!(
|
|
arr instanceof Float32Array ||
|
|
(arr && Object.prototype.toString.call(arr) === '[object Float32Array]')
|
|
)
|
|
}
|
|
|
|
/**
|
|
* Check if an array is a TypedArray
|
|
* @param arr - The array to check
|
|
* @returns True if the array is a TypedArray
|
|
*/
|
|
export function isTypedArray(arr: unknown): boolean {
|
|
return !!(ArrayBuffer.isView(arr) && !(arr instanceof DataView))
|
|
}
|