obsidian-scraps/lib/util.ts
2024-10-28 11:03:02 -04:00

28 lines
703 B
TypeScript

import { Vault } from "obsidian";
export async function mkdirp(vault: Vault, folderPath: string): Promise<void> {
// Noop if the path exists
if (vault.getAbstractFileByPath(folderPath)) {
return;
}
// Start building the path incrementally
const pathParts = folderPath.split("/");
let currentPath = "";
for (const part of pathParts) {
currentPath = currentPath ? `${currentPath}/${part}` : part;
try {
// Check if folder exists
if (!vault.getAbstractFileByPath(currentPath)) {
// Create the folder if it doesn't exist
await vault.createFolder(currentPath);
}
} catch (error) {
console.error(`Error creating folder ${currentPath}:`, error);
throw error;
}
}
}