diff --git a/docs/MODULES.md b/docs/MODULES.md index 1fa73aa..f7807c3 100644 --- a/docs/MODULES.md +++ b/docs/MODULES.md @@ -224,14 +224,31 @@ Toute variable requise par le module doit être déclarée dans `manifest.envVar ├── package.json # name: "@zen/module-blog", main: "./index.js" ├── README.md # documente les env vars et la configuration ├── index.js # exporte manifest, register, createTables, dropTables -├── db.js # createTables/dropTables -├── register-server.js # imports déclencheurs (chargé par register()) -├── api.js # routes API (registerApiRoutes) -├── admin/ -│ ├── BlogAdminPage.client.js # registerPage + composant -│ └── widgets/... # registerWidgetFetcher + registerWidget -└── public/ - └── BlogPublicPage.js # registerPublicModulePage +└── src/ + ├── db.server.js # createTables/dropTables + ├── register-server.js # imports déclencheurs (chargé par register()) + ├── api.server.js # routes API (registerApiRoutes) + ├── admin/ + │ ├── BlogAdminPage.client.js # registerPage + composant + │ └── widgets/... # registerWidgetFetcher + registerWidget + └── public/ + └── BlogPublicPage.js # registerPublicModulePage +``` + +Tout le code du module vit dans `src/`. Seul `index.js` reste à la racine — c'est le point d'entrée public lu par le core via `main: "./index.js"`. Il importe depuis `./src/` : + +```js +// index.js +export async function register() { + await import('./src/register-server.js'); +} +export { createTables, dropTables } from './src/db.server.js'; +``` + +Le champ `files` dans `package.json` publie uniquement `index.js`, `src/`, `README.md` et `LICENSE` : + +```json +"files": ["index.js", "src", "README.md", "LICENSE"] ``` ---