jsondiffpatch
Version:
JSON diff & patch (object and array diff, text diff, multiple output formats)
30 lines (29 loc) • 2.35 kB
TypeScript
import type { AddedDelta, ArrayDelta, DeletedDelta, Delta, ModifiedDelta, MovedDelta, ObjectDelta, TextDiffDelta } from "../types.js";
import type { BaseFormatterContext, DeltaType, NodeType } from "./base.js";
import BaseFormatter from "./base.js";
interface AnnotatedFormatterContext extends BaseFormatterContext {
indentLevel?: number;
indentPad?: string;
indent: (levels?: number) => void;
row: (json: string, htmlNote?: string) => void;
}
declare class AnnotatedFormatter extends BaseFormatter<AnnotatedFormatterContext> {
constructor();
prepareContext(context: Partial<AnnotatedFormatterContext>): void;
typeFormattterErrorFormatter(context: AnnotatedFormatterContext, err: unknown): void;
formatTextDiffString(context: AnnotatedFormatterContext, value: string): void;
rootBegin(context: AnnotatedFormatterContext, type: DeltaType, nodeType: NodeType): void;
rootEnd(context: AnnotatedFormatterContext, type: DeltaType): void;
nodeBegin(context: AnnotatedFormatterContext, key: string, _leftKey: string | number, type: DeltaType, nodeType: NodeType): void;
nodeEnd(context: AnnotatedFormatterContext, _key: string, _leftKey: string | number, type: DeltaType, _nodeType: NodeType, isLast: boolean): void;
format_unchanged(): void;
format_movedestination(): void;
format_node(context: AnnotatedFormatterContext, delta: ObjectDelta | ArrayDelta, left: unknown): void;
format_added(context: AnnotatedFormatterContext, delta: AddedDelta, left: unknown, key: string | undefined, leftKey: string | number | undefined): void;
format_modified(context: AnnotatedFormatterContext, delta: ModifiedDelta, left: unknown, key: string | undefined, leftKey: string | number | undefined): void;
format_deleted(context: AnnotatedFormatterContext, delta: DeletedDelta, left: unknown, key: string | undefined, leftKey: string | number | undefined): void;
format_moved(context: AnnotatedFormatterContext, delta: MovedDelta, left: unknown, key: string | undefined, leftKey: string | number | undefined): void;
format_textdiff(context: AnnotatedFormatterContext, delta: TextDiffDelta, left: unknown, key: string | undefined, leftKey: string | number | undefined): void;
}
export default AnnotatedFormatter;
export declare function format(delta: Delta, left?: unknown): string | undefined;