31 lines
743 B
JavaScript
31 lines
743 B
JavaScript
export default class GCode {
|
|
constructor(configString) {
|
|
this.configString = configString
|
|
}
|
|
|
|
async parse(onProgress) {
|
|
return new Promise((resolve, reject) => {
|
|
const worker = new Worker('../gcode-worker.js')
|
|
|
|
worker.onmessage = (event) => {
|
|
const { type, progress, configObject } = event.data
|
|
|
|
if (type === 'progress') {
|
|
// Report progress to the caller
|
|
if (onProgress) onProgress(progress)
|
|
} else if (type === 'result') {
|
|
resolve(configObject)
|
|
worker.terminate()
|
|
}
|
|
}
|
|
|
|
worker.onerror = (error) => {
|
|
reject(error)
|
|
worker.terminate()
|
|
}
|
|
|
|
worker.postMessage({ configString: this.configString })
|
|
})
|
|
}
|
|
}
|