diffblazer
Version:
A super fast diffing utility for HTML and Plaintext
32 lines (31 loc) • 1.47 kB
TypeScript
import { Action } from './action';
import { Match } from './match';
import { Operation } from './operation';
import { Token } from './tokenizer';
import type { Marker, Options } from './types';
export declare class Diffblazer {
private oldText;
private newText;
private content;
private specialTagDiffStack;
private newTokens;
private oldTokens;
private matchGranularity;
private options;
constructor(oldText: string, newText: string, options?: Partial<Options>);
build(): string;
tokenizeInputs(): void;
performOperation(opp: Operation): void;
processReplaceOperation(opp: Operation): void;
processInsertOperation(opp: Operation, marker: Marker): void;
processDeleteOperation(opp: Operation, marker: Marker): void;
processEqualOperation(opp: Operation): void;
markDifference(marker: Marker, tokens: Token[], action: Action): void;
extractConsecutiveTokens(tokens: Token[], condition: (value: Token) => boolean): Token[];
operations(): Operation[];
removeOrphans(matches: Match[]): Generator<Match | null, void, unknown>;
matchingBlocks(): Match[];
findMatchingBlocks(startInOld: number, endInOld: number, startInNew: number, endInNew: number, matchingBlocks: Match[]): void;
findMatch(startInOld: number, endInOld: number, startInNew: number, endInNew: number): Match | null;
}
export declare function diff(oldHtml: string, newHtml: string, options?: Partial<Options>): string;