UNPKG

template-syncer

Version:

智能模板同步工具 - 让你的项目与模板仓库保持同步,支持智能合并、差异对比和交互式更新

117 lines (116 loc) 2.55 kB
/** * 文件信息 */ export interface FileInfo { /** 相对路径 */ path: string; /** 绝对路径 */ fullPath: string; /** 文件大小 */ size: number; /** 是否为二进制文件 */ isBinary: boolean; /** 文件分类 */ category: string; /** 显示图标 */ icon: string; } /** * 文件变更信息 */ export interface FileChange extends FileInfo { /** 变更状态 */ status: 'new' | 'modified' | 'deleted'; /** 模板文件路径 */ templatePath: string; /** 当前文件路径 */ currentPath: string; /** 是否选中 */ selected: boolean; } /** * 同步器配置选项 */ export interface SyncerOptions { /** 模板仓库 URL */ repo?: string; /** 分支名称 */ branch?: string; /** 临时目录 */ tempDir?: string; /** 详细输出 */ verbose?: boolean; /** 自定义忽略模式 */ ignore?: string[]; /** 自定义文件分类规则 */ categories?: CategoryRule[]; /** 自定义合并策略 */ mergers?: Record<string, MergeStrategy>; /** 同步规则 */ rules?: SyncRules; } /** * 同步规则配置 */ export interface SyncRules { /** 删除本地独有文件 */ deleteOrphans?: boolean; /** 删除匹配这些模式的本地独有文件 */ deletePatterns?: string[]; /** 保护这些文件不被删除 */ protectPatterns?: string[]; /** 同步前自动备份 */ autoBackup?: boolean; /** 默认合并策略 */ defaultMergeStrategy?: MergeStrategy; } /** * 持久化配置 */ export interface SyncConfig { repo?: string; branch?: string; ignore?: string[]; categories?: CategoryRule[]; mergers?: Record<string, MergeStrategy>; /** 同步规则 */ rules?: SyncRules; lastSync?: string; } /** * 文件分类规则 */ export interface CategoryRule { /** 匹配模式 (glob 或正则) */ match: string; /** 分类名称 */ category: string; /** 显示图标 */ icon: string; /** 优先级 (越高越优先) */ priority?: number; } /** * 合并策略 */ export type MergeStrategy = 'overwrite' | 'skip' | 'smart' | 'ask'; /** * 批量操作结果 */ export interface BatchResult { success: string[]; skipped: string[]; failed: Array<{ path: string; error: string; }>; } /** * 推荐操作 */ export interface Recommendation { priority: 'high' | 'medium' | 'low'; title: string; description: string; files: FileChange[]; }