1.0.0 ⢠Published 5 months ago
@nerdo/code-reviewer v1.0.0
@nerdo/code-reviewer
A modern, web-based visual git diff tool for reviewing code changes between commits, branches, and tags.
Features
- š Universal Search: Search commits by hash, message, author, or date
- š Smart Date Filtering: Quick presets (Today, Last 7 days, etc.) or custom ranges
- š² Branch & Tag Support: Compare any combination of branches, tags, and commits
- š File Browser: Navigate through changed files with syntax highlighting
- šļø Multiple Views: Side-by-side, inline, or unchanged file views
- šÆ Intelligent Highlighting: Visual indicators for additions, deletions, and changes
- ā” Fast & Responsive: Built with React and optimized for performance
Installation & Usage
Quick Start (Recommended)
Run directly in any git repository:
npx @nerdo/code-reviewerGlobal Installation
npm install -g @nerdo/code-reviewer
code-reviewerOptions
npx @nerdo/code-reviewer [options]
Options:
-p, --port <port> Port to run on (default: 3001)
-h, --help Show help message
--version Show version
Examples:
npx @nerdo/code-reviewer
npx @nerdo/code-reviewer --port 8080How to Use
- Navigate to a git repository in your terminal
- Run the command:
npx @nerdo/code-reviewer - Your browser opens automatically to the code review interface
- Select what to compare:
- Choose FROM: branch, tag, or commit
- Choose TO: branch, tag, or commit
- Apply date filters if needed
- Review the changes:
- Browse files in the left sidebar
- View diffs in side-by-side or inline mode
- Use universal search to find specific commits
Interface Overview
Selection Controls
- Branch/Tag Tabs: Switch between branches and tags
- Autocomplete Search: Type to filter and find branches, tags, or commits
- Date Filters: Filter commits by time ranges (Today, Last 7 days, custom dates)
- Universal Search: Search commits by hash, message, author, or date
Diff Views
- Side-by-side: Traditional two-column diff view
- Inline: Unified diff with changes highlighted inline
- Unchanged: View complete file content without diff highlighting
File Browser
- Tree Structure: Navigate files and folders
- Change Indicators: See which files were added, modified, or deleted
- Quick Navigation: Click any file to jump to its diff
Requirements
- Node.js: Version 16 or higher
- Git: Must be run from within a git repository
- Browser: Modern browser with JavaScript enabled
Development
Available Scripts
npm run dev- Start both client and server in development modenpm run test- Run the test suitenpm run test:watch- Run tests in watch modenpm run lint- Run ESLintnpm run typecheck- Run TypeScript type checkingnpm run build- Build the production bundle
Project Structure
src/
āāā components/ # React components
ā āāā ui/ # shadcn/ui components
ā āāā FileBrowser.tsx # File tree navigation
ā āāā DiffViewer.tsx # Diff display component
āāā domain/ # Core business logic
ā āāā entities/ # Domain entities
ā āāā repositories/ # Repository interfaces
ā āāā services/ # Domain services
āāā infrastructure/ # External integrations
ā āāā git/ # Git repository implementations
āāā server/ # Express.js API
ā āāā routes/ # API endpoints
āāā services/ # Frontend API clientTesting
The project includes comprehensive tests for:
- Domain services (DiffService, FileTreeService)
- React components (FileBrowser, DiffViewer)
- Git repository implementations
- Core entities and business logic
Run tests with:
npm testTechnologies Used
- Frontend: React, TypeScript, Tailwind CSS, shadcn/ui
- Backend: Node.js, Express.js, TypeScript
- Git Integration: simple-git
- Testing: Jest, React Testing Library
- Build Tools: Vite, TypeScript compiler
- Linting: ESLint
License
MIT License
1.0.0
5 months ago