devkits-diff-checker
v1.0.7
Published
Compare two texts and find differences using LCS algorithm. Side-by-side diff visualization. Zero-dependency text comparison tool.
Maintainers
Readme
@devkits/diff-checker
Compare two texts and find differences using LCS (Longest Common Subsequence) algorithm. Side-by-side diff visualization. Zero-dependency text comparison tool.
💰 Support DevKits
Love these tools? Support development via Open Collective
- $5/mo - Supporter (priority support)
- $9/mo - Pro (early access to new tools)
- $29 - Lifetime (all current + future Pro features)
💎 Upgrade to DevKits Pro
Get access to 20+ premium tools including SQL to Code, Data Faker, JWT Generator, and more — all for $9 one-time.
💡 Pay with Crypto: BTC, ETH, USDT (TRC-20), SOL accepted. View crypto addresses
🧰 DevKits Pro Tools
This package is part of DevKits — 82+ free developer tools. The online Diff Checker offers side-by-side visualization and merge conflict resolution.
Installation
npm install @devkits/diff-checkerUsage
const { compare, getStats, unified, summarize } = require('@devkits/diff-checker');
const original = `Hello World
This is a test
Goodbye`;
const modified = `Hello JavaScript
This is a test
Farewell`;
// Get detailed line-by-line diff
const diff = compare(original, modified);
// [
// { type: 'remove', left: 'Hello World', lNum: 1 },
// { type: 'add', right: 'Hello JavaScript', rNum: 1 },
// { type: 'equal', left: 'This is a test', right: 'This is a test', lNum: 2, rNum: 2 },
// { type: 'remove', left: 'Goodbye', lNum: 3 },
// { type: 'add', right: 'Farewell', rNum: 3 }
// ]
// Get statistics
const stats = getStats(diff);
// { added: 2, removed: 2, unchanged: 1 }
// Generate unified diff format
const uDiff = unified(original, modified);
// --- original
// +++ modified
// -Hello World
// +Hello JavaScript
// This is a test
// -Goodbye
// +Farewell
// Get simple summary
const summary = summarize(original, modified);
// {
// added: ['Hello JavaScript', 'Farewell'],
// removed: ['Hello World', 'Goodbye'],
// summary: '2 addition(s), 2 deletion(s)'
// }
// Ignore whitespace differences
const diffNoWs = compare('Hello World', 'Hello World', { ignoreWhitespace: true });
// Shows as equal
// Ignore case differences
const diffNoCase = compare('Hello', 'hello', { ignoreCase: true });
// Shows as equalAPI
compare(left, right, options)
Compares two texts line by line using LCS algorithm.
Options:
ignoreWhitespace: Ignore whitespace differences (default:false)ignoreCase: Ignore case differences (default:false)
Returns array of diff items with type: 'equal', 'add', or 'remove'.
getStats(diff)
Returns statistics: {added, removed, unchanged} counts.
unified(left, right, options)
Generates unified diff format (like diff -u).
summarize(left, right, options)
Returns simple summary with added/removed lines and count summary.
Algorithm
Uses the Longest Common Subsequence (LCS) algorithm to find the minimum set of changes needed to transform the original text into the modified text.
Time complexity: O(m × n) where m and n are the number of lines in each text.
See Also
🔧 More DevKits Tools
Free Tools (82+): | Tool | Description | |------|-------------| | base64-tool | Base64 encode/decode | | chmod-calculator | Unix permissions converter | | cron-parser | Cron expression parser | | csv-json-converter | CSV ↔ JSON converter | | docker-compose-parser | Docker Compose parser |
💎 DevKits Pro — $9 One-Time
Unlock 20+ premium tools with a single payment:
💡 Pay with Crypto: BTC, ETH, USDT (TRC-20), SOL accepted
🚀 Other Products from Us
| Product | Description | |---------|-------------| | Invoicely | Free invoice generator for freelancers | | SnapOG | Free OG image generator (20+ templates) |
License
MIT
