From 7c1341d439e65ae99866f580167bcf893634e408 Mon Sep 17 00:00:00 2001 From: Hyko Date: Sat, 25 Apr 2026 12:20:23 -0400 Subject: [PATCH] docs(modules): update module file structure to use src/ layout - move db.js, api.js and register-server.js under src/ with updated naming conventions - add explanation of src/ as the module code directory with index.js as public entry point - document index.js pattern for re-exporting register, createTables and dropTables from src/ - add package.json files field example to restrict published assets --- docs/MODULES.md | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) 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"] ``` ---