mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
Using console in production is generally undesirable due to performance loss and security concerns. Errors were changed to console.error and console.logs were removed.
40 lines
1.1 KiB
JavaScript
40 lines
1.1 KiB
JavaScript
const sander = require('sander')
|
|
const path = require('path')
|
|
const CSON = require('@rokt33r/season')
|
|
|
|
function resolveStorageNotes (storage) {
|
|
const notesDirPath = path.join(storage.path, 'notes')
|
|
let notePathList
|
|
try {
|
|
notePathList = sander.readdirSync(notesDirPath)
|
|
} catch (err) {
|
|
if (err.code === 'ENOENT') {
|
|
sander.mkdirSync(notesDirPath)
|
|
} else {
|
|
console.warn('Failed to find note dir', notesDirPath, err)
|
|
}
|
|
notePathList = []
|
|
}
|
|
const notes = notePathList
|
|
.filter(function filterOnlyCSONFile (notePath) {
|
|
return /\.cson$/.test(notePath)
|
|
})
|
|
.map(function parseCSONFile (notePath) {
|
|
try {
|
|
const data = CSON.readFileSync(path.join(notesDirPath, notePath))
|
|
data.key = path.basename(notePath, '.cson')
|
|
data.storage = storage.key
|
|
return data
|
|
} catch (err) {
|
|
console.error(`error on note path: ${notePath}, error: ${err}`)
|
|
}
|
|
})
|
|
.filter(function filterOnlyNoteObject (noteObj) {
|
|
return typeof noteObj === 'object'
|
|
})
|
|
|
|
return Promise.resolve(notes)
|
|
}
|
|
|
|
module.exports = resolveStorageNotes
|