Release 0.8.0
@emberkit/core 0.8.0@emberkit/cli 1.0.0@emberkit/icons & @emberkit/ui 6.0.0
Esta release añade efectos reactivos, View Transitions, routing API en dev, imports SQL raw, bindings de hidratación más robustos y correcciones para cargar emberkit.config.ts en el plugin de Vite.
Destacados
| Área | Qué cambió |
|---|---|
| Signals | createEffect y createMemo rastrean dependencias y se re-ejecutan cuando cambian los signals |
| View Transitions | Transiciones SPA integradas vía render(..., { viewTransitions: true }) |
| Dev API | devApiPlugin y rutas por archivo src/routes/_api/* en desarrollo |
| Hidratación | data-ek-bind más rico para inputs; guía para listas async tras SSR |
| Vite | sqlRawPlugin() para imports *.sql?raw (Workers / edge) |
Efectos reactivos y memos
Antes de 0.8.0, createEffect se ejecutaba una sola vez en el cliente. Ahora:
- Rastrea lecturas dentro del effect (y dentro de
createMemo) - Se re-ejecuta cuando cambian esos signals
- Respeta
untrack()y agrupa notificaciones víabatch() - Omite la ejecución durante SSR (
windowes undefined)
import { createSignal, createEffect } from '@emberkit/core';
const [query, setQuery] = createSignal('');
createEffect(() => {
document.title = `Search: ${query()}`;
});
Consulta Signals — Effects.
View Transitions
Habilita cambios de ruta fluidos con la View Transitions API nativa:
import { render } from '@emberkit/core';
import App from './routes/_layout.tsx';
import { routes } from 'virtual:emberkit-routes';
render(App, document.getElementById('app')!, {
routes,
viewTransitions: true,
});
También exportados: supportsViewTransitions, withViewTransition, initViewTransitions, navigateWithViewTransition y navigate(..., { viewTransition: true }).
Guía completa: View Transitions.
Middleware Dev API
En desarrollo, reenvía /api y /api/* a un handler Node o a rutas por archivo bajo src/routes/_api/.
Opción A — config:
// emberkit.config.ts
export default defineConfig({
devApi: {
handler: './src/server/api-router.node.ts',
export: 'handleApiRequestNode',
},
});
Opción B — plugin Vite explícito (mismo comportamiento):
import { devApiPlugin, emberkitVitePlugin } from '@emberkit/core/vite-plugin';
plugins: [
devApiPlugin({
handler: './src/server/api-router.node.ts',
export: 'handleApiRequestNode',
}),
emberkitVitePlugin(),
];
Si devApi no está configurado y tienes rutas src/routes/_api/*, el routing API por archivo se habilita automáticamente.
Detalles: Dev API.
sqlRawPlugin
Importa archivos SQL como strings en build time (útil para migraciones en Cloudflare Workers, donde no hay filesystem):
import migration from '../migrations/001_init.sql?raw';
import { sqlRawPlugin, emberkitVitePlugin } from '@emberkit/core/vite-plugin';
plugins: [sqlRawPlugin(), emberkitVitePlugin()];
Mejoras de hidratación
- Inputs:
data-ek-binden<input>,<textarea>y<select>sincroniza.value; los botones pueden enlazardisabled. - SSR + listas async: La hidratación no re-renderiza listas
.map()cuando un signal se actualiza. Consulta Listas dinámicas tras SSR.
Correcciones del plugin Vite (0.8.0)
emberkit.config.tsse transpila con esbuild cuando el plugin carga opciones (corrige quedevApino se aplicara bajo Node plano).- El middleware SSR en dev omite peticiones
/apipara que no se rendericen como páginas HTML. - El matching de prefijo API acepta
/apiy/api/*(no solo/api/...con path final).
CLI 1.0.0
La versión major del CLI se alinea con core 0.8.0. Las plantillas de scaffold fijan rangos de dependencias compatibles. Sin cambios breaking en comandos CLI más allá de la alineación de versiones.
Checklist de migración
- Actualiza dependencias:
@emberkit/core@^0.8.0,@emberkit/cli@^1.0.0, opcional@emberkit/icons@^6.0.0/@emberkit/ui@^6.0.0. - Elimina shims locales si copiaste
vite.dev-api-plugin.tsovite-sql-raw.tsde apps antiguas. - Añade
devApiodevApiPluginpara rutas API locales. - Habilita
viewTransitions: trueenrender()y elimina scripts custom de view-transition si estaban duplicados. - Para páginas SSR con listas obtenidas en cliente, sigue la guía de hidratación para listas dinámicas.
Próximos pasos
- Referencia API — exports actualizados
- Dev API
- View Transitions
- Hidratación