import re import sys def refactor_file(filepath): with open(filepath, 'r', encoding='utf-8') as f: content = f.read() # Pattern to find: # try { # const response = await ... # return ... # } catch (error) { # throw new Error(...) or throw error # } # This regex matches the try/catch block and replaces it with the inner code # It accounts for indentation and multi-line content pattern = r'try\s*\{([\s\S]*?)\}\s*catch\s*\(error\)\s*\{[\s\S]*?\}' def replacement(match): inner_code = match.group(1) # Strip one level of indentation (usually 2 spaces) lines = inner_code.split('\n') new_lines = [] for line in lines: if line.startswith(' '): new_lines.append(line[2:]) elif line.startswith(' '): new_lines.append(line[2:]) else: new_lines.append(line) return '\n'.join(new_lines).strip() new_content = re.sub(pattern, replacement, content) with open(filepath, 'w', encoding='utf-8') as f: f.write(new_content) if __name__ == "__main__": refactor_file(sys.argv[1])