Split into more components

This commit is contained in:
ochafik 2023-03-26 19:29:24 +01:00
commit 0e97a288e1
11 changed files with 276 additions and 160 deletions

View file

@ -31,7 +31,7 @@ export type OpenSCADInvocationResults = {
elapsedMillis: number,
}
export function spawnOpenSCAD({inputs, args, outputPaths}: OpenSCADInvocation): AbortablePromise<OpenSCADInvocationResults> {
export function spawnOpenSCAD(invocation: OpenSCADInvocation): AbortablePromise<OpenSCADInvocationResults> {
var worker: Worker | null;
var rejection: (err: any) => void;
@ -55,7 +55,7 @@ export function spawnOpenSCAD({inputs, args, outputPaths}: OpenSCADInvocation):
resolve(e.data);
terminate();
}
worker.postMessage({inputs, args, outputPaths})
worker.postMessage(invocation)
return () => {
// rejection({error: 'Terminated'});

View file

@ -2,7 +2,7 @@
import OpenSCAD from "../wasm/openscad.js";
import { createEditorFS, getBrowserFSLibrariesMounts, symlinkLibraries } from "../fs/filesystem";
import { createEditorFS, getBrowserFSLibrariesMounts, librariesFolder, symlinkLibraries } from "../fs/filesystem";
import { OpenSCADInvocation, OpenSCADInvocationResults } from "./openscad-runner";
import { zipArchives } from "../fs/zip-archives";
declare var BrowserFS: BrowserFSInterface
@ -33,12 +33,14 @@ addEventListener('message', async (e) => {
console.debug('stderr: ' + text);
mergedOutputs.push({ stderr: text })
},
ENV: {
OPENSCADPATH: '/home'
}
// ENV: {
// OPENSCADPATH: '/home'
// }
});
const fs = await createEditorFS('/home');
// const librariesFolder = '/home/.local/share/OpenSCAD/libraries'
const fs = await createEditorFS();
await symlinkLibraries(allArchiveNames, fs, librariesFolder, '/home');//'/home', '/home');
// https://github.com/emscripten-core/emscripten/issues/10061
const BFS = new BrowserFS.EmscriptenFS(
@ -49,7 +51,7 @@ addEventListener('message', async (e) => {
}, instance.ERRNO_CODES ?? {});
instance.FS.mount(BFS, {root: '/home'}, '/home');
// await symlinkLibraries(allArchiveNames, instance.FS, '/home/libraries', '/home');
//await symlinkLibraries(allArchiveNames, instance.FS, '/home/libraries', '/home');
instance.FS.chdir('/home');
@ -65,7 +67,7 @@ addEventListener('message', async (e) => {
}
}
console.log('Calling main ', args)
console.log('Invoking OpenSCAD from ', workingDir, args)
const start = performance.now();
const exitCode = instance.callMain(args);
const end = performance.now();