doesitarm/helpers/scanner/worker.mjs
2022-08-20 21:35:02 -05:00

43 lines
1.1 KiB
JavaScript

import { AppScan } from './scan.mjs'
self.onmessage = ( event ) => {
console.log( 'Worker received message', event )
const { status } = event.data
// https://developer.mozilla.org/en-US/docs/Web/API/Worker/postMessage
// self.postMessage( event )
if ( status === 'start' ) {
// Get Scan Options
const { options } = event.data
// console.log( 'options', options )
const scan = new AppScan({
fileLoader: () => options.file,
// Use self.postMessage as the message callback
messageReceiver: ( details ) => {
self.postMessage( details )
}
})
scan.start()
.then( () => {
self.postMessage( {
status: 'finished',
// Convert App Scan instance to a more primitive Object
// so that it's clonneable for our worker
scan: JSON.parse(JSON.stringify( scan ))
})
})
return
}
self.postMessage( { status: 'finished' } )
return
}