* Delete JSON file from workspace session directory with file locking. * Idempotent - no error if file doesn't exist.
(workspaceId: string)
| 94 | * Idempotent - no error if file doesn't exist. |
| 95 | */ |
| 96 | async delete(workspaceId: string): Promise<Result<void>> { |
| 97 | return this.fileLocks.withLock(workspaceId, async () => { |
| 98 | try { |
| 99 | const filePath = this.getFilePath(workspaceId); |
| 100 | await fs.unlink(filePath); |
| 101 | return Ok(undefined); |
| 102 | } catch (error) { |
| 103 | if (error && typeof error === "object" && "code" in error && error.code === "ENOENT") { |
| 104 | return Ok(undefined); // Already deleted |
| 105 | } |
| 106 | const message = getErrorMessage(error); |
| 107 | return Err(`Failed to delete ${this.fileName}: ${message}`); |
| 108 | } |
| 109 | }); |
| 110 | } |
| 111 | } |
no test coverage detected