mirror of
https://github.com/ThatGuySam/doesitarm.git
synced 2026-05-18 06:44:46 -07:00
43 lines
1.1 KiB
JavaScript
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
|
|
}
|