Skip to content

Commit 85df5d7

Browse files
committed
Add: add toString()
1 parent c2adccc commit 85df5d7

1 file changed

Lines changed: 28 additions & 0 deletions

File tree

diff.ts

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,34 @@ type Line = {
2323

2424
const hunkHeaderRegexp = /@@ -(\d+),?(\d*) \+(\d+),?(\d*) @@/
2525

26+
export function toString(diff: Diff): string {
27+
if (diff.hunks.length === 0) {
28+
return "";
29+
}
30+
let res: string
31+
res = '--- ' + diff.beforeFileName + '\n'
32+
res += '+++ ' + diff.afterFileName + '\n'
33+
diff.hunks.forEach((hunk: Hunk) => {
34+
res += '@@ -' + hunk.header.beforeStartLine + ',' + hunk.header.beforeLines + ' +' + hunk.header.afterStartLine + ',' + hunk.header.afterLines + ' @@\n'
35+
hunk.lines.forEach((line: Line) => {
36+
switch (line.mark) {
37+
case 'add':
38+
res += '+';
39+
break;
40+
case 'delete':
41+
res += '-';
42+
break;
43+
case 'nomodified':
44+
res += ' ';
45+
break;
46+
}
47+
res += line.text + '\n';
48+
})
49+
})
50+
51+
return res;
52+
}
53+
2654
export function parse(text: string): Diff[] {
2755
const diffs: Diff[] = [];
2856
let currentDiffIndex = 0;

0 commit comments

Comments
 (0)