export function clean_indent(code: string): string { | |
const lines = code.split("\n"); | |
let min_indent: any = null; | |
lines.forEach((line) => { | |
const current_indent = line.match(/^(\s*)\S/); | |
if (current_indent) { | |
const indent_length = current_indent[1].length; | |
min_indent = | |
min_indent !== null | |
? Math.min(min_indent, indent_length) | |
: indent_length; | |
} | |
}); | |
if (min_indent === null || min_indent === 0) { | |
return code.trim(); | |
} | |
const normalized_lines = lines.map((line) => line.substring(min_indent)); | |
return normalized_lines.join("\n").trim(); | |
} | |