A typescript implementation to find the diff of two sequences or strings.
-
npm
npm install --save @algorithm.ts/diff
-
yarn
yarn add @algorithm.ts/diff
-
Basic
import { diff, IDiffItem } from '@algorithm.ts/diff' const results1: IDiffItem<string>[] = diff('abc', 'ac') const results2: IDiffItem<string>[] = diff('abc', 'ac', { lcs = "myers"}) const results3: IDiffItem<string>[] = diff('abc', 'ac', { lcs = "myers_linear_space"}) const results4: IDiffItem<string>[] = diff('abc', 'ac', { lcs = "dp"}) const results5: IDiffItem<number[]>[] = diff([1, 2, 3], [3, 4], { lcs = "dp", equals: (a, b) => a === b }) // results1 => [ { type: "common", tokens: "a" }, { type: "delete", tokens: "b" }, { type: "common", tokens: "c" } ] // results5 => [ { type: "delete", tokens: [1, 2] }, { type: "common", tokens: [3] }, { type: "added", tokens: [4] } ] // customized lcs import { lcs_myers_linear_space } from '@algorithm.ts/lcs' const results6: IDiffItem<number[]>[] = diff([1, 2, 3], [3, 4], { lcs = lcs_myers_linear_space })