Genera guide di onboarding, mappe dell'architettura e metriche in tempo reale. Trasforma il tuo codice legacy in una base di conoscenza chiara all'istante.
Documentiamo progetti creati con
export async function processSub(uId: string, plan: string) {
const user = await db.user.findById(uId);
if (!user.isActive) throw new Error("403");
if (user.sub === plan) return null;
const price = PRICING[plan];
// Charge the user
await stripe.charges.create({
amount: price * 100,
currency: 'usd',
customer: user.stripeId
});
await db.user.update(uId, { sub: plan, status: 'active' });
await email.sendWelcome(user.email, plan);
return true;
}/**
* Upgrades user subscription and handles payment processing.
*
* @description
* 1. Verifies user status (must be active).
* 2. Deduplicates requests (returns null if already on plan).
* 3. Charges card via Stripe and updates local DB.
*
* @param {string} uId - Internal user UUID.
* @param {string} plan - Target plan ID (e.g., 'PRO_YEARLY').
* @throws {Error} "403" if user is suspended/inactive.
* @returns {Promise<boolean|null>} True on success, null if no change needed.
*
* @example
* try {
* await processSub("user_123", "ENTERPRISE");
* } catch (err) {
* logger.error("Payment failed", err);
* }
*/
export async function processSub(uId: string, plan: string) {
const user = await db.user.findById(uId);
if (!user.isActive) throw new Error("403"); // User suspended
if (user.sub === plan) return null; // Already subscribed
const price = PRICING[plan];
// Charge the user
await stripe.charges.create({
amount: price * 100, // Convert to cents
currency: 'usd',
customer: user.stripeId
});
// Update db and send email
await db.user.update(uId, { sub: plan, status: 'active' });
await email.sendWelcome(user.email, plan);
return true;
}Ci occupiamo del lavoro pesante in modo asincrono. Tu ricevi semplicemente il risultato all'istante.
Tutto ciò che serve per trasformare il tuo codebase in una documentazione chiara e sempre aggiornata.
Integralo direttamente nella tua pipeline CI/CD o eseguilo in locale con un singolo comando.
Monitora copertura e qualità della documentazione nel tempo. Identifica all'istante i moduli non documentati.
Non facciamo ipotesi. Analizziamo l'AST per comprendere con precisione la struttura del tuo codice.
Il tuo codice non addestra mai i nostri modelli. Infrastruttura conforme a SOC2 Type II.
Esporta in Markdown, PDF, Notion o distribuisci come sito statico automaticamente.
Monitora il debito tecnico, identifica i rischi di "Bus Factor" e visualizza la complessità del codebase nel tempo.
Bus Factor
1.2Rischio critico: modulo `auth/core`
Manutenibilità
A+Dalla panoramica ad alto livello alla manipolazione dei byte a basso livello. Generiamo ogni formato di cui il tuo team ha bisogno.
Inserisci un semplice file di configurazione nella root. Ci occupiamo automaticamente di parsing, limiti di token e prompt engineering.
{
"project": "my-awesome-saas",
"entry": ["src/**/*.ts"],
"exclude": ["**/*.spec.ts"],
"output": {
"modes": ["onboarding", "technical", "migration-guide"],
"metrics": true,
"format": "markdown",
"path": "./docs"
},
"metrics": ["complexity", "bus-factor"]
}Per progetti open source e personali
Inizia gratisPer sviluppatori professionisti
Passa a ProPer team di ingegneria
Contatta le vendite