1
0
mirror of https://github.com/lana-k/sqliteviz.git synced 2025-12-06 18:18:53 +08:00

small refactor

This commit is contained in:
lana-k
2020-11-25 22:04:11 +01:00
parent 3b43fcddb4
commit a1a330986d
3 changed files with 40 additions and 28 deletions

View File

@@ -23,7 +23,13 @@ export default {
name: 'DbUpload', name: 'DbUpload',
methods: { methods: {
loadDb () { loadDb () {
this.$db.loadDb(this.$refs.file.files[0]) return this.$db.loadDb(this.$refs.file.files[0])
.then((schema) => {
this.$store.commit('saveSchema', schema)
if (this.$route.path !== '/editor') {
this.$router.push('/editor')
}
})
}, },
dragover (event) { dragover (event) {
event.preventDefault() event.preventDefault()
@@ -42,9 +48,11 @@ export default {
event.preventDefault() event.preventDefault()
this.$refs.file.files = event.dataTransfer.files this.$refs.file.files = event.dataTransfer.files
this.loadDb() this.loadDb()
// Clean up .then(() => {
event.currentTarget.classList.add('bg-gray-100') // Clean up
event.currentTarget.classList.remove('bg-green-300') event.currentTarget.classList.add('bg-gray-100')
event.currentTarget.classList.remove('bg-green-300')
})
} }
} }
} }

View File

@@ -76,6 +76,9 @@ export default {
methods: { methods: {
changeDb () { changeDb () {
this.$db.loadDb(this.$refs.dbfile.files[0]) this.$db.loadDb(this.$refs.dbfile.files[0])
.then((schema) => {
this.$store.commit('saveSchema', schema)
})
} }
} }
} }

View File

@@ -1,35 +1,36 @@
import store from '@/store' import store from '@/store'
import router from '@/router'
const worker = new Worker('js/worker.sql-wasm.js') const worker = new Worker('js/worker.sql-wasm.js')
export default { export default {
loadDb (file) { loadDb (file) {
const dbName = file.name return new Promise((resolve, reject) => {
store.commit('saveDbName', dbName) const dbName = file.name
const f = file store.commit('saveDbName', dbName)
const r = new FileReader() const f = file
r.onload = () => { const r = new FileReader()
worker.onmessage = () => { r.onload = () => {
const getSchemaSql = ` // on 'action: open' completed
SELECT name, sql worker.onmessage = () => {
FROM sqlite_master const getSchemaSql = `
WHERE type='table' AND name NOT LIKE 'sqlite_%';` SELECT name, sql
worker.onmessage = event => { FROM sqlite_master
store.commit('saveSchema', event.data.results[0].values) WHERE type='table' AND name NOT LIKE 'sqlite_%';`
if (router.currentRoute.path !== '/editor') {
router.push('/editor') // on 'action: exec' completed
worker.onmessage = event => {
resolve(event.data.results[0].values)
} }
worker.postMessage({ action: 'exec', sql: getSchemaSql })
}
try {
worker.postMessage({ action: 'open', buffer: r.result }, [r.result])
} catch (exception) {
worker.postMessage({ action: 'open', buffer: r.result })
} }
worker.postMessage({ action: 'exec', sql: getSchemaSql })
} }
store.commit('saveDbFile', r.result) r.readAsArrayBuffer(f)
try { })
worker.postMessage({ action: 'open', buffer: r.result }, [r.result])
} catch (exception) {
worker.postMessage({ action: 'open', buffer: r.result })
}
}
r.readAsArrayBuffer(f)
}, },
execute (commands) { execute (commands) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {