From 8f0d88560e70671b9c3174c1fd7f56968981db6b Mon Sep 17 00:00:00 2001 From: ShHaWkK <51519814+ShHaWkK@users.noreply.github.com> Date: Tue, 22 Sep 2026 12:05:49 +0200 Subject: [PATCH 1/2] chore: prepare unique npm package identity --- package.json | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index a166bcd..bc6dbbc 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,10 @@ { - "name": "template-api", + "name": "create-shhawk-api", "version": "1.0.0", - "description": "Générateur d'API hexagonale modulaire sans base de données.", + "description": "CLI pour générer des API Node.js modulaires en TypeScript ou JavaScript avec architecture hexagonale.", "main": "dist/cli/index.js", "bin": { + "create-shhawk-api": "dist/cli/index.js", "create-template-api": "dist/cli/index.js" }, "type": "commonjs", @@ -52,5 +53,8 @@ "@types/node": "^20.11.20", "ts-node": "^10.9.2", "typescript": "^5.9.2" + }, + "publishConfig": { + "access": "public" } } From 7b8e96c76bbc7f1c2e11273e43d90588772d63ae Mon Sep 17 00:00:00 2001 From: ShHaWkK <51519814+ShHaWkK@users.noreply.github.com> Date: Tue, 22 Sep 2026 12:05:52 +0200 Subject: [PATCH 2/2] docs: document installation and package usage --- README.md | 109 ++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 73 insertions(+), 36 deletions(-) diff --git a/README.md b/README.md index 93bde60..be323c2 100644 --- a/README.md +++ b/README.md @@ -1,64 +1,101 @@ -``` - |__ __| | | | | /\ | __ \|_ _| - | | ___ _ __ ___ _ __ | | __ _ | |_ ___ / \ | |__) | | | - | | / _ \| '_ ` _ \ | '_ \ | | / _` || __|/ _ \ / /\ \ | ___/ | | - | || __/| | | | | || |_) || || (_| || |_| __/ / ____ \ | | _| |_ - |_| \___||_| |_| |_|| .__/ |_| \__,_| \__|\___| /_/ \_\|_| |_____| - | | - |_| -``` +# TemplateAPI + +Générateur CLI pour créer rapidement une API Node.js structurée autour d'une architecture hexagonale, avec TypeScript ou JavaScript et des modules activables selon le projet. + +## Fonctionnalités + +- génération TypeScript ou JavaScript ; +- architecture hexagonale prête à étendre ; +- authentification et gestion des utilisateurs en modules optionnels ; +- portails client et administration optionnels ; +- configuration, validation, journalisation et observabilité ; +- modèles Docker, Jest, ESLint, Prettier et documentation API ; +- support npm, pnpm et yarn ; +- mode `--dry-run` pour inspecter une génération sans écrire de fichiers. + +## Installation -## 🚀 Utilisation +Pour travailler directement depuis le dépôt : ```bash -# installer les dépendances du générateur +git clone https://github.com/ShHaWkK/TemplateAPI.git +cd TemplateAPI npm install +npm test +npm run build +``` + +Après publication npm, le package sera utilisable avec : + +```bash +npx create-shhawk-api my-api +``` -# lancer le générateur (interactif) +Le binaire historique `create-template-api` reste également exposé pour compatibilité. + +## Utilisation + +Mode interactif : + +```bash npm run dev -# ou après build -npm run build +``` + +Ou après compilation : + +```bash node dist/cli/index.js ``` -### Exécution directe +Exemple non interactif : ```bash -# générer une API TypeScript avec authentification et gestion utilisateurs node dist/cli/index.js my-api \ --language typescript \ --features auth,userCrud,clientPortal,adminPortal \ --package-manager npm ``` -## 🧭 Options disponibles +## Options | Option | Description | -|--------|-------------| -| `--language` | `typescript` (par défaut) ou `javascript`. | -| `--features` | Modules à inclure séparés par des virgules : `auth`, `userCrud`, `clientPortal`, `adminPortal`. Les dépendances sont résolues automatiquement (ex: `userCrud` active `auth`). | -| `--package-manager` | `npm`, `pnpm` ou `yarn`. Détermine les scripts affichés dans le README généré. | +| --- | --- | +| `--language` | `typescript` par défaut, ou `javascript`. | +| `--features` | Modules séparés par des virgules : `auth`, `userCrud`, `clientPortal`, `adminPortal`. | +| `--package-manager` | `npm`, `pnpm` ou `yarn`. | | `--dry-run` | Simule la génération sans écrire de fichiers. | -## 📦 Sortie générée +Les dépendances entre fonctionnalités sont résolues automatiquement. Par exemple, `userCrud` active les prérequis nécessaires à l'authentification. + +## Projet généré + +Selon les options sélectionnées, le générateur peut produire : + +- couches domaine, application, infrastructure et interface HTTP ; +- authentification JWT et gestion des refresh tokens ; +- contrôle d'accès et rôles ; +- persistance en mémoire ou adaptateurs Prisma selon le template ; +- endpoints de santé et de statut ; +- OpenAPI/Swagger et collection Insomnia ; +- tests d'intégration ; +- Dockerfile et Docker Compose ; +- configuration ESLint, Prettier et Jest. -Le projet créé contient : +## Développement -- un dossier `src/` structuré par couches hexagonales, -- des tests (`tests/`) et utilitaires prêts à l'emploi, -- la documentation (`docs/insomnia`, `src/interface/http/docs/openapi`), -- des fichiers de configuration (ESLint, Prettier, Jest, Docker). +| Commande | Rôle | +| --- | --- | +| `npm run dev` | Lance le CLI via ts-node. | +| `npm test` | Vérifie le typage TypeScript. | +| `npm run build` | Compile le CLI dans `dist/`. | +| `npm pack --dry-run` | Vérifie le contenu qui serait publié sur npm. | -La version JavaScript est générée à partir des mêmes sources TypeScript et convertie automatiquement. +La CI valide actuellement Node.js 18, 20 et 22. -## 🛠 Développement +## Contribution -| Script | Description | -| ------ | ----------- | -| `npm run dev` | Lance le CLI en TypeScript (ts-node). | -| `npm run build` | Compile le CLI vers `dist/`. | -| `npm test` | Vérifie la compilation TypeScript sans émettre de fichiers. | +Les contributions sont bienvenues. Consultez [CONTRIBUTING.md](CONTRIBUTING.md) avant d'ouvrir une pull request et [SECURITY.md](SECURITY.md) pour signaler un problème de sécurité. -## 📄 Licence +## Licence -Ce projet est sous licence MIT. +MIT — voir [LICENSE](LICENSE).