mirror of
https://github.com/BoostIo/Boostnote
synced 2025-12-13 17:56:25 +00:00
extract renameStorage, removeStorage methods
and tests for each of them
This commit is contained in:
@@ -3,6 +3,15 @@ const _ = require('lodash')
|
||||
const sander = require('sander')
|
||||
const path = require('path')
|
||||
|
||||
/**
|
||||
* @return {Object} all storages and notes
|
||||
* ```
|
||||
* {
|
||||
* storages: [...],
|
||||
* notes: [...]
|
||||
* }
|
||||
* ```
|
||||
*/
|
||||
function init () {
|
||||
let fetchStorages = function () {
|
||||
let rawStorages
|
||||
|
||||
28
browser/main/lib/dataApi/removeStorage.js
Normal file
28
browser/main/lib/dataApi/removeStorage.js
Normal file
@@ -0,0 +1,28 @@
|
||||
const _ = require('lodash')
|
||||
|
||||
/**
|
||||
* @param {String} key
|
||||
* @return {key}
|
||||
*/
|
||||
function removeStorage (key) {
|
||||
let rawStorages
|
||||
|
||||
try {
|
||||
rawStorages = JSON.parse(localStorage.getItem('storages'))
|
||||
if (!_.isArray(rawStorages)) throw new Error('invalid storages')
|
||||
} catch (e) {
|
||||
console.warn(e)
|
||||
rawStorages = []
|
||||
}
|
||||
|
||||
rawStorages = rawStorages
|
||||
.filter(function excludeTargetStorage (rawStorage) {
|
||||
return rawStorage.key !== key
|
||||
})
|
||||
|
||||
localStorage.setItem('storages', JSON.stringify(rawStorages))
|
||||
|
||||
return Promise.resolve(key)
|
||||
}
|
||||
|
||||
module.exports = removeStorage
|
||||
33
browser/main/lib/dataApi/renameStorage.js
Normal file
33
browser/main/lib/dataApi/renameStorage.js
Normal file
@@ -0,0 +1,33 @@
|
||||
const _ = require('lodash')
|
||||
|
||||
/**
|
||||
* @param {String} key
|
||||
* @param {String} name
|
||||
* @return {Object} Storage meta data
|
||||
*/
|
||||
function renameStorage (key, name) {
|
||||
if (!_.isString(name)) return Promise.reject(new Error('Name must be a string.'))
|
||||
|
||||
let rawStorages
|
||||
try {
|
||||
rawStorages = JSON.parse(localStorage.getItem('storages'))
|
||||
if (!_.isArray(rawStorages)) throw new Error('invalid storages')
|
||||
} catch (e) {
|
||||
console.warn(e)
|
||||
rawStorages = []
|
||||
}
|
||||
|
||||
let targetStorage
|
||||
for (let i = 0; i < rawStorages.length; i++) {
|
||||
if (rawStorages[i].key === key) {
|
||||
rawStorages[i].name = name
|
||||
targetStorage = rawStorages[i]
|
||||
}
|
||||
}
|
||||
|
||||
localStorage.setItem('storages', JSON.stringify(rawStorages))
|
||||
|
||||
return Promise.resolve(targetStorage)
|
||||
}
|
||||
|
||||
module.exports = renameStorage
|
||||
@@ -58,7 +58,6 @@ class StoragesTab extends React.Component {
|
||||
return <StorageItem
|
||||
key={storage.key}
|
||||
storage={storage}
|
||||
test={true}
|
||||
hostBoundingBox={boundingBox}
|
||||
/>
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user