diff --git a/browser/lib/keygen.js b/browser/lib/keygen.js index 8bf58a19..814efedd 100644 --- a/browser/lib/keygen.js +++ b/browser/lib/keygen.js @@ -1,5 +1,11 @@ +const crypto = require('crypto') +const _ = require('lodash') const uuidv4 = require('uuid/v4') -module.exports = function () { - return uuidv4() +module.exports = function (uuid) { + if (typeof uuid === typeof true && uuid) { + return uuidv4() + } + const length = 10 + return crypto.randomBytes(length).toString('hex') } diff --git a/browser/main/lib/dataApi/createNote.js b/browser/main/lib/dataApi/createNote.js index 4b667385..e5d44489 100644 --- a/browser/main/lib/dataApi/createNote.js +++ b/browser/main/lib/dataApi/createNote.js @@ -52,12 +52,12 @@ function createNote (storageKey, input) { return storage }) .then(function saveNote (storage) { - let key = keygen() + let key = keygen(true) let isUnique = false while (!isUnique) { try { sander.statSync(path.join(storage.path, 'notes', key + '.cson')) - key = keygen() + key = keygen(true) } catch (err) { if (err.code === 'ENOENT') { isUnique = true diff --git a/browser/main/lib/dataApi/moveNote.js b/browser/main/lib/dataApi/moveNote.js index 4580062e..ef6760d7 100644 --- a/browser/main/lib/dataApi/moveNote.js +++ b/browser/main/lib/dataApi/moveNote.js @@ -37,12 +37,12 @@ function moveNote (storageKey, noteKey, newStorageKey, newFolderKey) { return resolveStorageData(newStorage) .then(function findNewNoteKey (_newStorage) { newStorage = _newStorage - newNoteKey = keygen() + newNoteKey = keygen(true) let isUnique = false while (!isUnique) { try { sander.statSync(path.join(newStorage.path, 'notes', newNoteKey + '.cson')) - newNoteKey = keygen() + newNoteKey = keygen(true) } catch (err) { if (err.code === 'ENOENT') { isUnique = true diff --git a/tests/fixtures/TestDummy.js b/tests/fixtures/TestDummy.js index 1ded274b..b1b176ea 100644 --- a/tests/fixtures/TestDummy.js +++ b/tests/fixtures/TestDummy.js @@ -107,9 +107,9 @@ function dummyStorage (storagePath, override = {}) { var notesData = [] var noteCount = Math.floor((Math.random() * 15)) + 1 for (var i = 0; i < noteCount; i++) { - var key = keygen() + var key = keygen(true) while (notesData.some((note) => note.key === key)) { - key = keygen() + key = keygen(true) } var noteData = dummyNote({ @@ -149,9 +149,9 @@ function dummyLegacyStorage (storagePath, override = {}) { var folderNotes = [] var noteCount = Math.floor((Math.random() * 5)) + 1 for (var i = 0; i < noteCount; i++) { - var key = keygen() + var key = keygen(true) while (folderNotes.some((note) => note.key === key)) { - key = keygen() + key = keygen(true) } var noteData = dummyNote({