UNPKG

dry-react

Version:

Initialiseur de structure React Native typée et modulaire

91 lines (83 loc) 2.58 kB
const fs = require('fs'); const path = require('path'); // 🔍 Trouver la racine du projet utilisateur (là où package.json existe) function findProjectRoot(startPath) { let current = startPath; while (current !== path.parse(current).root) { if (fs.existsSync(path.join(current, 'package.json'))) { return current; } current = path.dirname(current); } return startPath; } const root = findProjectRoot(process.cwd()); // ✅ racine réelle du projet // === Structure du projet === const structure = { src: { assets: { images: {}, videos: {}, sounds: {}, styles: {}, fonts: {}, icons: {}, }, core: { services: {}, guards: {}, interceptors: {}, providers: {}, }, configs: {}, contexts: {}, components: {}, hooks: {}, models: { interfaces: {}, types: {}, enums: {}, classes: {}, }, navigations: {}, resources: {}, screens: { alone: {}, menu: {}, auth: {}, }, store: {}, utils: {}, }, }; // === Fonction récursive pour créer les dossiers === function createFolders(basePath, tree) { for (const key in tree) { const dirPath = path.join(basePath, key); if (!fs.existsSync(dirPath)) { fs.mkdirSync(dirPath); console.log(`📁 Dossier créé : ${path.relative(root, dirPath)}`); } createFolders(dirPath, tree[key]); } } // === Point d’entrée === module.exports = function () { console.log('🚀 Création de la structure React Native à la racine du projet...\n'); // Étape 1 : créer la structure globale createFolders(root, structure); // Étapes suivantes : génération des modules require('./update-babel')(); require('./install-package-init')(); require('./apply-alias')(); require('./generate-store')(); require('./generate-model')(); require('./generate-env-config')(); require('./generate-layout-ui')(); require('./generate-toast-config')(); require('./generate-style'); require('./generate-service')(); require('./generate-interceptor')(); require('./generate-user-hook')(); console.log('\n✅ Structure complète générée avec succès !'); };