Release 0.8.0
@emberkit/core 0.8.0@emberkit/cli 1.0.0@emberkit/icons & @emberkit/ui 6.0.0
Cette release ajoute des effets réactifs, View Transitions, le routage API en dev, des imports SQL raw, des liaisons d'hydratation plus robustes et des correctifs pour charger emberkit.config.ts dans le plugin Vite.
Points forts
| Domaine | Ce qui a changé |
|---|---|
| Signals | createEffect et createMemo suivent les dépendances et se ré-exécutent quand les signals changent |
| View Transitions | Transitions SPA intégrées via render(..., { viewTransitions: true }) |
| Dev API | devApiPlugin et routes par fichier src/routes/_api/* en développement |
| Hydratation | data-ek-bind enrichi pour les inputs ; guide pour les listes async après SSR |
| Vite | sqlRawPlugin() pour les imports *.sql?raw (Workers / edge) |
Effets réactifs et memos
Avant 0.8.0, createEffect s'exécutait une seule fois côté client. Désormais :
- Suit les lectures dans l'effet (et dans
createMemo) - Se ré-exécute quand ces signals changent
- Respecte
untrack()et regroupe les notifications viabatch() - Ignore l'exécution pendant le SSR (
windowest undefined)
import { createSignal, createEffect } from '@emberkit/core';
const [query, setQuery] = createSignal('');
createEffect(() => {
document.title = `Search: ${query()}`;
});
Voir Signals — Effects.
View Transitions
Activez des changements de route fluides avec l'API View Transitions native :
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,
});
Également exportés : supportsViewTransitions, withViewTransition, initViewTransitions, navigateWithViewTransition et navigate(..., { viewTransition: true }).
Guide complet : View Transitions.
Middleware Dev API
En développement, transférez /api et /api/* vers un handler Node ou vers des routes par fichier sous src/routes/_api/.
Option A — config :
// emberkit.config.ts
export default defineConfig({
devApi: {
handler: './src/server/api-router.node.ts',
export: 'handleApiRequestNode',
},
});
Option B — plugin Vite explicite (même comportement) :
import { devApiPlugin, emberkitVitePlugin } from '@emberkit/core/vite-plugin';
plugins: [
devApiPlugin({
handler: './src/server/api-router.node.ts',
export: 'handleApiRequestNode',
}),
emberkitVitePlugin(),
];
Si devApi n'est pas défini et que vous avez des routes src/routes/_api/*, le routage API par fichier s'active automatiquement.
Détails : Dev API.
sqlRawPlugin
Importez des fichiers SQL comme chaînes au build (utile pour les migrations sur Cloudflare Workers, où il n'y a pas de filesystem) :
import migration from '../migrations/001_init.sql?raw';
import { sqlRawPlugin, emberkitVitePlugin } from '@emberkit/core/vite-plugin';
plugins: [sqlRawPlugin(), emberkitVitePlugin()];
Améliorations d'hydratation
- Inputs :
data-ek-bindsur<input>,<textarea>et<select>synchronise.value; les boutons peuvent lierdisabled. - SSR + listes async : L'hydratation ne re-rend pas les listes
.map()quand un signal se met à jour. Voir Listes dynamiques après SSR.
Correctifs plugin Vite (0.8.0)
emberkit.config.tsest transpilé avec esbuild quand le plugin charge les options (corrigedevApiqui ne s'appliquait pas sous Node simple).- Le middleware SSR en dev ignore les requêtes
/apipour qu'elles ne soient pas rendues en pages HTML. - La correspondance de préfixe API accepte
/apiet/api/*(pas seulement/api/...avec un chemin final).
CLI 1.0.0
La version majeure du CLI s'aligne sur core 0.8.0. Les templates de scaffold fixent des plages de dépendances compatibles. Pas de changements breaking de commandes CLI au-delà de l'alignement des versions.
Checklist de migration
- Mettez à jour les dépendances :
@emberkit/core@^0.8.0,@emberkit/cli@^1.0.0, optionnel@emberkit/icons@^6.0.0/@emberkit/ui@^6.0.0. - Supprimez les shims locaux si vous avez copié
vite.dev-api-plugin.tsouvite-sql-raw.tsdepuis d'anciennes apps. - Ajoutez
devApioudevApiPluginpour les routes API locales. - Activez
viewTransitions: truedansrender()et retirez les scripts view-transition custom s'ils étaient dupliqués. - Pour les pages SSR avec listes chargées côté client, suivez le guide d'hydratation pour les listes dynamiques.
Prochaines étapes
- Référence API — exports mis à jour
- Dev API
- View Transitions
- Hydratation