@@ -6,6 +6,7 @@ import { pathToFileURL } from "node:url";
66import { resolveConflicts } from "./index" ;
77import type { Config } from "./types" ;
88import { DEFAULT_CONFIG } from "./normalizer" ;
9+ import { restoreBackups } from "./utils" ;
910
1011const CONFIG_FILENAME = "git-json-resolver.config.js" ;
1112
@@ -63,9 +64,12 @@ module.exports = ${JSON.stringify(DEFAULT_CONFIG, null, 2)};
6364/**
6465 * CLI argument parser (minimal, no external deps).
6566 */
66- export const parseArgs = ( argv : string [ ] ) : { overrides : Partial < Config > ; init ? : boolean } => {
67+ export const parseArgs = (
68+ argv : string [ ] ,
69+ ) : { overrides : Partial < Config > ; init ?: boolean ; restore ?: string } => {
6770 const overrides : Partial < Config > = { } ;
6871 let init = false ;
72+ let restore : string | undefined ;
6973
7074 for ( let i = 2 ; i < argv . length ; i ++ ) {
7175 const arg = argv [ i ] ;
@@ -93,18 +97,22 @@ export const parseArgs = (argv: string[]): { overrides: Partial<Config>; init?:
9397 case "--init" :
9498 init = true ;
9599 break ;
100+ case "--restore" :
101+ restore = next ;
102+ i ++ ;
103+ break ;
96104 default :
97105 if ( arg . startsWith ( "--" ) ) {
98106 console . warn ( `[git-json-resolver] Unknown option: ${ arg } ` ) ;
99107 }
100108 }
101109 }
102- return { overrides, init } ;
110+ return { overrides, init, restore } ;
103111} ;
104112
105113( async ( ) => {
106114 try {
107- const { overrides, init } = parseArgs ( process . argv ) ;
115+ const { overrides, init, restore } = parseArgs ( process . argv ) ;
108116
109117 if ( init ) {
110118 initConfig ( process . cwd ( ) ) ;
@@ -117,6 +125,12 @@ export const parseArgs = (argv: string[]): { overrides: Partial<Config>; init?:
117125 ...overrides ,
118126 } ;
119127
128+ if ( restore ) {
129+ await restoreBackups ( restore || fileConfig . backupDir || ".merge-backups" ) ;
130+ console . log ( `[git-json-resolver] Restored backups from ${ restore } ` ) ;
131+ process . exit ( 0 ) ;
132+ }
133+
120134 await resolveConflicts ( finalConfig ) ;
121135 } catch ( err ) {
122136 console . error ( "[git-json-resolver] Failed:" , err ) ;
0 commit comments