Skip to content

Commit 50d1378

Browse files
committed
do not autocomplete on numbers
1 parent 6fe5d4b commit 50d1378

File tree

2 files changed

+15
-9
lines changed

2 files changed

+15
-9
lines changed

common/src/util/__tests__/partial-json-delta.test.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ describe('parsePartialJsonObjectSingle', () => {
4747
const result = parsePartialJsonObjectSingle(input)
4848
expect(result).toEqual({
4949
lastParamComplete: true,
50-
params: { name: 'test', value: 42 },
50+
params: { name: 'test' },
5151
})
5252
})
5353

@@ -216,7 +216,7 @@ describe('getPartialJsonDelta', () => {
216216

217217
describe('basic delta detection from streaming JSON', () => {
218218
it('should detect new properties added to empty object', () => {
219-
const content = '{"name": "test", "value": 42}'
219+
const content = '{ "name": "test", "value": 42 }'
220220
const previous = '{'
221221
const result = getPartialJsonDelta(content, previous)
222222

@@ -242,8 +242,10 @@ describe('getPartialJsonDelta', () => {
242242
const previous = '{"name": "test", "value": 42'
243243
const result = getPartialJsonDelta(content, previous)
244244

245-
expect(result.delta).toEqual({})
245+
expect(result.delta).toEqual({ value: 42 })
246246
expect(result.result).toEqual({ name: 'test', value: 42 })
247+
expect(result.lastParam.key).toBe('value')
248+
expect(result.lastParam.complete).toBe(false)
247249
})
248250

249251
it('should detect new property being added', () => {
@@ -253,6 +255,8 @@ describe('getPartialJsonDelta', () => {
253255

254256
expect(result.delta).toEqual({ value: 100 })
255257
expect(result.result).toEqual({ name: 'test', value: 100 })
258+
expect(result.lastParam.key).toBe('value')
259+
expect(result.lastParam.complete).toBe(false)
256260
})
257261
})
258262

@@ -356,16 +360,16 @@ describe('getPartialJsonDelta', () => {
356360
content = '{"status": "processing", "progress": 0.5'
357361
result = getPartialJsonDelta(content, previous)
358362

359-
expect(result.delta).toEqual({ progress: 0.5 })
360-
expect(result.result).toEqual({ status: 'processing', progress: 0.5 })
363+
expect(result.delta).toEqual({})
364+
expect(result.result).toEqual({ status: 'processing' })
361365

362366
// Complete the JSON
363367
previous = content
364368
content =
365369
'{"status": "processing", "progress": 0.5, "message": "Almost done"}'
366370
result = getPartialJsonDelta(content, previous)
367371

368-
expect(result.delta).toEqual({ message: 'Almost done' })
372+
expect(result.delta).toEqual({ message: 'Almost done', progress: 0.5 })
369373
expect(result.result).toEqual({
370374
status: 'processing',
371375
progress: 0.5,

common/src/util/partial-json-delta.ts

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,11 @@ export function parsePartialJsonObjectSingle(content: string): {
77
return { lastParamComplete: true, params: JSON.parse(content) }
88
} catch (error) {}
99

10-
try {
11-
return { lastParamComplete: true, params: JSON.parse(content + '}') }
12-
} catch (error) {}
10+
if (!content.match(/\d$/)) {
11+
try {
12+
return { lastParamComplete: true, params: JSON.parse(content + '}') }
13+
} catch (error) {}
14+
}
1315

1416
try {
1517
return { lastParamComplete: false, params: JSON.parse(content + '"}') }

0 commit comments

Comments
 (0)