UNPKG

markmv

Version:

TypeScript CLI for markdown file operations with intelligent link refactoring

110 lines 3.94 kB
/** * File system statistics and metadata. * * Provides comprehensive information about a file or directory including size, type, and timestamp * information. * * @category Utilities */ export interface FileStats { path: string; size: number; isFile: boolean; isDirectory: boolean; modified: Date; created: Date; } /** * Configuration options for file copy operations. * * Controls behavior during file copying including overwrite handling, timestamp preservation, and * directory creation. * * @category Utilities */ export interface CopyOptions { overwrite?: boolean; preserveTimestamps?: boolean; createDirectories?: boolean; } /** * Configuration options for file move operations. * * Extends copy options with move-specific features like backup creation. Move operations are * typically implemented as copy-then-delete. * * @category Utilities */ export interface MoveOptions extends CopyOptions { backup?: boolean; } /** * Utility class for common file system operations. * * Provides a comprehensive set of static methods for file and directory manipulation, with proper * error handling and cross-platform compatibility. All methods are async and use Node.js * promises-based file system APIs. * * @category Utilities * * @example * Basic file operations * ```typescript * // Check if file exists * const exists = await FileUtils.exists('document.md'); * * // Read file content * const content = await FileUtils.readTextFile('document.md'); * * // Write new content * await FileUtils.writeTextFile('output.md', content, { * createDirectories: true * }); * * // Find markdown files * const files = await FileUtils.findMarkdownFiles('./docs', true); * ``` */ export declare class FileUtils { /** Check if a file or directory exists */ static exists(path: string): Promise<boolean>; /** Check if a path is readable */ static isReadable(path: string): Promise<boolean>; /** Check if a path is writable */ static isWritable(path: string): Promise<boolean>; /** Get file statistics */ static getStats(path: string): Promise<FileStats>; /** Ensure directory exists, creating it if necessary */ static ensureDirectory(dirPath: string): Promise<void>; /** Safely read a file with encoding detection */ static readTextFile(filePath: string): Promise<string>; /** Safely write a file with directory creation */ static writeTextFile(filePath: string, content: string, options?: { createDirectories?: boolean; }): Promise<void>; /** Copy a file with options */ static copyFile(sourcePath: string, destinationPath: string, options?: CopyOptions): Promise<void>; /** Move a file with options */ static moveFile(sourcePath: string, destinationPath: string, options?: MoveOptions): Promise<void>; /** Delete a file safely */ static deleteFile(filePath: string): Promise<void>; /** List files in a directory with filtering */ static listFiles(dirPath: string, options?: { recursive?: boolean; extensions?: string[]; includeDirectories?: boolean; }): Promise<string[]>; /** Find markdown files in a directory */ static findMarkdownFiles(dirPath: string, recursive?: boolean): Promise<string[]>; /** Create a backup of a file */ static createBackup(filePath: string, suffix?: string): Promise<string>; /** Get file size in bytes */ static getFileSize(filePath: string): Promise<number>; /** Check if two files have the same content */ static filesEqual(path1: string, path2: string): Promise<boolean>; /** Generate a safe filename by removing invalid characters */ static sanitizeFilename(filename: string): string; /** Get relative path between two files */ static getRelativePath(fromFile: string, toFile: string): string; } //# sourceMappingURL=file-utils.d.ts.map