Skip to content

Medidas

Jose Luiz Rodrigues edited this page Sep 10, 2026 · 1 revision

Medidas

measurements es el único módulo global de palta: no pertenece a ningún país. Convierte y formatea longitud, peso y volumen, con auto-escala pensada para catálogos de e-commerce.

import { measurements } from '@zeluizr/palta'
// o
import { length, weight, volume } from '@zeluizr/palta/measurements'

Los tres submódulos

submódulo unidades auto-escala
length mm cm m km in ft cm >= 100 pasa a m
weight mg g kg oz lb g >= 1000 pasa a kg
volume ml l fl oz ml >= 1000 pasa a l

Los tres implementan el mismo contrato:

convert(value: number, from: Unit, to: Unit): number
format(value: number, unit: Unit, options?: { decimals?: number }): string

format

measurements.length.format(50, 'cm')                 // '50 cm'
measurements.length.format(150, 'cm')                // '1,50 m'
measurements.length.format(150, 'cm', { decimals: 0 })// '2 m'

measurements.weight.format(500, 'g')                 // '500 g'
measurements.weight.format(2500, 'g')                // '2,50 kg'

measurements.volume.format(750, 'ml')                // '750 ml'
measurements.volume.format(1500, 'ml')               // '1,50 l'

Tres reglas gobiernan la salida:

  1. Si la unidad tiene auto-escala y el valor llega al umbral, se convierte a la unidad grande.
  2. Si el valor es entero y no pediste decimals, se muestra sin decimales.
  3. En cualquier otro caso se usan dos decimales, con coma como separador.

format no altera el valor original: escala solo para mostrar. El número que guardás en tu base sigue siendo el mismo.

convert

measurements.length.convert(1, 'm', 'cm')     // 100
measurements.length.convert(12, 'in', 'cm')   // 30.479999999999997
measurements.weight.convert(1, 'lb', 'kg')    // 0.45359237
measurements.volume.convert(1, 'l', 'fl oz')  // 33.81402265896594

convert devuelve el número crudo, sin redondear. Redondeá vos si lo vas a mostrar, o usá format directamente.

Factores de conversión

Cada submódulo define una unidad base y expresa todo lo demás en múltiplos de esa base.

Longitud, base mm

unidad factor
mm 1
cm 10
m 1 000
km 1 000 000
in 25.4
ft 304.8

Peso, base mg

unidad factor
mg 1
g 1 000
kg 1 000 000
oz 28 349.523125
lb 453 592.37

Volumen, base ml

unidad factor
ml 1
l 1 000
fl oz 29.5735296

fl oz es la onza líquida estadounidense.

Entradas inválidas

measurements.length.convert(NaN, 'cm', 'm')   // NaN
measurements.length.format(NaN, 'cm')         // ''
measurements.length.format(Infinity, 'cm')    // ''

convert devuelve NaN y format devuelve '' con cualquier valor no finito. Ninguno de los dos lanza.

Por qué existe la auto-escala

VTEX IO entrega siempre las dimensiones en cm y el peso en g. Mostrar "150 cm" o "2500 g" en una ficha de producto queda mal; mostrar "1,50 m" y "2,50 kg" queda bien. La auto-escala resuelve eso en la capa de presentación sin tocar los datos.

Los detalles de ese caso de uso están en VTEX IO.

Clone this wiki locally