온보딩 가이드, 아키텍처 맵, 실시간 지표를 생성하세요. 레거시 코드를 즉시 명확한 지식 베이스로 전환합니다.
다음으로 구축된 프로젝트 문서화
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/CD 파이프라인에 직접 통합하거나 단일 명령으로 로컬에서 실행하세요.
시간에 따른 문서 커버리지와 품질을 추적하세요. 문서화되지 않은 모듈을 즉시 식별합니다.
우리는 추측하지 않습니다. 코드 구조를 정확히 파악하기 위해 AST를 파싱합니다.
코드는 모델 학습에 사용되지 않습니다. SOC2 Type II 인증 인프라.
Markdown, PDF, Notion으로 내보내거나 정적 사이트로 자동 배포하세요.
기술 부채를 추적하고 "Bus Factor" 위험을 식별하며 시간에 따른 코드베이스 복잡도를 시각화하세요.
Bus Factor
1.2치명적 위험: `auth/core` 모듈
유지보수성
A+높은 수준의 개요부터 낮은 수준의 바이트 조작까지, 팀에 필요한 모든 형식을 생성합니다.
루트에 간단한 설정 파일을 넣으세요. 파싱, 토큰 한도, 프롬프트 엔지니어링은 자동으로 처리됩니다.
{
"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"]
}