@arroyavecommerce/cms-core
v0.3.0
Published
Contrato genérico de bloques, temas y zonas para el CMS visual de arroyaveCommerce, con fetchers sin SDK.
Maintainers
Readme
@arroyavecommerce/cms-core
Contrato genérico (agnóstico de framework de datos) para el CMS visual de
arroyaveCommerce: bloques, temas y zonas tipados con Zod, más los
fetchers que traen el contenido publicado desde el backend Medusa sin
depender de ningún SDK concreto. Es la mitad "de lectura" del CMS — la
mitad de edición vive en @arroyavecommerce/cms-studio,
que es peer de este paquete.
Qué resuelve
- Zonas y bloques: definición del árbol de contenido de una página (Home, PLP, PDP, etc.) como datos serializables en JSON, validados con Zod en tiempo de ejecución.
- Tema: paleta, tipografía y tokens de diseño editables, con el mismo contrato de borrador/publicado que las páginas.
- Fetchers: funciones puras que llaman
/store/cms/*del plugin@arroyavecommerce/cms-medusay devuelven datos ya validados — sin acoplarse a React Query, al SDK de Medusa ni a ningún framework de fetching particular del storefront consumidor.
Instalación
npm i @arroyavecommerce/cms-coreEste paquete se distribuye como código fuente TypeScript (no compilado), así que el consumidor debe transpilarlo. En Next.js:
// next.config.js
const nextConfig = {
transpilePackages: ["@arroyavecommerce/cms-core", "@arroyavecommerce/cms-studio"],
};Uso
import { createCmsFetchers } from "@arroyavecommerce/cms-core/fetchers";
const { getCmsPage, getCmsTheme, getCmsZone } = createCmsFetchers({
baseUrl: process.env.MEDUSA_BACKEND_URL,
publishableKey: process.env.NEXT_PUBLIC_MEDUSA_PUBLISHABLE_KEY,
});
const home = await getCmsPage("home"); // datos ya validados, o nullGuía completa de instalación (backend + storefront, contrato de archivos de
conexión, bloques propios, Tailwind, rutas /studio):
docs/instalacion.md
del repositorio.
Compatibilidad
| Dependencia | Versión mínima | | --- | --- | | React | >= 19 | | Next.js | >= 15 (si se usa en un storefront Next) | | Zod | >= 3.23 |
