Skip to content
This repository was archived by the owner on Aug 11, 2021. It is now read-only.

Commit 9796aeb

Browse files
author
Thomas Hallock
committed
using clone because JSON.parse(JSON.stringify(...)) errors when given undefined
1 parent 32273ff commit 9796aeb

File tree

3 files changed

+6
-4
lines changed

3 files changed

+6
-4
lines changed

lib/publish.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ var Stream = require('stream').Stream
77
var assert = require('assert')
88
var fixer = require('normalize-package-data').fixer
99
var concat = require('concat-stream')
10+
var clone = require('clone')
1011

1112
function escaped (name) {
1213
return name.replace('/', '%2f')
@@ -75,7 +76,7 @@ function putFirst (registry, data, tarbuffer, access, auth, cb) {
7576

7677
if (!auth.token) {
7778
root.maintainers = [{ name: auth.username, email: auth.email }]
78-
data.maintainers = JSON.parse(JSON.stringify(root.maintainers))
79+
data.maintainers = clone(root.maintainers)
7980
}
8081

8182
root.versions[ data.version ] = data
@@ -166,8 +167,7 @@ function putNext (registry, newVersion, root, current, auth, cb) {
166167
current[i] = root[i]
167168
}
168169
}
169-
var maint = JSON.parse(JSON.stringify(root.maintainers))
170-
root.versions[newVersion].maintainers = maint
170+
root.versions[newVersion].maintainers = clone(root.maintainers)
171171

172172
var uri = url.resolve(registry, escaped(root.name))
173173
var options = {

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
},
1313
"dependencies": {
1414
"chownr": "^1.0.1",
15+
"clone": "^1.0.2",
1516
"concat-stream": "^1.4.6",
1617
"graceful-fs": "^4.1.2",
1718
"mkdirp": "^0.5.0",

test/publish.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ var fs = require('fs')
55
var server = require('./lib/server.js')
66
var common = require('./lib/common.js')
77
var client = common.freshClient()
8+
var clone = require('clone')
89

910
function nop () {}
1011

@@ -142,7 +143,7 @@ test('publish call contract', function (t) {
142143
)
143144

144145
t.test('malformed semver in publish', function (t) {
145-
var metadata = JSON.parse(JSON.stringify(METADATA))
146+
var metadata = clone(METADATA)
146147
metadata.version = '%!@#$'
147148
var params = {
148149
metadata: metadata,

0 commit comments

Comments
 (0)