mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-07 18:48:55 +08:00
43 lines
886 B
JavaScript
43 lines
886 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 'reopen':
|
|
return sql.open(sql.export())
|
|
case 'exec':
|
|
return sql.exec(data.sql, data.params)
|
|
case 'import':
|
|
return sql.import(
|
|
data.tabName,
|
|
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)
|
|
})
|