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:
@@ -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')
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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)
|
||||||
|
})
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -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) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user