Skip to content
This repository was archived by the owner on May 4, 2024. It is now read-only.

Commit ac771d8

Browse files
committed
fix: Strip underscore prefixed fields from file contents
cc: @kumavis Related-to: npm/arborist#242 Credit: @isaacs Reviewed-by: @nlf
1 parent 9f7049d commit ac771d8

3 files changed

Lines changed: 27 additions & 0 deletions

File tree

read-json.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,11 @@ function parseJson (file, er, d, log, strict, cb) {
9595

9696
try {
9797
data = safeJSON(stripBOM(d))
98+
for (var key in data) {
99+
if (/^_/.test(key)) {
100+
delete data[key]
101+
}
102+
}
98103
} catch (er) {
99104
data = parseIndex(d)
100105
if (!data) return cb(parseError(er, file))

test/fixtures/underscores.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"name": "underscore",
3+
"version": "1.2.3",
4+
"_lodash": true
5+
}

test/underscores.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
const t = require('tap')
2+
const rpj = require('../')
3+
const { resolve } = require('path')
4+
const fixture = resolve(__dirname, 'fixtures/underscores.json')
5+
t.test('strip underscores', t => {
6+
rpj(fixture, (er, data) => {
7+
if (er)
8+
throw er
9+
t.strictSame(data, {
10+
11+
name: 'underscore',
12+
version: '1.2.3',
13+
readme: 'ERROR: No README data found!'
14+
})
15+
t.end()
16+
})
17+
})

0 commit comments

Comments
 (0)