From 9a321121afc214d48240f2401206afbbb1c3d9b1 Mon Sep 17 00:00:00 2001 From: Andras Schmelczer Date: Thu, 9 Jan 2025 21:50:24 +0000 Subject: [PATCH] Fix file writing --- .../obsidian-file-operations.ts | 38 ++++++++----------- 1 file changed, 15 insertions(+), 23 deletions(-) diff --git a/plugin/src/file-operations/obsidian-file-operations.ts b/plugin/src/file-operations/obsidian-file-operations.ts index 926229cc..23fcd195 100644 --- a/plugin/src/file-operations/obsidian-file-operations.ts +++ b/plugin/src/file-operations/obsidian-file-operations.ts @@ -15,7 +15,7 @@ export class ObsidianFileOperations implements FileOperations { public async read(path: RelativePath): Promise { const result = new Uint8Array( - await this.vault.readBinary(this.getAbstractFile(path)) + await this.vault.adapter.readBinary(normalizePath(path)) ); return result; @@ -49,7 +49,7 @@ export class ObsidianFileOperations implements FileOperations { } await this.createParentDirectories(normalizePath(path)); - await this.vault.createBinary(normalizePath(path), newContent); + await this.vault.adapter.writeBinary(normalizePath(path), newContent); } public async write( @@ -63,21 +63,26 @@ export class ObsidianFileOperations implements FileOperations { } if (isBinary(expectedContent)) { - await this.vault.createBinary(normalizePath(path), newContent); + await this.vault.adapter.writeBinary( + normalizePath(path), + newContent + ); return newContent; } const expetedText = new TextDecoder().decode(expectedContent); const newText = new TextDecoder().decode(newContent); - const file = this.getAbstractFile(path); - const resultText = await this.vault.process(file, (currentText) => { - if (currentText !== expetedText) { - return mergeText(expetedText, currentText, newText); - } + const resultText = await this.vault.adapter.process( + normalizePath(path), + (currentText) => { + if (currentText !== expetedText) { + return mergeText(expetedText, currentText, newText); + } - return newText; - }); + return newText; + } + ); return new TextEncoder().encode(resultText); } @@ -113,17 +118,4 @@ export class ObsidianFileOperations implements FileOperations { } } } - - private getAbstractFile(path: RelativePath): TFile { - const file = this.vault.getAbstractFileByPath(path); - if (!file) { - throw new Error(`File not found: ${path}`); - } - - if (file instanceof TFile) { - return file; - } - - throw new Error(`Not a file: ${path}`); - } }