Apariencia
Plantilla (starter)
Es el proyecto que crea hury-plugin init, empaquetado como .zip para quien prefiera no instalar el kit globalmente o quiera leerlo antes. Es un plugin completo y funcional: una lista de elementos con alta y borrado.
| Pieza | Fichero |
|---|---|
| Ficha | plugin.json |
| Módulo de la API: manifiesto, permisos, rutas | api/index.ts |
| Rutas con permiso, validación con zod y auditoría en la misma transacción | api/routes.ts, api/schemas.ts |
| Tipos de las tablas propias y los dos casts con el host | api/tables.ts |
| Migración idempotente que también concede los permisos | migrations/001_<clave>.sql |
| Módulo del panel: ruta, entrada de menú | admin/index.ts |
| Pantalla con el kit de componentes | admin/pages/<Clave>Page.vue |
| Traducciones | admin/i18n/{en,ca,fr}.json |
| Pruebas: contrato, migraciones idempotentes, traducciones completas, rutas | test/plugin.test.mjs |
Usarla
bash
unzip hury-plugin-starter-0.1.0.zip -d mi-plugin
cd mi-pluginLa plantilla lleva marcadores (__KEY__, __KEY_SNAKE__, __PASCAL__, __TITLE__, __AUTHOR__, __KIT_SPEC__) que hury-plugin init sustituye al crear el proyecto. Si descomprimes el .zip a mano tendrás que sustituirlos tú; el camino recomendado es hury-plugin init, que además valida la clave.
Convenciones que sigue
- Rutas bajo el nombre del plugin (
/notas/items), permisos<clave>.viewy<clave>.edit. - Tablas con prefijo del plugin; columnas en
snake_caseen SQL ycamelCaseen TypeScript (elCamelCasePlugindel host convierte). - Un módulo nuevo es opt-in (
defaultEnabled: false). - Todos los textos del admin en
t("…")y traducidos a en, ca y fr; el test falla si falta alguno. - Versiones de
fastify,kysely,zod,vueyvue-routerdepackage.json: son las del host. El plugin no las empaqueta.
Siguiente paso: Mi primer plugin.