1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-15 02:36:36 +00:00

fixed eslint error & integrated with prettier as well as formatted the whole codebase (#3450)

This commit is contained in:
Nguyen Viet Hung
2020-02-05 13:28:27 +13:00
committed by GitHub
parent 051ce9e208
commit 592aca1539
186 changed files with 9233 additions and 5565 deletions

View File

@@ -4,86 +4,91 @@ const keygen = require('browser/lib/keygen')
const _ = require('lodash')
const CSON = require('@rokt33r/season')
function migrateFromV5Storage (storagePath) {
function migrateFromV5Storage(storagePath) {
var boostnoteJSONPath = path.join(storagePath, 'boostnote.json')
return Promise.resolve()
.then(function readBoostnoteJSON () {
.then(function readBoostnoteJSON() {
return sander.readFile(boostnoteJSONPath, {
encoding: 'utf-8'
})
})
.then(function verifyVersion (rawData) {
.then(function verifyVersion(rawData) {
var boostnoteJSONData = JSON.parse(rawData)
if (boostnoteJSONData.version === '1.0') throw new Error('Target storage seems to be transformed already.')
if (!_.isArray(boostnoteJSONData.folders)) throw new Error('the value of folders is not an array.')
if (boostnoteJSONData.version === '1.0')
throw new Error('Target storage seems to be transformed already.')
if (!_.isArray(boostnoteJSONData.folders))
throw new Error('the value of folders is not an array.')
return boostnoteJSONData
})
.then(function setVersion (boostnoteJSONData) {
.then(function setVersion(boostnoteJSONData) {
boostnoteJSONData.version = '1.0'
return sander.writeFile(boostnoteJSONPath, JSON.stringify(boostnoteJSONData))
return sander
.writeFile(boostnoteJSONPath, JSON.stringify(boostnoteJSONData))
.then(() => boostnoteJSONData)
})
.then(function fetchNotes (boostnoteJSONData) {
var fetchNotesFromEachFolder = boostnoteJSONData.folders
.map(function (folder) {
const folderDataJSONPath = path.join(storagePath, folder.key, 'data.json')
return sander
.readFile(folderDataJSONPath, {
encoding: 'utf-8'
.then(function fetchNotes(boostnoteJSONData) {
var fetchNotesFromEachFolder = boostnoteJSONData.folders.map(function(
folder
) {
const folderDataJSONPath = path.join(
storagePath,
folder.key,
'data.json'
)
return sander
.readFile(folderDataJSONPath, {
encoding: 'utf-8'
})
.then(function(rawData) {
var data = JSON.parse(rawData)
if (!_.isArray(data.notes))
throw new Error('value of notes is not an array.')
return data.notes.map(function setFolderToNote(note) {
note.folder = folder.key
return note
})
.then(function (rawData) {
var data = JSON.parse(rawData)
if (!_.isArray(data.notes)) throw new Error('value of notes is not an array.')
return data.notes
.map(function setFolderToNote (note) {
note.folder = folder.key
return note
})
})
.catch(function failedToReadDataJSON (err) {
console.warn('Failed to fetch notes from ', folderDataJSONPath, err)
return []
})
})
})
.catch(function failedToReadDataJSON(err) {
console.warn('Failed to fetch notes from ', folderDataJSONPath, err)
return []
})
})
return Promise.all(fetchNotesFromEachFolder)
.then(function flatten (folderNotes) {
return folderNotes
.reduce(function concatNotes (sum, notes) {
return sum.concat(notes)
}, [])
.then(function flatten(folderNotes) {
return folderNotes.reduce(function concatNotes(sum, notes) {
return sum.concat(notes)
}, [])
})
.then(function saveNotes (notes) {
notes.forEach(function renewKey (note) {
.then(function saveNotes(notes) {
notes.forEach(function renewKey(note) {
var newKey = keygen()
while (notes.some((_note) => _note.key === newKey)) {
while (notes.some(_note => _note.key === newKey)) {
newKey = keygen()
}
note.key = newKey
})
const noteDirPath = path.join(storagePath, 'notes')
notes
.map(function saveNote (note) {
CSON.writeFileSync(path.join(noteDirPath, note.key) + '.cson', note)
})
notes.map(function saveNote(note) {
CSON.writeFileSync(path.join(noteDirPath, note.key) + '.cson', note)
})
return true
})
.then(function deleteFolderDir (check) {
.then(function deleteFolderDir(check) {
if (check) {
boostnoteJSONData.folders.forEach((folder) => {
boostnoteJSONData.folders.forEach(folder => {
sander.rimrafSync(path.join(storagePath, folder.key))
})
}
return check
})
})
.catch(function handleError (err) {
.catch(function handleError(err) {
console.warn(err)
return false
})
}
module.exports = migrateFromV5Storage