UNPKG

hataraku

Version:

An autonomous coding agent for building AI-powered development tools. The name "Hataraku" (働く) means "to work" in Japanese.

43 lines 1.5 kB
import fs from "fs/promises"; import * as path from "path"; /** * Asynchronously creates all non-existing subdirectories for a given file path * and collects them in an array for later deletion. * * @param filePath - The full path to a file. * @returns A promise that resolves to an array of newly created directories. */ export async function createDirectoriesForFile(filePath) { const newDirectories = []; const normalizedFilePath = path.normalize(filePath); // Normalize path for cross-platform compatibility const directoryPath = path.dirname(normalizedFilePath); let currentPath = directoryPath; const dirsToCreate = []; // Traverse up the directory tree and collect missing directories while (!(await fileExistsAtPath(currentPath))) { dirsToCreate.push(currentPath); currentPath = path.dirname(currentPath); } // Create directories from the topmost missing one down to the target directory for (let i = dirsToCreate.length - 1; i >= 0; i--) { await fs.mkdir(dirsToCreate[i]); newDirectories.push(dirsToCreate[i]); } return newDirectories; } /** * Helper function to check if a path exists. * * @param path - The path to check. * @returns A promise that resolves to true if the path exists, false otherwise. */ export async function fileExistsAtPath(filePath) { try { await fs.access(filePath); return true; } catch { return false; } } //# sourceMappingURL=fs.js.map