Skip to content

Commit 240b5da

Browse files
committed
attempt to recover invalid boostnote.json
1 parent cd0bede commit 240b5da

2 files changed

Lines changed: 46 additions & 3 deletions

File tree

browser/main/lib/dataApi/addStorage.js

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@ const _ = require('lodash')
22
const keygen = require('browser/lib/keygen')
33
const resolveStorageData = require('./resolveStorageData')
44
const resolveStorageNotes = require('./resolveStorageNotes')
5-
5+
const consts = require('browser/lib/consts')
6+
const path = require('path')
7+
const CSON = require('season')
68
/**
79
* @param {Object}
810
* name, path, type
@@ -52,7 +54,26 @@ function addStorage (input) {
5254
localStorage.setItem('storages', JSON.stringify(rawStorages))
5355
return newStorage
5456
})
55-
.then(resolveStorageNotes)
57+
.then(function (storage) {
58+
return resolveStorageNotes(storage)
59+
.then((notes) => {
60+
let unknownCount = 0
61+
notes.forEach((note) => {
62+
if (!storage.folders.some((folder) => note.folder === folder.key)) {
63+
unknownCount++
64+
storage.folders.push({
65+
key: note.folder,
66+
color: consts.FOLDER_COLORS[(unknownCount - 1) % 7],
67+
name: 'Unknown ' + unknownCount
68+
})
69+
}
70+
})
71+
if (unknownCount > 0) {
72+
CSON.writeFileSync(path.join(storage.path, 'boostnote.json'), _.pick(storage, ['folders', 'version']))
73+
}
74+
return notes
75+
})
76+
})
5677
.then(function returnValue (notes) {
5778
return {
5879
storage: newStorage,

browser/main/lib/dataApi/init.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@
22
const _ = require('lodash')
33
const resolveStorageData = require('./resolveStorageData')
44
const resolveStorageNotes = require('./resolveStorageNotes')
5+
const consts = require('browser/lib/consts')
6+
const path = require('path')
7+
const CSON = require('season')
58
/**
69
* @return {Object} all storages and notes
710
* ```
@@ -33,7 +36,26 @@ function init () {
3336

3437
let fetchNotes = function (storages) {
3538
let findNotesFromEachStorage = storages
36-
.map(resolveStorageNotes)
39+
.map((storage) => {
40+
return resolveStorageNotes(storage)
41+
.then((notes) => {
42+
let unknownCount = 0
43+
notes.forEach((note) => {
44+
if (!storage.folders.some((folder) => note.folder === folder.key)) {
45+
unknownCount++
46+
storage.folders.push({
47+
key: note.folder,
48+
color: consts.FOLDER_COLORS[(unknownCount - 1) % 7],
49+
name: 'Unknown ' + unknownCount
50+
})
51+
}
52+
})
53+
if (unknownCount > 0) {
54+
CSON.writeFileSync(path.join(storage.path, 'boostnote.json'), _.pick(storage, ['folders', 'version']))
55+
}
56+
return notes
57+
})
58+
})
3759
return Promise.all(findNotesFromEachStorage)
3860
.then(function concatNoteGroup (noteGroups) {
3961
return noteGroups.reduce(function (sum, group) {

0 commit comments

Comments
 (0)