File handler definition for intelligent file updates
Example 1
Example 1
const jsonHandler: FileHandler = { id: "json", name: "JSON Configuration", detector: (path) => path.endsWith(".json"), patterns: { version: /^(\s*)"version":\s*"([^"]+)"/m }, validate: (content) => { try { JSON.parse(content); return { valid: true }; } catch (e) { return { valid: false, error: e.message }; } } };
id: string
Unique identifier for this handler
name: string
Human-readable name
detector: (filePath: string) => boolean
Function to detect if this handler applies to a file
patterns: Record<string, RegExp>
Built-in patterns for common fields
optional
validators: Record<string, (content: string) => boolean>
Optional validators to ensure patterns work correctly
optional
replacer: (content: string,key: string,oldValue: string,newValue: string,) => string
Optional custom replacement logic if patterns aren't sufficient
optional
validate: (content: string) => { valid: boolean; error?: string; }
Optional post-update validation