UNPKG

@push.rocks/smartproxy

Version:

A powerful proxy package with unified route-based configuration for high traffic management. Features include SSL/TLS support, flexible routing patterns, WebSocket handling, advanced security options, and automatic ACME certificate management.

145 lines (144 loc) 5.5 kB
/** * Async filesystem utilities for SmartProxy * Provides non-blocking alternatives to synchronous filesystem operations */ import * as plugins from '../../plugins.js'; export declare class AsyncFileSystem { /** * Check if a file or directory exists * @param path - Path to check * @returns Promise resolving to true if exists, false otherwise */ static exists(path: string): Promise<boolean>; /** * Ensure a directory exists, creating it if necessary * @param dirPath - Directory path to ensure * @returns Promise that resolves when directory is ensured */ static ensureDir(dirPath: string): Promise<void>; /** * Read a file as string * @param filePath - Path to the file * @param encoding - File encoding (default: utf8) * @returns Promise resolving to file contents */ static readFile(filePath: string, encoding?: BufferEncoding): Promise<string>; /** * Read a file as buffer * @param filePath - Path to the file * @returns Promise resolving to file buffer */ static readFileBuffer(filePath: string): Promise<Buffer>; /** * Write string data to a file * @param filePath - Path to the file * @param data - String data to write * @param encoding - File encoding (default: utf8) * @returns Promise that resolves when file is written */ static writeFile(filePath: string, data: string, encoding?: BufferEncoding): Promise<void>; /** * Write buffer data to a file * @param filePath - Path to the file * @param data - Buffer data to write * @returns Promise that resolves when file is written */ static writeFileBuffer(filePath: string, data: Buffer): Promise<void>; /** * Remove a file * @param filePath - Path to the file * @returns Promise that resolves when file is removed */ static remove(filePath: string): Promise<void>; /** * Remove a directory and all its contents * @param dirPath - Path to the directory * @returns Promise that resolves when directory is removed */ static removeDir(dirPath: string): Promise<void>; /** * Read JSON from a file * @param filePath - Path to the JSON file * @returns Promise resolving to parsed JSON */ static readJSON<T = any>(filePath: string): Promise<T>; /** * Write JSON to a file * @param filePath - Path to the file * @param data - Data to write as JSON * @param pretty - Whether to pretty-print JSON (default: true) * @returns Promise that resolves when file is written */ static writeJSON(filePath: string, data: any, pretty?: boolean): Promise<void>; /** * Copy a file from source to destination * @param source - Source file path * @param destination - Destination file path * @returns Promise that resolves when file is copied */ static copyFile(source: string, destination: string): Promise<void>; /** * Move/rename a file * @param source - Source file path * @param destination - Destination file path * @returns Promise that resolves when file is moved */ static moveFile(source: string, destination: string): Promise<void>; /** * Get file stats * @param filePath - Path to the file * @returns Promise resolving to file stats or null if doesn't exist */ static getStats(filePath: string): Promise<plugins.fs.Stats | null>; /** * List files in a directory * @param dirPath - Directory path * @returns Promise resolving to array of filenames */ static listFiles(dirPath: string): Promise<string[]>; /** * List files in a directory with full paths * @param dirPath - Directory path * @returns Promise resolving to array of full file paths */ static listFilesFullPath(dirPath: string): Promise<string[]>; /** * Recursively list all files in a directory * @param dirPath - Directory path * @param fileList - Accumulator for file list (used internally) * @returns Promise resolving to array of all file paths */ static listFilesRecursive(dirPath: string, fileList?: string[]): Promise<string[]>; /** * Create a read stream for a file * @param filePath - Path to the file * @param options - Stream options * @returns Read stream */ static createReadStream(filePath: string, options?: Parameters<typeof plugins.fs.createReadStream>[1]): plugins.fs.ReadStream; /** * Create a write stream for a file * @param filePath - Path to the file * @param options - Stream options * @returns Write stream */ static createWriteStream(filePath: string, options?: Parameters<typeof plugins.fs.createWriteStream>[1]): plugins.fs.WriteStream; /** * Ensure a file exists, creating an empty file if necessary * @param filePath - Path to the file * @returns Promise that resolves when file is ensured */ static ensureFile(filePath: string): Promise<void>; /** * Check if a path is a directory * @param path - Path to check * @returns Promise resolving to true if directory, false otherwise */ static isDirectory(path: string): Promise<boolean>; /** * Check if a path is a file * @param path - Path to check * @returns Promise resolving to true if file, false otherwise */ static isFile(path: string): Promise<boolean>; }