# # JavaScript/TypeScript Development Guidelines Quick reference for coding standards and conventions. See `best-practices.md` for implementation patterns. ## TypeScript Standards **Required tsconfig.json**: strict: true, noImplicitAny, strictNullChecks, noImplicitReturns, noUnusedLocals **Type Rules:** - No `any` - use `unknown` for truly unknown types - `interface` for objects, `type` for unions/intersections - Explicit function return types - Generics for reusable type-safe code ## Naming Conventions **Files:** kebab-case (utils), PascalCase (components), camelCase (hooks) **Variables:** camelCase (functions/vars), PascalCase (classes), UPPER_SNAKE_CASE (constants) **Descriptive:** `isLoading` not `loading`, `handleSubmit` not `submit` ## React Guidelines **Hooks:** Top-level only, consistent order, no conditional calls **State:** useState (local), React Query (server), Zustand (global), useMemo (derived) **Components:** < 300 lines, TypeScript props, functional with hooks ## Backend Guidelines **API Design:** RESTful (`GET /api/v1/users` not `/getUsers`), versioning, proper HTTP methods/codes **Validation:** Zod or Joi for all inputs, sanitize outputs **Error Handling:** Custom error classes, centralized middleware, structured logging ## Project Structure **Frontend:** components/ (ui, features, layout), hooks/, lib/, pages/, styles/, types/ **Backend:** controllers/, services/, repositories/, middleware/, routes/, types/, config/ ## Testing Standards **Frontend:** React Testing Library, test interactions not implementation, >80% coverage **Backend:** Jest + Supertest, integration tests for APIs, mock external services, >85% coverage ## Security (see security-guidelines.md for details) **Auth:** bcrypt for passwords, JWT (short expiry), refresh tokens, httpOnly cookies **Input:** Validate ALL inputs (Zod/Joi), sanitize HTML, parameterized queries **API:** CORS (specific origins), rate limiting, CSRF protection, Helmet.js headers ## Performance (see best-practices.md for implementation) **Frontend:** Code splitting, lazy loading, next/image, memoization, virtual scrolling **Backend:** Database indexes, connection pooling, Redis caching, pagination, background jobs ## Git Commits **Format:** `(): ` **Types:** feat, fix, docs, style, refactor, test, chore **Example:** `feat(auth): add password reset functionality` ## PR Checklist - [ ] TypeScript compiles, ESLint passes - [ ] All tests pass, coverage >80% - [ ] No console.logs or debugger - [ ] Meaningful commits, clear PR description - [ ] Documentation updated