@alleen/core
v1.0.1
Published
Core NestJS module for alleen-api — dynamic multi-database Prisma registry
Readme
@alleen/core
⚠️ Important
This package cannot function on its own.
It is designed as a required dependency for alleen to work properly within a project.👉 To correctly initialize a compatible project, use the official repository:
https://github.com/olivierAdou/alleen-api.git
Core NestJS module for alleen-api — Dynamic multi-database Prisma registry. No more switch statements.
Installation
npm install @alleen/coreSetup (3 étapes)
1. Ajouter tes bases de données via le CLI
npx alleen db:add --name=phoenix --url=postgresql://...
npx alleen db:add --name=bulk --url=postgresql://...2. Brancher dans app.module.ts
import { AlleenModule } from '@alleen/core';
import { PRISMA_REGISTRY, PRISMA_PROVIDERS } from './prisma/prisma.registry';
@Module({
imports: [
AlleenModule.forRoot({
registry: PRISMA_REGISTRY,
providers: PRISMA_PROVIDERS,
exposeApi: true,
}),
],
})
export class AppModule {}3. C'est tout ✅
Ton API est prête.
Endpoints exposés automatiquement
POST /alleen/query
Effectue n'importe quelle opération Prisma sur n'importe quelle DB enregistrée.
{
"database": "phoenix",
"model": "User",
"action": "findMany",
"args": {
"where": { "active": true },
"include": { "profile": true },
"take": 10
}
}Réponse :
{
"success": true,
"data": [...],
"meta": {
"database": "phoenix",
"model": "User",
"action": "findMany",
"duration": 38
}
}GET /alleen/databases
Liste toutes les DBs enregistrées.
{
"success": true,
"databases": ["phoenix", "bulk", "finance"]
}GET /alleen/health
Health check.
{
"status": "ok",
"databases": 3,
"registered": ["phoenix", "bulk", "finance"],
"timestamp": "2026-04-05T10:00:00.000Z"
}Actions Prisma supportées
| Action | Description |
|---|---|
| findUnique | Trouver un enregistrement unique |
| findFirst | Premier enregistrement correspondant |
| findMany | Liste d'enregistrements |
| create | Créer un enregistrement |
| createMany | Créer plusieurs enregistrements |
| update | Mettre à jour un enregistrement |
| updateMany | Mettre à jour plusieurs enregistrements |
| upsert | Créer ou mettre à jour |
| delete | Supprimer un enregistrement |
| deleteMany | Supprimer plusieurs enregistrements |
| count | Compter les enregistrements |
| aggregate | Agréger des données |
| groupBy | Grouper des données |
Utiliser DatabaseService directement
Pour les cas complexes, injecte DatabaseService dans tes propres services :
import { Injectable } from '@nestjs/common';
import { DatabaseService } from '@alleen/core';
@Injectable()
export class OrderService {
constructor(private readonly db: DatabaseService) {}
async getActiveOrders() {
return this.db.execute({
database: 'phoenix',
model: 'Order',
action: 'findMany',
args: { where: { status: 'ACTIVE' } },
});
}
}Logging (optionnel)
// main.ts
import { AlleenLoggerInterceptor } from '@alleen/core';
app.useGlobalInterceptors(new AlleenLoggerInterceptor());✅ [phoenix] User.findMany — 42ms
✅ [bulk] Order.create — 18ms
❌ [finance] Invoice.findUnique — 5msLicense
MIT © olivier adou
