diff2html/src/types.ts

87 lines
1.6 KiB
TypeScript
Raw Normal View History

2019-10-21 22:37:42 +00:00
export type DiffLineParts = {
prefix: string;
content: string;
};
export enum LineType {
2019-12-29 22:31:32 +00:00
INSERT = 'insert',
DELETE = 'delete',
CONTEXT = 'context',
2019-10-21 22:37:42 +00:00
}
export interface DiffLineDeleted {
type: LineType.DELETE;
oldNumber: number;
newNumber: undefined;
}
export interface DiffLineInserted {
type: LineType.INSERT;
oldNumber: undefined;
newNumber: number;
}
export interface DiffLineContext {
type: LineType.CONTEXT;
oldNumber: number;
newNumber: number;
}
export type DiffLineContent = {
2019-10-21 22:37:42 +00:00
content: string;
};
export type DiffLine = (DiffLineDeleted | DiffLineInserted | DiffLineContext) & DiffLineContent;
2019-10-21 22:37:42 +00:00
export interface DiffBlock {
oldStartLine: number;
oldStartLine2?: number;
newStartLine: number;
header: string;
lines: DiffLine[];
}
export interface DiffFileName {
oldName: string;
newName: string;
}
export interface DiffFile extends DiffFileName {
addedLines: number;
deletedLines: number;
isCombined: boolean;
isGitDiff: boolean;
language: string;
blocks: DiffBlock[];
oldMode?: string | string[];
newMode?: string;
deletedFileMode?: string;
newFileMode?: string;
isDeleted?: boolean;
isNew?: boolean;
isCopy?: boolean;
isRename?: boolean;
isBinary?: boolean;
unchangedPercentage?: number;
changedPercentage?: number;
checksumBefore?: string | string[];
checksumAfter?: string;
mode?: string;
}
export enum OutputFormatType {
2019-12-29 22:31:32 +00:00
LINE_BY_LINE = 'line-by-line',
SIDE_BY_SIDE = 'side-by-side',
2019-10-21 22:37:42 +00:00
}
export enum LineMatchingType {
2019-12-29 22:31:32 +00:00
LINES = 'lines',
WORDS = 'words',
NONE = 'none',
2019-10-21 22:37:42 +00:00
}
export enum DiffStyleType {
2019-12-29 22:31:32 +00:00
WORD = 'word',
CHAR = 'char',
2019-10-21 22:37:42 +00:00
}