1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-07 10:38:54 +08:00
Files
sqliteviz/src/db.worker.js

35 lines
768 B
JavaScript

import registerPromiseWorker from 'promise-worker/register'
import Sql from '@/sql'
const sqlReady = Sql.build()
function processMsg (sql) {
const data = this
switch (data && data.action) {
case 'open':
return sql.open(data.buffer)
case 'exec':
return sql.exec(data.sql, data.params)
case 'import':
return sql.import(data.columns, data.values, data.progressCounterId, postMessage)
case 'export':
return sql.export()
case 'close':
return sql.close()
default:
throw new Error('Invalid action : ' + (data && data.action))
}
}
function onError (error) {
return {
error: error.message
}
}
registerPromiseWorker(data => {
return sqlReady
.then(processMsg.bind(data))
.catch(onError)
})