JavaScript Beautifier
2025. 5. 21. 23:32ㆍ프로그램/Javascript
JavaScript 로 만든 Javascript Beautifier
function beautifyJS(code, indentSize = 2) {
const indentChar = ' '.repeat(indentSize);
let beautified = '';
let indentLevel = 0;
let inString = false;
let stringChar = '';
let escape = false;
const appendLine = (line = '') => {
beautified = beautified.trimEnd() + '\n' + indentChar.repeat(indentLevel) + line.trimStart();
};
let buffer = '';
for (let i = 0; i < code.length; i++) {
const char = code[i];
if (inString) {
buffer += char;
if (escape) {
escape = false;
} else if (char === '\\') {
escape = true;
} else if (char === stringChar) {
inString = false;
}
continue;
}
if (char === '"' || char === "'" || char === '`') {
inString = true;
stringChar = char;
buffer += char;
continue;
}
if (char === '{') {
appendLine(buffer + ' {');
buffer = '';
indentLevel++;
} else if (char === '}') {
if (buffer.trim()) appendLine(buffer);
buffer = '';
indentLevel--;
appendLine('}');
} else if (char === ';') {
buffer += ';';
appendLine(buffer);
buffer = '';
} else if (char === '\n') {
// 무시
} else {
buffer += char;
}
}
// 남은 buffer 처리
if (buffer.trim()) {
appendLine(buffer);
}
return beautified.trim(); // 마지막 줄 줄바꿈 제거
}'프로그램 > Javascript' 카테고리의 다른 글
| Video, Audio 태그 LoadedMetaData 에서 얻을수 있는 정보 (0) | 2025.06.08 |
|---|---|
| jquery radio 값 가져오기 (0) | 2025.06.04 |
| 구조화된 데이터 (Schema Markup) - VideoObject 설정 방법 (0) | 2025.06.04 |
| JavaScript 로 동영상 해상도 확인후 서버로 전송하기 (0) | 2025.06.04 |