Skip to content

Commit 98f58ab

Browse files
authored
Merge pull request #12 from RefactorSecurity/feat-add-command-save-local-database
Add command for saving notes to local database
2 parents 572f57d + ad99490 commit 98f58ab

4 files changed

Lines changed: 26 additions & 8 deletions

File tree

package.json

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,10 @@
7676
{
7777
"command": "security-notes.setNoteStatusToDo",
7878
"title": "Mark as To-Do"
79+
},
80+
{
81+
"command": "security-notes.saveNotesToFile",
82+
"title": "Security-Notes: Save Notes to Local Database"
7983
}
8084
],
8185
"configuration": {
@@ -266,4 +270,4 @@
266270
"rethinkdb": "^2.4.2",
267271
"uuid": "^9.0.0"
268272
}
269-
}
273+
}

src/extension.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,15 @@ import { Resource } from './reactions/resource';
77
import { ImportToolResultsWebview } from './webviews/importToolResultsWebview';
88
import { commentController } from './controllers/comments';
99
import { reactionHandler } from './handlers/reaction';
10+
import { saveNotesToFileHandler } from './handlers/saveNotesToFile';
1011
import {
1112
getSetting,
1213
saveNoteComment,
1314
setNoteStatus,
1415
syncNoteMapWithRemote,
1516
} from './helpers';
1617
import { RemoteDb } from './persistence/remote-db';
17-
import { loadCommentsFromFile, saveCommentsToFile } from './persistence/local-db';
18+
import { loadNotesFromFile, saveNotesToFile } from './persistence/local-db';
1819

1920
const noteMap = new Map<string, vscode.CommentThread>();
2021
let remoteDb: RemoteDb | undefined;
@@ -53,6 +54,13 @@ export function activate(context: vscode.ExtensionContext) {
5354
// reaction handler
5455
commentController.reactionHandler = reactionHandler;
5556

57+
// save notes to file handler
58+
context.subscriptions.push(
59+
vscode.commands.registerCommand('security-notes.saveNotesToFile', () =>
60+
saveNotesToFileHandler(noteMap),
61+
),
62+
);
63+
5664
// create note button
5765
context.subscriptions.push(
5866
vscode.commands.registerCommand(
@@ -222,7 +230,7 @@ export function activate(context: vscode.ExtensionContext) {
222230
);
223231

224232
// load persisted comments from file
225-
const persistedThreads = loadCommentsFromFile();
233+
const persistedThreads = loadNotesFromFile();
226234
persistedThreads.forEach((thread) => {
227235
noteMap.set(thread.contextValue ? thread.contextValue : '', thread);
228236
});
@@ -239,5 +247,5 @@ export function activate(context: vscode.ExtensionContext) {
239247

240248
export function deactivate(context: vscode.ExtensionContext) {
241249
// persist comments in file
242-
saveCommentsToFile(noteMap);
250+
saveNotesToFile(noteMap);
243251
}

src/handlers/saveNotesToFile.ts

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
'use strict';
2+
3+
import { CommentThread } from 'vscode';
4+
import { saveNotesToFile } from '../persistence/local-db';
5+
6+
export const saveNotesToFileHandler = (noteMap: Map<string, CommentThread>) =>
7+
saveNotesToFile(noteMap);

src/persistence/local-db/index.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,15 @@ import * as fs from 'fs';
44
import { Serializer } from '../serialization/serializer';
55
import { Deserializer } from '../serialization/deserializer';
66
import { CommentThread } from 'vscode';
7-
import { getSetting } from '../../helpers';
87
import { getLocalDbFilePath } from '../../utils';
98

109
const persistenceFile = getLocalDbFilePath();
1110

12-
export const saveCommentsToFile = (noteList: Map<string, CommentThread>) => {
13-
fs.writeFileSync(persistenceFile, JSON.stringify(Serializer.serialize(noteList)));
11+
export const saveNotesToFile = (noteMap: Map<string, CommentThread>) => {
12+
fs.writeFileSync(persistenceFile, JSON.stringify(Serializer.serialize(noteMap)));
1413
};
1514

16-
export const loadCommentsFromFile = (): CommentThread[] => {
15+
export const loadNotesFromFile = (): CommentThread[] => {
1716
// Check if persistence file exists and load comments
1817
if (fs.existsSync(persistenceFile)) {
1918
const jsonFile = fs.readFileSync(persistenceFile).toString();

0 commit comments

Comments
 (0)