@viridial/shared
v1.0.79
Published
Shared modules for Real Estate frontend applications - Vue 3, TypeScript, Pinia, Axios
Maintainers
Readme
📦 Shared Modules - Architecture Modulaire
Ce répertoire contient les modules partagés entre les trois applications frontend (admin, agent, public).
🏗️ Structure Modulaire
shared/
├── api/ # Services API réutilisables
├── stores/ # Stores Pinia partagés
├── composables/ # Composables Vue réutilisables
├── types/ # Types TypeScript partagés
├── utils/ # Utilitaires communs
├── constants/ # Constantes partagées
└── components/ # Composants UI réutilisables📦 Modules Disponibles
1. API Module (api/)
Services API pour communiquer avec le backend :
auth.service.ts- Authentificationproperty.service.ts- Gestion des propriétésuser.service.ts- Gestion des utilisateursorganization.service.ts- Gestion des organisationshttp.client.ts- Client HTTP configuré (axios)
2. Stores Module (stores/)
Stores Pinia pour la gestion d'état :
auth.store.ts- État d'authentificationuser.store.ts- Données utilisateurproperty.store.ts- Propriétésorganization.store.ts- Organisations
3. Composables Module (composables/)
Composables Vue réutilisables :
useAuth.ts- Hook d'authentificationuseApi.ts- Hook pour appels APIuseToast.ts- Hook pour notificationsuseForm.ts- Hook pour formulaires
4. Types Module (types/)
Types TypeScript partagés :
auth.types.ts- Types d'authentificationproperty.types.ts- Types de propriétésuser.types.ts- Types utilisateursapi.types.ts- Types API génériques
5. Utils Module (utils/)
Utilitaires communs :
token.utils.ts- Gestion des tokens JWTdate.utils.ts- Formatage de datesvalidation.utils.ts- Validationformat.utils.ts- Formatage
6. Constants Module (constants/)
Constantes partagées :
api.constants.ts- URLs API, endpointsroutes.constants.ts- Routesconfig.constants.ts- Configuration
7. Components Module (components/)
Composants UI réutilisables :
Layout/- Layouts communsForms/- Formulaires réutilisablesCards/- Cartes spécialisées
đź”§ Utilisation
Dans un projet frontend (admin/agent/public)
// Importer un service API
import { authService } from '@/shared/api/auth.service'
// Importer un store
import { useAuthStore } from '@/shared/stores/auth.store'
// Importer un composable
import { useAuth } from '@/shared/composables/useAuth'
// Importer un type
import type { User } from '@/shared/types/user.types'
// Importer une constante
import { API_ENDPOINTS } from '@/shared/constants/api.constants'📝 Configuration
Chaque projet doit configurer le chemin @/shared dans son tsconfig.json :
{
"compilerOptions": {
"paths": {
"@/*": ["./src/*"],
"@/shared/*": ["../shared/*"]
}
}
}Et dans vite.config.ts :
resolve: {
alias: {
'@': fileURLToPath(new URL('./src', import.meta.url)),
'@/shared': fileURLToPath(new URL('../shared', import.meta.url))
}
}