41 lines
1.1 KiB
TypeScript
41 lines
1.1 KiB
TypeScript
|
import { fetch as tfFetch } from '@tensorflow/tfjs-core/dist/util';
|
||
|
import { Environment } from './types';
|
||
|
|
||
|
export function createWorkerEnv(): Environment {
|
||
|
|
||
|
const fetch = tfFetch || function() {
|
||
|
throw new Error('fetch - missing fetch implementation for browser environment')
|
||
|
}
|
||
|
|
||
|
const readFile = function() {
|
||
|
throw new Error('readFile - filesystem not available for browser environment')
|
||
|
}
|
||
|
|
||
|
const createCanvasElement = function() {
|
||
|
const canvas = new OffscreenCanvas(1, 1) as any;
|
||
|
canvas.localName = 'canvas';
|
||
|
canvas.nodeName = 'CANVAS';
|
||
|
canvas.tagName = 'CANVAS';
|
||
|
canvas.nodeType = 1;
|
||
|
canvas.innerHTML = '';
|
||
|
canvas.remove = () => {
|
||
|
console.log('nope');
|
||
|
};
|
||
|
return canvas;
|
||
|
}
|
||
|
|
||
|
const HTMLImageElement = function() {}
|
||
|
const HTMLVideoElement = function() {}
|
||
|
|
||
|
return {
|
||
|
Canvas: OffscreenCanvas as any,
|
||
|
CanvasRenderingContext2D: OffscreenCanvasRenderingContext2D as any,
|
||
|
Image: HTMLImageElement as any,
|
||
|
ImageData: ImageData,
|
||
|
Video: HTMLVideoElement as any,
|
||
|
createCanvasElement: createCanvasElement,
|
||
|
createImageElement: () => document.createElement('img'),
|
||
|
fetch,
|
||
|
readFile
|
||
|
}
|
||
|
}
|