@git-diff-view/file
v0.0.36
Published
@git-diff-view/file
Readme
@git-diff-view/file
File content comparison engine built on top of @git-diff-view/core
Compare two file contents directly without git diff hunks. This package wraps diff and @git-diff-view/core to provide easy file-to-file comparison.
Features
- ✅ Direct file content comparison (no git required)
- ✅ Automatic diff generation using
difflibrary - ✅ Same API as @git-diff-view/core
- ✅ Syntax highlighting with HAST AST
- ✅ Split & Unified view support
- ✅ Theme support (light/dark)
Installation
npm install @git-diff-view/file
# or
pnpm add @git-diff-view/file
# or
yarn add @git-diff-view/fileUsage
Basic Usage
import { generateDiffFile } from "@git-diff-view/file";
// Generate diff from file contents
const file = generateDiffFile(
"old.ts", // old file name
oldContent, // old file content
"new.ts", // new file name
newContent, // new file content
"typescript", // old file language
"typescript" // new file language
);
// Initialize theme
file.initTheme('dark');
// Initialize diff
file.init();
// Build views
file.buildSplitDiffLines();
file.buildUnifiedDiffLines();Worker/Server Pattern
// Worker/Server side
import { generateDiffFile, DiffFile } from "@git-diff-view/file";
const file = generateDiffFile(
oldFileName, oldContent,
newFileName, newContent,
oldLang, newLang
);
file.initTheme('dark');
file.init();
file.buildSplitDiffLines();
file.buildUnifiedDiffLines();
const bundle = file.getBundle();
// Send bundle to main thread/client
// Main thread/Client side
const mergedFile = DiffFile.createInstance(data, bundle);
// Use with UI components
<DiffView diffFile={mergedFile} />API Reference
generateDiffFile()
Generate a DiffFile instance from file contents.
function generateDiffFile(
oldFileName: string,
oldContent: string,
newFileName: string,
newContent: string,
oldFileLang?: string,
newFileLang?: string
): DiffFileDiffFile Methods
Same as @git-diff-view/core:
| Method | Description |
|--------|-------------|
| initTheme(theme) | Set theme ('light' or 'dark') |
| init() | Initialize diff data |
| buildSplitDiffLines() | Generate split view data |
| buildUnifiedDiffLines() | Generate unified view data |
| getBundle() | Export data for transfer |
Difference from @git-diff-view/core
| Package | Use Case | Input |
|---------|----------|-------|
| @git-diff-view/core | Git diff visualization | Git diff hunks |
| @git-diff-view/file | File comparison | Raw file contents |
Use Cases
- Compare file versions without git
- Diff editor integration
- Online code comparison tools
- File upload comparison
- Live code diff
Related Packages
- @git-diff-view/core - Git diff mode
- @git-diff-view/react - React components
- @git-diff-view/vue - Vue components
- diff - Underlying diff library
License
MIT © MrWangJustToDo
