mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-07 02:28:54 +08:00
Compare commits
7 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8aac7af481 | ||
|
|
6982204e68 | ||
|
|
41e0ae7332 | ||
|
|
ebb5af4f10 | ||
|
|
ae26358b25 | ||
|
|
d9ee702b8e | ||
|
|
446045fa55 |
18
package-lock.json
generated
18
package-lock.json
generated
@@ -1,12 +1,12 @@
|
|||||||
{
|
{
|
||||||
"name": "sqliteviz",
|
"name": "sqliteviz",
|
||||||
"version": "0.23.0",
|
"version": "0.23.1",
|
||||||
"lockfileVersion": 2,
|
"lockfileVersion": 2,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "sqliteviz",
|
"name": "sqliteviz",
|
||||||
"version": "0.23.0",
|
"version": "0.23.1",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"codemirror": "^5.57.0",
|
"codemirror": "^5.57.0",
|
||||||
@@ -15,7 +15,7 @@
|
|||||||
"html2canvas": "^1.1.4",
|
"html2canvas": "^1.1.4",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"nanoid": "^3.1.12",
|
"nanoid": "^3.1.12",
|
||||||
"papaparse": "^5.3.1",
|
"papaparse": "^5.4.1",
|
||||||
"pivottable": "^2.23.0",
|
"pivottable": "^2.23.0",
|
||||||
"plotly.js": "^1.58.4",
|
"plotly.js": "^1.58.4",
|
||||||
"promise-worker": "^2.0.1",
|
"promise-worker": "^2.0.1",
|
||||||
@@ -16381,9 +16381,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node_modules/papaparse": {
|
"node_modules/papaparse": {
|
||||||
"version": "5.3.2",
|
"version": "5.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
|
||||||
"integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw=="
|
"integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
|
||||||
},
|
},
|
||||||
"node_modules/parallel-transform": {
|
"node_modules/parallel-transform": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
@@ -38855,9 +38855,9 @@
|
|||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"papaparse": {
|
"papaparse": {
|
||||||
"version": "5.3.2",
|
"version": "5.4.1",
|
||||||
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz",
|
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
|
||||||
"integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw=="
|
"integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
|
||||||
},
|
},
|
||||||
"parallel-transform": {
|
"parallel-transform": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "sqliteviz",
|
"name": "sqliteviz",
|
||||||
"version": "0.23.0",
|
"version": "0.23.2",
|
||||||
"license": "Apache-2.0",
|
"license": "Apache-2.0",
|
||||||
"private": true,
|
"private": true,
|
||||||
"scripts": {
|
"scripts": {
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
"html2canvas": "^1.1.4",
|
"html2canvas": "^1.1.4",
|
||||||
"jquery": "^3.6.0",
|
"jquery": "^3.6.0",
|
||||||
"nanoid": "^3.1.12",
|
"nanoid": "^3.1.12",
|
||||||
"papaparse": "^5.3.1",
|
"papaparse": "^5.4.1",
|
||||||
"pivottable": "^2.23.0",
|
"pivottable": "^2.23.0",
|
||||||
"plotly.js": "^1.58.4",
|
"plotly.js": "^1.58.4",
|
||||||
"promise-worker": "^2.0.1",
|
"promise-worker": "^2.0.1",
|
||||||
|
|||||||
@@ -73,21 +73,26 @@ export default {
|
|||||||
comments: false,
|
comments: false,
|
||||||
step: undefined,
|
step: undefined,
|
||||||
complete: results => {
|
complete: results => {
|
||||||
const res = {
|
let res
|
||||||
data: this.getResult(results),
|
try {
|
||||||
delimiter: results.meta.delimiter,
|
res = {
|
||||||
hasErrors: false,
|
data: this.getResult(results),
|
||||||
rowCount: results.data.length
|
delimiter: results.meta.delimiter,
|
||||||
|
hasErrors: false,
|
||||||
|
rowCount: results.data.length
|
||||||
|
}
|
||||||
|
res.messages = results.errors.map(msg => {
|
||||||
|
msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'
|
||||||
|
if (msg.type === 'error') res.hasErrors = true
|
||||||
|
msg.hint = hintsByCode[msg.code]
|
||||||
|
return msg
|
||||||
|
})
|
||||||
|
} catch (error) {
|
||||||
|
reject(error)
|
||||||
}
|
}
|
||||||
res.messages = results.errors.map(msg => {
|
|
||||||
msg.type = msg.code === 'UndetectableDelimiter' ? 'info' : 'error'
|
|
||||||
if (msg.type === 'error') res.hasErrors = true
|
|
||||||
msg.hint = hintsByCode[msg.code]
|
|
||||||
return msg
|
|
||||||
})
|
|
||||||
resolve(res)
|
resolve(res)
|
||||||
},
|
},
|
||||||
error: (error, file) => {
|
error: error => {
|
||||||
reject(error)
|
reject(error)
|
||||||
},
|
},
|
||||||
download: false,
|
download: false,
|
||||||
|
|||||||
@@ -36,9 +36,11 @@ export default {
|
|||||||
state.currentTabId = state.tabs[index - 1].id
|
state.currentTabId = state.tabs[index - 1].id
|
||||||
} else {
|
} else {
|
||||||
state.currentTabId = null
|
state.currentTabId = null
|
||||||
state.currentTab = null
|
|
||||||
state.untitledLastIndex = 0
|
state.untitledLastIndex = 0
|
||||||
}
|
}
|
||||||
|
state.currentTab = state.currentTabId
|
||||||
|
? state.tabs.find(tab => tab.id === state.currentTabId)
|
||||||
|
: null
|
||||||
}
|
}
|
||||||
state.tabs.splice(index, 1)
|
state.tabs.splice(index, 1)
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -18,6 +18,7 @@
|
|||||||
import fu from '@/lib/utils/fileIo'
|
import fu from '@/lib/utils/fileIo'
|
||||||
import database from '@/lib/database'
|
import database from '@/lib/database'
|
||||||
import Logs from '@/components/Logs'
|
import Logs from '@/components/Logs'
|
||||||
|
import events from '@/lib/utils/events'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'LoadView',
|
name: 'LoadView',
|
||||||
@@ -46,6 +47,14 @@ export default {
|
|||||||
maximize
|
maximize
|
||||||
} = this.$route.query
|
} = this.$route.query
|
||||||
|
|
||||||
|
events.send('share.load', null, {
|
||||||
|
has_data_url: !!dataUrl,
|
||||||
|
data_format: dataFormat,
|
||||||
|
has_inquiry_url: !!inquiryUrl,
|
||||||
|
inquiry_id_count: (inquiryIds || []).length,
|
||||||
|
maximize
|
||||||
|
})
|
||||||
|
|
||||||
await this.loadData(dataUrl, dataFormat)
|
await this.loadData(dataUrl, dataFormat)
|
||||||
const inquiries = await this.loadInquiries(inquiryUrl, inquiryIds)
|
const inquiries = await this.loadInquiries(inquiryUrl, inquiryIds)
|
||||||
if (inquiries && inquiries.length > 0) {
|
if (inquiries && inquiries.length > 0) {
|
||||||
|
|||||||
@@ -116,6 +116,33 @@ describe('csv.js', () => {
|
|||||||
await expect(csv.parse(file)).to.be.rejectedWith(err)
|
await expect(csv.parse(file)).to.be.rejectedWith(err)
|
||||||
})
|
})
|
||||||
|
|
||||||
|
it('parse rejects when getResult failed', async () => {
|
||||||
|
let err
|
||||||
|
try {
|
||||||
|
new Date('invalid date').toISOString()
|
||||||
|
} catch (e) {
|
||||||
|
err = e // get error message, it's different depending on browser
|
||||||
|
}
|
||||||
|
sinon.stub(Papa, 'parse').callsFake((file, config) => {
|
||||||
|
config.complete({
|
||||||
|
data: [
|
||||||
|
[1, new Date('invalid date')],
|
||||||
|
[2, new Date('2023-05-05T15:30:00Z')]
|
||||||
|
],
|
||||||
|
errors: [],
|
||||||
|
meta: {
|
||||||
|
delimiter: ',',
|
||||||
|
linebreak: '\n',
|
||||||
|
aborted: false,
|
||||||
|
truncated: true
|
||||||
|
}
|
||||||
|
})
|
||||||
|
})
|
||||||
|
|
||||||
|
const file = {}
|
||||||
|
await expect(csv.parse(file)).to.be.rejectedWith(err.message)
|
||||||
|
})
|
||||||
|
|
||||||
it('prepareForExport', () => {
|
it('prepareForExport', () => {
|
||||||
const resultSet = {
|
const resultSet = {
|
||||||
columns: ['id', 'name'],
|
columns: ['id', 'name'],
|
||||||
|
|||||||
@@ -176,13 +176,15 @@ describe('mutations', () => {
|
|||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
tabs: [tab1, tab2],
|
tabs: [tab1, tab2],
|
||||||
currentTabId: 1
|
currentTabId: 1,
|
||||||
|
currentTab: tab1
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTab(state, tab1)
|
deleteTab(state, tab1)
|
||||||
expect(state.tabs).to.have.lengthOf(1)
|
expect(state.tabs).to.have.lengthOf(1)
|
||||||
expect(state.tabs[0].id).to.equal(2)
|
expect(state.tabs[0].id).to.equal(2)
|
||||||
expect(state.currentTabId).to.equal(2)
|
expect(state.currentTabId).to.equal(2)
|
||||||
|
expect(state.currentTab).to.eql(tab2)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('deleteTab - opened, last', () => {
|
it('deleteTab - opened, last', () => {
|
||||||
@@ -208,13 +210,15 @@ describe('mutations', () => {
|
|||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
tabs: [tab1, tab2],
|
tabs: [tab1, tab2],
|
||||||
currentTabId: 2
|
currentTabId: 2,
|
||||||
|
currentTab: tab2
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTab(state, tab2)
|
deleteTab(state, tab2)
|
||||||
expect(state.tabs).to.have.lengthOf(1)
|
expect(state.tabs).to.have.lengthOf(1)
|
||||||
expect(state.tabs[0].id).to.equal(1)
|
expect(state.tabs[0].id).to.equal(1)
|
||||||
expect(state.currentTabId).to.equal(1)
|
expect(state.currentTabId).to.equal(1)
|
||||||
|
expect(state.currentTab).to.eql(tab1)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('deleteTab - opened, in the middle', () => {
|
it('deleteTab - opened, in the middle', () => {
|
||||||
@@ -250,7 +254,8 @@ describe('mutations', () => {
|
|||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
tabs: [tab1, tab2, tab3],
|
tabs: [tab1, tab2, tab3],
|
||||||
currentTabId: 2
|
currentTabId: 2,
|
||||||
|
currentTab: tab2
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTab(state, tab2)
|
deleteTab(state, tab2)
|
||||||
@@ -258,6 +263,7 @@ describe('mutations', () => {
|
|||||||
expect(state.tabs[0].id).to.equal(1)
|
expect(state.tabs[0].id).to.equal(1)
|
||||||
expect(state.tabs[1].id).to.equal(3)
|
expect(state.tabs[1].id).to.equal(3)
|
||||||
expect(state.currentTabId).to.equal(3)
|
expect(state.currentTabId).to.equal(3)
|
||||||
|
expect(state.currentTab).to.eql(tab3)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('deleteTab - opened, single', () => {
|
it('deleteTab - opened, single', () => {
|
||||||
@@ -273,12 +279,14 @@ describe('mutations', () => {
|
|||||||
|
|
||||||
const state = {
|
const state = {
|
||||||
tabs: [tab1],
|
tabs: [tab1],
|
||||||
currentTabId: 1
|
currentTabId: 1,
|
||||||
|
currentTab: tab1
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteTab(state, tab1)
|
deleteTab(state, tab1)
|
||||||
expect(state.tabs).to.have.lengthOf(0)
|
expect(state.tabs).to.have.lengthOf(0)
|
||||||
expect(state.currentTabId).to.equal(null)
|
expect(state.currentTabId).to.equal(null)
|
||||||
|
expect(state.currentTab).to.equal(null)
|
||||||
})
|
})
|
||||||
|
|
||||||
it('setCurrentTabId', () => {
|
it('setCurrentTabId', () => {
|
||||||
|
|||||||
Reference in New Issue
Block a user