New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

collapse-array

Package Overview
Dependencies
Maintainers
1
Versions
5
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

collapse-array - npm Package Compare versions

Comparing version 1.0.1 to 2.0.0

deep.js

34

index.js

@@ -1,31 +0,9 @@

var collapse = function(array) {
for (var i = 0, l = array.length; i < l; i++) {
if (array[i] instanceof Array) {
array[i] = collapse(array[i])
}
}
return (l > 1 ? array :
l === 1 ? array[0] :
module.exports = function (array) {
var length = array.length
return (
length > 1 ? array :
length === 1 ? array[0] :
null
)
}
module.exports = function collapser(object) {
if (object instanceof Array) {
return collapse(object)
}
else if (object instanceof Object) {
for (var item in object) {
if (object[item] instanceof Array) {
object[item] = collapse(object[item])
}
else if (object[item] instanceof Object) {
object[item] = collapser(object[item])
}
}
return object
}
return object
}
{
"name": "collapse-array",
"version": "1.0.1",
"version": "2.0.0",
"description": "A simple utility for collapsing single-element arrays.",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -16,2 +16,4 @@ # collapse-array

var collapse = require('collapse-array')
var collapseDeep = require('collapse-array/deep')
var collapseObj = require('collapse-array/object')

@@ -21,12 +23,12 @@ collapse([4])

collapse([[[[2],[3]]]])
// => [2, 3]
collapse([1, 2, 3])
// => [1, 2, 3]
collapse({
collapseDeep([[[[2],[3]]]])
// => [2, 3]
collapseObj({
a: 123,
b: [['one'], ['two', 'three'], ['four']],
c: function() {
c: function () {
return 'hello'

@@ -39,3 +41,3 @@ }

b: ['one', ['two', 'three'], 'four'],
c: function() {
c: function () {
return 'hello'

@@ -42,0 +44,0 @@ }

@@ -1,19 +0,32 @@

var run = require('tape').test
var run = require('tape')
var JSON = require('json3')
var collapse = require('../')
var collapseDeep = require('../deep')
var collapseObject = require('../object')
run('Array', function(test) {
run('Basic', function (test) {
var a = [1, 2, 3]
var b = [4]
var c = [[[[2],[3]]]]
var d = []
var c = []
test.equal(collapse(a), a)
test.equal(collapse(b), b[0])
test.deepEqual(collapse(c), [2, 3])
test.equal(collapse(d), null)
test.equal(collapse(c), null)
test.end()
})
run('Object', function(test) {
run('Deep', function (test) {
var a = [1, 2, 3]
var b = [4]
var c = [[[[2],[3]]]]
var d = []
test.equal(collapseDeep(a), a)
test.equal(collapseDeep(b), b[0])
test.deepEqual(collapseDeep(c), [2, 3])
test.equal(collapseDeep(d), null)
test.end()
})
run('Object', function (test) {
var source = {

@@ -23,3 +36,3 @@ a: [1, 2, 3],

c: ['foo'],
d: function() {
d: function () {
return 'hello'

@@ -35,3 +48,3 @@ },

c: 'foo',
d: function() {
d: function () {
return 'hello'

@@ -44,3 +57,3 @@ },

test.equal(
JSON.stringify(collapse(source)),
JSON.stringify(collapseObject(source)),
JSON.stringify(expected)

@@ -50,43 +63,1 @@ )

})
run('Deep Object', function(test) {
var source = {
a: [1, 2, 3],
b: [4],
c: ['foo'],
d: function() {
return 'hello'
},
e: ['bar', ['baz']]
}
var f = {}
for (var key in source) {
f[key] = source[key]
}
source.f = f
var expected = {
a: [1, 2, 3],
b: 4,
c: 'foo',
d: function() {
return 'hello'
},
e: ['bar', 'baz']
}
var f = {}
for (var key in expected) {
f[key] = expected[key]
}
expected.f = f
test.equal(
JSON.stringify(collapse(source)),
JSON.stringify(expected)
)
test.end()
})
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc