Skip to content

Commit 23fd4a1

Browse files
committed
fix: remove BOM
1 parent 7d39025 commit 23fd4a1

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/properties.spec.ts

+8
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,14 @@ describe('parse', () => {
1717
'extra'
1818
])
1919
})
20+
21+
it('should remove BOM', () => {
22+
const sample = '\ufefffoo=bar\n#test'
23+
24+
// Test
25+
const result = properties.parse(sample)
26+
expect(result.lines).toEqual(['foo=bar', '#test'])
27+
})
2028
})
2129

2230
describe('stringify', () => {

src/properties.ts

+6-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,11 @@ export const parse = (contents: string): Properties => {
4242
lines.pop()
4343
}
4444

45+
// Remove BOM from the first line
46+
if (lines.length > 0 && lines[0].codePointAt(0) === 0xfeff) {
47+
lines[0] = lines[0].slice(1)
48+
}
49+
4550
return {lines}
4651
}
4752

@@ -473,7 +478,7 @@ const parseUnicode = (sequence: string, line: number): string => {
473478
if (!sequence.match(/^0x[\da-fA-F]{4}$/)) {
474479
throw new Error(`Invalid unicode sequence at line ${line}`)
475480
}
476-
return String.fromCharCode(parseInt(sequence, 16))
481+
return String.fromCodePoint(parseInt(sequence, 16))
477482
}
478483

479484
/**

0 commit comments

Comments
 (0)