AAA
adrian@portfolio:~/projects/comercify

Comercify

sitio en vivo ↗

Utilidades de e-commerce tipadas y sin dependencias para TypeScript: precios e impuestos, descuentos, carritos, envíos y catálogo. Se instala desde npm, o se copia el código fuente al proyecto con su CLI y el código pasa a ser tuyo.

## reto

Cada tienda online reimplementa las mismas piezas pequeñas: redondear dinero sin ruido de coma flotante, sacar el IVA de un precio con impuestos incluidos, elegir el mejor descuento, decirle al comprador cuánto le falta para el envío gratis. El desafío fue publicarlas en un solo paquete que siga sin dependencias y sea tree-shakeable, con tipos que resuelvan en todos los moduleResolution de TypeScript, y que además permita a un equipo copiar el código fuente a su proyecto en vez de instalarlo. Comercify crece por módulos, una carpeta por colaborador, así que el build, los exports y la CLI tenían que funcionar para un número de módulos desconocido.

## solución

Escribí cada utilidad como una función pequeña y tipada con sus propios tests unitarios, agrupadas en una carpeta de módulo que el paquete exporta como subruta (comercify/adrian) con builds ESM y CommonJS, declaraciones para los dos modos de resolución y sideEffects a false. Una CLI copia un módulo entero al proyecto, como shadcn/ui copia componentes, con opciones de módulo, salida, listado y force, y nunca sobrescribe un archivo sin --force. CI ejecuta lint, typecheck, format check, tests, build y publint en Node 20, 22 y 24, y la publicación comprueba que el tag coincide con package.json, pasa los tests antes y publica con npm provenance.

## stack

TERMINAL PORTFOLIO ADRIAN-ALVAREZ v3.0

(C) 2026 ADRIAN ALVAREZ. TODOS LOS DERECHOS RESERVADOS.

CPU 6502 @ 2.80MHz ........ OK

RAM 64K ................... OK

CARGANDO PERFIL ........... OK