1import fs from 'fs-extra'; 2 3export function directoryExistsSync(file: string): boolean { 4 try { 5 return fs.statSync(file)?.isDirectory() ?? false; 6 } catch { 7 return false; 8 } 9} 10 11export async function directoryExistsAsync(file: string): Promise<boolean> { 12 return (await fs.promises.stat(file).catch(() => null))?.isDirectory() ?? false; 13} 14 15export async function fileExistsAsync(file: string): Promise<boolean> { 16 return (await fs.promises.stat(file).catch(() => null))?.isFile() ?? false; 17} 18 19export const ensureDirectoryAsync = (path: string) => fs.promises.mkdir(path, { recursive: true }); 20 21export const ensureDirectory = (path: string) => fs.mkdirSync(path, { recursive: true }); 22 23export const copySync = fs.copySync; 24 25export const copyAsync = fs.copy; 26 27export const removeAsync = fs.remove; 28