@processhub-lib/formatar
v1.0.2
Published
Utilitário extensível para formatação de dados: data, moeda, porcentagem e quantidade
Maintainers
Readme
@processhub-lib/formatar
Utilitário extensível para formatação de dados: data, moeda, porcentagem e quantidade.
Instalação
npm install @processhub-lib/formatarUso básico
import { formatar } from "@processhub-lib/formatar";
// Data
formatar("data", new Date(2026, 11, 25)); // "25/12/2026"
formatar("data", "2026-12-25"); // "25/12/2026"
formatar("data", "25/12/2026 15:30", { formato: "YYYY-MM-DD HH:mm" }); // "2026-12-25 15:30"
// Moeda
formatar("moeda", 1500.5); // "R$ 1.500,50"
formatar("moeda", 1500.5, { currency: "USD", locale: "en-US" }); // "$1,500.50"
// Porcentagem
formatar("porcentagem", 75.5); // "75,5%"
// Quantidade — massa
formatar("quantidade", 5000, { quantidade: { tipo: "massa", unidade: "t" } }); // "5,0000 t"
formatar("quantidade", 1_000_000, {
quantidade: { tipo: "massa", unidade: "kt" },
}); // "1,0000 kt"
// Quantidade — unidade genérica com pluralização
formatar("quantidade", 5, {
quantidade: {
tipo: "unidade",
unidade: "haste",
plural: { singular: "haste", plural: "hastes" },
},
}); // "5 hastes"Extensão
Registrar formatador customizado
import {
registrarFormatador,
removerFormatador,
formatar,
} from "@processhub-lib/formatar";
registrarFormatador("temperatura", (valor) => `${Number(valor).toFixed(1)} °C`);
formatar("temperatura", 36.6); // "36.6 °C"
// Remove quando não precisar mais (útil em testes)
removerFormatador("temperatura");Registrar domínio de quantidade customizado
import {
registrarDominioQuantidade,
removerDominioQuantidade,
listarDominiosQuantidade,
formatar,
} from "@processhub-lib/formatar";
import type {
DominioQuantidade,
QuantidadeOptions,
} from "@processhub-lib/formatar";
type VolumeOptions = { tipo: "volume"; unidade: "ml" | "l" };
const dominioVolume: DominioQuantidade<VolumeOptions> = {
tipo: "volume",
formatar(valor, opcoes) {
const fator = opcoes.unidade === "l" ? 1000 : 1;
return `${(valor / fator).toFixed(2)} ${opcoes.unidade}`;
},
};
registrarDominioQuantidade(dominioVolume);
formatar("quantidade", 5000, {
quantidade: { tipo: "volume", unidade: "l" } as unknown as QuantidadeOptions,
}); // "5.00 l"
listarDominiosQuantidade(); // ["massa", "unidade", "volume"]
removerDominioQuantidade("volume");