mirror of
https://github.com/lana-k/sqliteviz.git
synced 2025-12-06 18:18:53 +08:00
Compare commits
7 Commits
1a9d1b308b
...
0.23.2
| 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",
|
||||
"version": "0.23.0",
|
||||
"version": "0.23.1",
|
||||
"lockfileVersion": 2,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "sqliteviz",
|
||||
"version": "0.23.0",
|
||||
"version": "0.23.1",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"codemirror": "^5.57.0",
|
||||
@@ -15,7 +15,7 @@
|
||||
"html2canvas": "^1.1.4",
|
||||
"jquery": "^3.6.0",
|
||||
"nanoid": "^3.1.12",
|
||||
"papaparse": "^5.3.1",
|
||||
"papaparse": "^5.4.1",
|
||||
"pivottable": "^2.23.0",
|
||||
"plotly.js": "^1.58.4",
|
||||
"promise-worker": "^2.0.1",
|
||||
@@ -16381,9 +16381,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/papaparse": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz",
|
||||
"integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw=="
|
||||
"version": "5.4.1",
|
||||
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
|
||||
"integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
|
||||
},
|
||||
"node_modules/parallel-transform": {
|
||||
"version": "1.2.0",
|
||||
@@ -38855,9 +38855,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"papaparse": {
|
||||
"version": "5.3.2",
|
||||
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.3.2.tgz",
|
||||
"integrity": "sha512-6dNZu0Ki+gyV0eBsFKJhYr+MdQYAzFUGlBMNj3GNrmHxmz1lfRa24CjFObPXtjcetlOv5Ad299MhIK0znp3afw=="
|
||||
"version": "5.4.1",
|
||||
"resolved": "https://registry.npmjs.org/papaparse/-/papaparse-5.4.1.tgz",
|
||||
"integrity": "sha512-HipMsgJkZu8br23pW15uvo6sib6wne/4woLZPlFf3rpDyMe9ywEXUsuD7+6K9PRkJlVT51j/sCOYDKGGS3ZJrw=="
|
||||
},
|
||||
"parallel-transform": {
|
||||
"version": "1.2.0",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "sqliteviz",
|
||||
"version": "0.23.0",
|
||||
"version": "0.23.2",
|
||||
"license": "Apache-2.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
@@ -16,7 +16,7 @@
|
||||
"html2canvas": "^1.1.4",
|
||||
"jquery": "^3.6.0",
|
||||
"nanoid": "^3.1.12",
|
||||
"papaparse": "^5.3.1",
|
||||
"papaparse": "^5.4.1",
|
||||
"pivottable": "^2.23.0",
|
||||
"plotly.js": "^1.58.4",
|
||||
"promise-worker": "^2.0.1",
|
||||
|
||||
@@ -73,21 +73,26 @@ export default {
|
||||
comments: false,
|
||||
step: undefined,
|
||||
complete: results => {
|
||||
const res = {
|
||||
data: this.getResult(results),
|
||||
delimiter: results.meta.delimiter,
|
||||
hasErrors: false,
|
||||
rowCount: results.data.length
|
||||
let res
|
||||
try {
|
||||
res = {
|
||||
data: this.getResult(results),
|
||||
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)
|
||||
},
|
||||
error: (error, file) => {
|
||||
error: error => {
|
||||
reject(error)
|
||||
},
|
||||
download: false,
|
||||
|
||||
@@ -36,9 +36,11 @@ export default {
|
||||
state.currentTabId = state.tabs[index - 1].id
|
||||
} else {
|
||||
state.currentTabId = null
|
||||
state.currentTab = null
|
||||
state.untitledLastIndex = 0
|
||||
}
|
||||
state.currentTab = state.currentTabId
|
||||
? state.tabs.find(tab => tab.id === state.currentTabId)
|
||||
: null
|
||||
}
|
||||
state.tabs.splice(index, 1)
|
||||
},
|
||||
|
||||
@@ -18,6 +18,7 @@
|
||||
import fu from '@/lib/utils/fileIo'
|
||||
import database from '@/lib/database'
|
||||
import Logs from '@/components/Logs'
|
||||
import events from '@/lib/utils/events'
|
||||
|
||||
export default {
|
||||
name: 'LoadView',
|
||||
@@ -46,6 +47,14 @@ export default {
|
||||
maximize
|
||||
} = 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)
|
||||
const inquiries = await this.loadInquiries(inquiryUrl, inquiryIds)
|
||||
if (inquiries && inquiries.length > 0) {
|
||||
|
||||
@@ -116,6 +116,33 @@ describe('csv.js', () => {
|
||||
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', () => {
|
||||
const resultSet = {
|
||||
columns: ['id', 'name'],
|
||||
|
||||
@@ -176,13 +176,15 @@ describe('mutations', () => {
|
||||
|
||||
const state = {
|
||||
tabs: [tab1, tab2],
|
||||
currentTabId: 1
|
||||
currentTabId: 1,
|
||||
currentTab: tab1
|
||||
}
|
||||
|
||||
deleteTab(state, tab1)
|
||||
expect(state.tabs).to.have.lengthOf(1)
|
||||
expect(state.tabs[0].id).to.equal(2)
|
||||
expect(state.currentTabId).to.equal(2)
|
||||
expect(state.currentTab).to.eql(tab2)
|
||||
})
|
||||
|
||||
it('deleteTab - opened, last', () => {
|
||||
@@ -208,13 +210,15 @@ describe('mutations', () => {
|
||||
|
||||
const state = {
|
||||
tabs: [tab1, tab2],
|
||||
currentTabId: 2
|
||||
currentTabId: 2,
|
||||
currentTab: tab2
|
||||
}
|
||||
|
||||
deleteTab(state, tab2)
|
||||
expect(state.tabs).to.have.lengthOf(1)
|
||||
expect(state.tabs[0].id).to.equal(1)
|
||||
expect(state.currentTabId).to.equal(1)
|
||||
expect(state.currentTab).to.eql(tab1)
|
||||
})
|
||||
|
||||
it('deleteTab - opened, in the middle', () => {
|
||||
@@ -250,7 +254,8 @@ describe('mutations', () => {
|
||||
|
||||
const state = {
|
||||
tabs: [tab1, tab2, tab3],
|
||||
currentTabId: 2
|
||||
currentTabId: 2,
|
||||
currentTab: tab2
|
||||
}
|
||||
|
||||
deleteTab(state, tab2)
|
||||
@@ -258,6 +263,7 @@ describe('mutations', () => {
|
||||
expect(state.tabs[0].id).to.equal(1)
|
||||
expect(state.tabs[1].id).to.equal(3)
|
||||
expect(state.currentTabId).to.equal(3)
|
||||
expect(state.currentTab).to.eql(tab3)
|
||||
})
|
||||
|
||||
it('deleteTab - opened, single', () => {
|
||||
@@ -273,12 +279,14 @@ describe('mutations', () => {
|
||||
|
||||
const state = {
|
||||
tabs: [tab1],
|
||||
currentTabId: 1
|
||||
currentTabId: 1,
|
||||
currentTab: tab1
|
||||
}
|
||||
|
||||
deleteTab(state, tab1)
|
||||
expect(state.tabs).to.have.lengthOf(0)
|
||||
expect(state.currentTabId).to.equal(null)
|
||||
expect(state.currentTab).to.equal(null)
|
||||
})
|
||||
|
||||
it('setCurrentTabId', () => {
|
||||
|
||||
Reference in New Issue
Block a user