Embelezador JavaScript
O embelezador de JavaScript transforma código comprimido ou com espaçamento irregular em um formato mais fácil de inspecionar, explicar e revisar.
Executar grátis
Cole um script minificado, trecho empacotado, manipulador em linha ou código gerado e receba uma organização determinística com recuo de dois espaços e quebras após instruções. O analisador protege strings, templates literais, comentários e expressões regulares ao formatar a pontuação estrutural. Ele também rejeita colchetes, parênteses e chaves incompatíveis ou incompletos.
Recupere a legibilidade do JavaScript comprimido
O JavaScript entregue aos navegadores costuma ser minificado para acelerar a transferência, mas essa representação compacta é difícil de acompanhar. Corpos de funções, declarações de variáveis, chamadas, condições e retornos podem ocupar uma única linha contínua. Este embelezador restaura uma hierarquia visual estável sem executar o programa enviado. Chaves de abertura iniciam blocos recuados, chaves de fechamento retornam ao nível anterior e pontos e vírgulas que encerram instruções criam quebras quando aparecem fora de expressões entre parênteses. Cada nível usa dois espaços; portanto, execuções repetidas geram um resultado previsível para anotações, chamados, revisões ou editores. A ferramenta ajuda especialmente quando a única fonte disponível vem do navegador, de uma pasta de compilação, de um script incorporado ou de uma resposta de diagnóstico. Ela não renomeia variáveis, expande módulos empacotados, deduz mapas de origem nem promete reconstruir o estilo preferido do autor. Seu objetivo é específico e confiável: revelar a estrutura visível do programa enviado sem alterar seus caracteres significativos.
Proteja strings, comentários, templates e expressões regulares
A pontuação assume sentidos diferentes conforme o contexto do JavaScript, por isso um formatador confiável não pode dividir o texto em toda chave ou ponto e vírgula. Um ponto e vírgula dentro de uma mensagem entre aspas é um dado. Colchetes em uma expressão regular descrevem uma classe de caracteres. Uma chave em um template literal pode ser conteúdo, e a pontuação de um comentário não deve mudar a estrutura do programa. O analisador acompanha strings entre aspas simples e duplas, sequências de escape, templates literais, comentários de linha e bloco e expressões regulares. A formatação estrutural ocorre somente fora dessas regiões protegidas. Os parênteses também são acompanhados, mantendo na mesma linha os pontos e vírgulas do cabeçalho for tradicional. Essa varredura determinística não usa rede, relógio, aleatoriedade, modelo ou avaliação em tempo de execução. Entradas idênticas sempre produzem saídas idênticas, e o JavaScript enviado nunca é executado. O resultado facilita a inspeção humana e o uso em outras ferramentas, embora este embelezador estrutural não substitua um analisador completo do padrão nem um formatador configurado para o projeto.
Encontre delimitadores incompletos antes da próxima etapa
Muitas solicitações de formatação surgem porque o código foi copiado de um local inconveniente, e a cópia pode perder um caractere em qualquer extremidade. O embelezador mantém uma pilha aninhada de delimitadores estruturais e compara cada fechamento com a abertura correspondente. Um parêntese, colchete ou chave de fechamento inesperado gera imediatamente um erro de entrada inválida. Se o texto terminar com algum delimitador de abertura pendente, a operação também falha, em vez de devolver uma saída apenas aparentemente correta. Delimitadores dentro de strings, comentários, templates literais e expressões regulares protegidos são tratados como conteúdo. A verificação é intencionalmente específica: delimitadores equilibrados não provam que identificadores, operadores, declarações, módulos ou fluxo de controle sejam JavaScript válido, e a ferramenta não executa o código. Ainda assim, ela alerta sobre truncamentos e incompatibilidades comuns antes que um trecho seja usado em documentação, revisão, comparação ou análise especializada. A formatação no navegador pode ocorrer localmente, enquanto solicitações API automatizadas usam o preço-base publicado de US$ 0,002 por item.
Casos de uso
Inspecionar um recurso minificado do navegador
Expanda um script comprimido em blocos recuados e linhas de instruções antes de rastrear uma função, um manipulador ou uma chamada suspeita.
Preparar um trecho para revisão
Aplique uma organização determinística a JavaScript gerado ou irregular para que a revisão se concentre no comportamento e na estrutura.
Verificar um trecho copiado
Detecte parênteses, colchetes e chaves ausentes ou incompatíveis antes de colocar o código copiado na documentação ou em outra ferramenta.
Perguntas frequentes
Qual formatação o embelezador aplica?
Ele usa dois espaços por nível de bloco e coloca instruções terminadas em ponto e vírgula em novas linhas fora de expressões entre parênteses.
A ferramenta executa o JavaScript enviado?
Não. Ela realiza uma varredura determinística do texto e nunca avalia nem executa o código fornecido.
Strings, comentários, templates e expressões regulares são preservados?
Sim. O conteúdo fica protegido contra quebras estruturais enquanto o analisador processa o código ao redor.
Pontuação equilibrada garante JavaScript válido?
Não. A ferramenta verifica delimitadores e limites de formatação, mas não valida toda a sintaxe ECMAScript.
Quanto custa uma solicitação API?
Cada solicitação API usa o preço-base publicado de US$ 0,002. A versão no navegador pode ser executada localmente sem uma solicitação API.
Para desenvolvedores — acesso via API
Tudo nesta página está disponível via API. Esta seção é para equipes que querem integrar a ferramenta aos próprios sistemas; quem não precisa disso pode simplesmente usar a ferramenta acima.
Endpoint
Autenticação por token Bearer. Um único POST coloca a tarefa na fila; o resultado chega por webhook ou link assinado.
Chame do seu código
curl -X POST https://api.kit.forhosting.com/dev2/beautify-js \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"javascript":"function greet(name){const message=`Hello, ${name}!`;console.log(message);return message;}"}'const res = await fetch("https://api.kit.forhosting.com/dev2/beautify-js", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"javascript": "function greet(name){const message=`Hello, ${name}!`;console.log(message);return message;}"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/dev2/beautify-js",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"javascript": "function greet(name){const message=`Hello, ${name}!`;console.log(message);return message;}"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/dev2/beautify-js", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"javascript":"function greet(name){const message=`Hello, ${name}!`;console.log(message);return message;}"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"javascript":"function greet(name){const message=`Hello, ${name}!`;console.log(message);return message;}"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/dev2/beautify-js", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemplo de requisição
{
"javascript": "function greet(name){const message=`Hello, ${name}!`;console.log(message);return message;}"
}Exemplo de resposta
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "dev2.beautify_js",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}A API é assíncrona: cada chamada devolve um task_id na hora. Se preferir polling, consulte o status a até 1 requisição por segundo.
Preço
Preço publicado, sem tokens nem créditos escondidos. Tarefa que falha não é cobrada.
Erros
| HTTP | Código | O que significa |
|---|---|---|
401 | unauthorized | Token ausente ou inválido. Confira o header Authorization. |
402 | insufficient_balance | Saldo insuficiente para esta tarefa. Faça uma recarga e tente de novo. |
404 | unknown_type | Esse tipo de tarefa não existe. Confira o campo type no catálogo. |
429 | rate_limited | Muitas requisições em pouco tempo. Espere um instante e tente de novo. |