Skip to content

Commit ab28158

Browse files
committed
Fix line numbers and add changelog
Edit CI Edit CI Fix tests Add changelog Edit changelog
1 parent 8565350 commit ab28158

File tree

6 files changed

+78
-48
lines changed

6 files changed

+78
-48
lines changed
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# This file was auto-generated by the Firebase CLI
2+
# https://github.com/firebase/firebase-tools
3+
4+
name: Lint and test
5+
on:
6+
push:
7+
branches:
8+
- master
9+
jobs:
10+
lint_and_test:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- uses: actions/checkout@v4
14+
- run: npm install && npm run lint && npm run test
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# This file was auto-generated by the Firebase CLI
2+
# https://github.com/firebase/firebase-tools
3+
4+
name: Lint and test
5+
on: pull_request
6+
jobs:
7+
lint_and_test:
8+
if: ${{ github.event.pull_request.head.repo.full_name == github.repository }}
9+
runs-on: ubuntu-latest
10+
steps:
11+
- uses: actions/checkout@v4
12+
- run: npm install && npm run lint && npm run test

CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
# v2.0.0
2+
3+
## Breaking changes
4+
- Fix line numbers (see [#16](https://github.com/dherault/parse-git-patch/issues/16))

package.json

Lines changed: 7 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,9 @@
11
{
22
"name": "parse-git-patch",
3-
"version": "1.3.0",
3+
"version": "2.0.0",
44
"description": "Parse git patches with ease",
55
"main": "dist/src/index.js",
66
"types": "dist/src/index.d.js",
7-
"scripts": {
8-
"test": "jest --coverage",
9-
"build": "tsc --declaration",
10-
"prepublishOnly": "npm run build"
11-
},
127
"repository": {
138
"type": "git",
149
"url": "git+https://github.com/dherault/parse-git-patch.git"
@@ -27,6 +22,12 @@
2722
"url": "https://github.com/dherault/parse-git-patch/issues"
2823
},
2924
"homepage": "https://github.com/dherault/parse-git-patch#readme",
25+
"scripts": {
26+
"lint": "tsc --noEmit && eslint ./src --ext ts --report-unused-disable-directives --max-warnings 0",
27+
"test": "jest --coverage",
28+
"build": "tsc --declaration",
29+
"prepublishOnly": "npm run build"
30+
},
3031
"devDependencies": {
3132
"@types/jest": "^29.5.14",
3233
"@types/node": "^22.9.0",

src/index.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -90,8 +90,8 @@ function parseGitPatch(patch: string) {
9090

9191
const [, a, b] = match4
9292

93-
let nA = parseInt(a)
94-
let nB = parseInt(b)
93+
let nA = parseInt(a) - 1
94+
let nB = parseInt(b) - 1
9595

9696
lines.forEach(line => {
9797
nA++
@@ -106,7 +106,7 @@ function parseGitPatch(patch: string) {
106106
fileData.modifiedLines.push({
107107
added: true,
108108
lineNumber: nB,
109-
line: line.substr(1),
109+
line: line.substring(1),
110110
})
111111
}
112112
else if (line.startsWith('-')) {
@@ -115,7 +115,7 @@ function parseGitPatch(patch: string) {
115115
fileData.modifiedLines.push({
116116
added: false,
117117
lineNumber: nA,
118-
line: line.substr(1),
118+
line: line.substring(1),
119119
})
120120
}
121121
})

test/index.test.ts

Lines changed: 37 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -29,22 +29,22 @@ test('parses a simple patch', () => {
2929
modifiedLines: [
3030
{
3131
line: ' if (result && typeof result.body !== \'undefined\') {',
32-
lineNumber: 774,
32+
lineNumber: 773,
3333
added: false,
3434
},
3535
{
3636
line: ' if (typeof result === \'string\') {',
37-
lineNumber: 774,
37+
lineNumber: 773,
3838
added: true,
3939
},
4040
{
4141
line: ' response.source = JSON.stringify(result)',
42-
lineNumber: 775,
42+
lineNumber: 774,
4343
added: true,
4444
},
4545
{
4646
line: ' } else if (result && typeof result.body !== \'undefined\') {',
47-
lineNumber: 776,
47+
lineNumber: 775,
4848
added: true,
4949
},
5050
],
@@ -84,12 +84,12 @@ test('parses a complex patch', () => {
8484
{
8585
added: true,
8686
line: ' _path,',
87-
lineNumber: 477,
87+
lineNumber: 476,
8888
},
8989
{
9090
added: true,
9191
line: ' _path,',
92-
lineNumber: 493,
92+
lineNumber: 492,
9393
},
9494
],
9595
},
@@ -102,27 +102,27 @@ test('parses a complex patch', () => {
102102
{
103103
added: true,
104104
line: ' #path = null',
105-
lineNumber: 6,
105+
lineNumber: 5,
106106
},
107107
{
108108
added: false,
109109
line: ' constructor(request, stage, requestTemplate) {',
110-
lineNumber: 10,
110+
lineNumber: 9,
111111
},
112112
{
113113
added: true,
114114
line: ' constructor(request, stage, requestTemplate, path) {',
115-
lineNumber: 11,
115+
lineNumber: 10,
116116
},
117117
{
118118
added: true,
119119
line: ' this.#path = path',
120-
lineNumber: 12,
120+
lineNumber: 11,
121121
},
122122
{
123123
added: true,
124124
line: ' this.#path,',
125-
lineNumber: 23,
125+
lineNumber: 22,
126126
},
127127
],
128128
},
@@ -135,68 +135,68 @@ test('parses a complex patch', () => {
135135
{
136136
added: true,
137137
line: ' #path = null',
138-
lineNumber: 20,
138+
lineNumber: 19,
139139
},
140140
{
141141
added: false,
142142
line: ' constructor(request, stage) {',
143-
lineNumber: 23,
143+
lineNumber: 22,
144144
},
145145
{
146146
added: true,
147147
line: ' constructor(request, stage, path) {',
148-
lineNumber: 24,
148+
lineNumber: 23,
149149
},
150150
{
151151
added: true,
152152
line: ' this.#path = path',
153-
lineNumber: 25,
153+
lineNumber: 24,
154154
},
155155
{
156156
added: false,
157157
line: ' path,',
158-
lineNumber: 110,
158+
lineNumber: 109,
159159
},
160160
{
161161
added: false,
162162
line: ' path,',
163-
lineNumber: 129,
163+
lineNumber: 128,
164164
},
165165
{
166166
added: true,
167167
line: ' path: this.#path,',
168-
lineNumber: 130,
168+
lineNumber: 129,
169169
},
170170
{
171171
added: false,
172172
// eslint-disable-next-line
173173
line: ' path: `/${this.#stage}${this.#request.route.path}`,',
174-
lineNumber: 174,
174+
lineNumber: 173,
175175
},
176176
{
177177
added: true,
178178
line: ' path: this.#request.route.path,',
179-
lineNumber: 175,
179+
lineNumber: 174,
180180
},
181181
{
182182
added: false,
183183
line: ' resourcePath: this.#request.route.path,',
184-
lineNumber: 180,
184+
lineNumber: 179,
185185
},
186186
{
187187
added: true,
188188
line: ' resourcePath: this.#path,',
189-
lineNumber: 181,
189+
lineNumber: 180,
190190
},
191191
{
192192
added: false,
193193
line: ' resource: this.#request.route.path,',
194-
lineNumber: 183,
194+
lineNumber: 182,
195195
},
196196
{
197197
added: true,
198198
line: ' resource: this.#path,',
199-
lineNumber: 184,
199+
lineNumber: 183,
200200
},
201201
],
202202
},
@@ -209,37 +209,36 @@ test('parses a complex patch', () => {
209209
{
210210
added: true,
211211
line: ' #path = null',
212-
lineNumber: 40,
212+
lineNumber: 39,
213213
},
214214
{
215215
added: false,
216216
line: ' constructor(request, stage, payload) {',
217-
lineNumber: 44,
217+
lineNumber: 43,
218218
},
219219
{
220220
added: true,
221221
line: ' constructor(request, stage, payload, path) {',
222-
lineNumber: 45,
222+
lineNumber: 44,
223223
},
224224
{
225225
added: true,
226226
line: ' this.#path = path',
227-
lineNumber: 46,
227+
lineNumber: 45,
228228
},
229229
{
230230
added: false,
231231
line: ' resourcePath: this.#request.route.path,',
232-
lineNumber: 110,
232+
lineNumber: 109,
233233
},
234234
{
235235
added: true,
236236
line: ' resourcePath: this.#path,',
237-
lineNumber: 112,
237+
lineNumber: 111,
238238
},
239239
],
240240
},
241241
],
242-
243242
})
244243
})
245244

@@ -284,17 +283,17 @@ test('parses a add and delete patch', () => {
284283
{
285284
added: false,
286285
line: '# stars-in-motion',
287-
lineNumber: 2,
286+
lineNumber: 1,
288287
},
289288
{
290289
added: false,
291290
line: '',
292-
lineNumber: 3,
291+
lineNumber: 2,
293292
},
294293
{
295294
added: false,
296295
line: 'A canvas full of stars',
297-
lineNumber: 4,
296+
lineNumber: 3,
298297
},
299298
],
300299
},
@@ -307,24 +306,24 @@ test('parses a add and delete patch', () => {
307306
{
308307
added: true,
309308
line: '# stars-in-motion',
310-
lineNumber: 2,
309+
lineNumber: 1,
311310
},
312311
{
313312
added: true,
314313
line: '',
315-
lineNumber: 3,
314+
lineNumber: 2,
316315
},
317316
{
318317
added: true,
319318
line: 'A canvas full of stars.',
320-
lineNumber: 4,
319+
lineNumber: 3,
321320
},
322321
],
323322
},
324323
],
325324
})
326325
})
327326

328-
test('parses a complex patch', () => {
327+
test('parses a complex patch 2', () => {
329328
parse(data['complex.patch'])
330329
})

0 commit comments

Comments
 (0)