Spaces:
Running
Running
| // Browser shims for Node.js modules used by sentencepiece.js | |
| // These shims allow the sentencepiece module to load in the browser. | |
| // The actual fs operations are not used when loading from base64. | |
| // Shim for 'fs' module | |
| export function readFileSync(path) { | |
| throw new Error(`fs.readFileSync not available in browser. Tried to read: ${path}`); | |
| } | |
| export function existsSync(path) { | |
| return false; | |
| } | |
| export const promises = { | |
| readFile: (path) => Promise.reject(new Error(`fs.promises.readFile not available in browser`)) | |
| }; | |
| // Default export for `import * as fs from 'fs'` | |
| export default { | |
| readFileSync, | |
| existsSync, | |
| promises | |
| }; | |
| // Buffer shim - re-export what sentencepiece needs | |
| // `import { Buffer as Buffer$1 } from 'buffer'` | |
| export const Buffer = globalThis.Buffer || { | |
| from: (data, encoding) => { | |
| if (encoding === 'base64') { | |
| const binary = atob(data); | |
| const bytes = new Uint8Array(binary.length); | |
| for (let i = 0; i < binary.length; i++) { | |
| bytes[i] = binary.charCodeAt(i); | |
| } | |
| return bytes; | |
| } | |
| if (typeof data === 'string') { | |
| return new TextEncoder().encode(data); | |
| } | |
| return new Uint8Array(data); | |
| }, | |
| isBuffer: (obj) => obj instanceof Uint8Array, | |
| alloc: (size) => new Uint8Array(size), | |
| allocUnsafe: (size) => new Uint8Array(size), | |
| concat: (buffers, totalLength) => { | |
| if (totalLength === undefined) { | |
| totalLength = buffers.reduce((sum, buf) => sum + buf.length, 0); | |
| } | |
| const result = new Uint8Array(totalLength); | |
| let offset = 0; | |
| for (const buf of buffers) { | |
| result.set(buf, offset); | |
| offset += buf.length; | |
| } | |
| return result; | |
| } | |
| }; | |
| // Named export for Buffer$1 | |
| export { Buffer as Buffer$1 }; | |