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
This commit is contained in:
2026-04-25 12:20:23 -04:00
parent e783a39ced
commit 7c1341d439
+24 -7
View File
@@ -224,16 +224,33 @@ Toute variable requise par le module doit être déclarée dans `manifest.envVar
├── package.json # name: "@zen/module-blog", main: "./index.js" ├── package.json # name: "@zen/module-blog", main: "./index.js"
├── README.md # documente les env vars et la configuration ├── README.md # documente les env vars et la configuration
├── index.js # exporte manifest, register, createTables, dropTables ├── index.js # exporte manifest, register, createTables, dropTables
── db.js # createTables/dropTables ── src/
├── register-server.js # imports déclencheurs (chargé par register()) ├── db.server.js # createTables/dropTables
├── api.js # routes API (registerApiRoutes) ├── register-server.js # imports déclencheurs (chargé par register())
├── admin/ ├── api.server.js # routes API (registerApiRoutes)
├── BlogAdminPage.client.js # registerPage + composant ├── admin/
── widgets/... # registerWidgetFetcher + registerWidget ── BlogAdminPage.client.js # registerPage + composant
└── public/ │ └── widgets/... # registerWidgetFetcher + registerWidget
└── public/
└── BlogPublicPage.js # registerPublicModulePage └── 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"]
```
--- ---
## Cycle de vie complet ## Cycle de vie complet