Skip to content

Commit 3473ae8

Browse files
committed
use enum for storage operations
1 parent 204d37d commit 3473ae8

File tree

2 files changed

+28
-10
lines changed

2 files changed

+28
-10
lines changed

src/backupManager.ts

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,10 @@ import { randomUUID } from "crypto";
22
import * as vscode from "vscode";
33
import { getConfig } from "./config";
44
import { formatUnixTime } from "./date";
5-
import SnippetsStorage, { TreeElement } from "./snippetsStorage";
5+
import SnippetsStorage, {
6+
StorageOperation,
7+
TreeElement,
8+
} from "./snippetsStorage";
69

710
export interface Backup {
811
id: string;
@@ -83,7 +86,10 @@ export class BackupManager {
8386
) as Backup[];
8487
}
8588

86-
private async makeBackup(elements: TreeElement[], operation?: string) {
89+
private async makeBackup(
90+
elements: TreeElement[],
91+
operation?: StorageOperation
92+
) {
8793
if (!getConfig("saveBackups")) {
8894
return;
8995
}

src/snippetsStorage.ts

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -19,9 +19,21 @@ export interface FolderListItem extends vscode.QuickPickItem {
1919
label: string;
2020
}
2121

22+
export enum StorageOperation {
23+
Save = "save snippet",
24+
LoadDefault = "load default snippets",
25+
Delete = "delete",
26+
Rename = "rename",
27+
CreateFolder = "create folder",
28+
Move = "move",
29+
}
30+
2231
export default class SnippetsStorage {
2332
public onSave?: () => void;
24-
public onBeforeSave?: (elements: TreeElement[], operation?: string) => void;
33+
public onBeforeSave?: (
34+
elements: TreeElement[],
35+
operation?: StorageOperation
36+
) => void;
2537
public onSnippetSave?: (snippet: TreeElement) => void;
2638
private readonly elements = new Map<string, TreeElement>();
2739
private rootId = "";
@@ -108,12 +120,12 @@ export default class SnippetsStorage {
108120
1
109121
);
110122

111-
await this.save("delete");
123+
await this.save(StorageOperation.Delete);
112124
}
113125

114126
async renameElement(id: string, newName: string): Promise<void> {
115127
this.getElement(id).data.label = newName;
116-
await this.save("rename");
128+
await this.save(StorageOperation.Rename);
117129
}
118130

119131
async createFolder(name: string, relativeToId?: string): Promise<void> {
@@ -132,7 +144,7 @@ export default class SnippetsStorage {
132144
this.elements.set(folder.id, { childIds: [], data: folder, parentId });
133145
this.getElement(parentId).childIds?.push(folder.id);
134146

135-
await this.save("create folder");
147+
await this.save(StorageOperation.CreateFolder);
136148
}
137149

138150
async moveElement(sourceId: string, targetId?: string): Promise<void> {
@@ -169,7 +181,7 @@ export default class SnippetsStorage {
169181
const newParentElement = this.getElement(newParentId);
170182
newParentElement.childIds?.push(sourceId);
171183

172-
await this.save("move");
184+
await this.save(StorageOperation.Move);
173185
}
174186

175187
async saveSnippet(
@@ -189,15 +201,15 @@ export default class SnippetsStorage {
189201
this.elements.set(data.id, element);
190202
this.getElement(parentId).childIds?.push(data.id);
191203

192-
await this.save("save snippet");
204+
await this.save(StorageOperation.Save);
193205
this.onSnippetSave?.(element);
194206
}
195207

196208
getSnippet(id: string): string {
197209
return this.getElement(id).data.content?.toString() || "";
198210
}
199211

200-
async save(operation?: string): Promise<void> {
212+
async save(operation?: StorageOperation): Promise<void> {
201213
const originalElements = JSON.parse(
202214
this.context.globalState.get(this.storageKey) || "[]"
203215
) as TreeElement[];
@@ -265,7 +277,7 @@ export default class SnippetsStorage {
265277
parentId: exampleFolder.id,
266278
});
267279

268-
await this.save("load default snippets");
280+
await this.save(StorageOperation.LoadDefault);
269281
}
270282

271283
private serialize(): string {

0 commit comments

Comments
 (0)