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

sergeant

Package Overview
Dependencies
Maintainers
1
Versions
142
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

sergeant - npm Package Compare versions

Comparing version 15.2.1 to 15.3.0

4

package.json
{
"name": "sergeant",
"version": "15.2.1",
"version": "15.3.0",
"description": "",

@@ -24,3 +24,3 @@ "main": "main.js",

"nyc": "^10.0.0",
"standard": "^9.0.0",
"standard": "^10.0.0",
"tape": "^4.6.0"

@@ -27,0 +27,0 @@ },

@@ -133,4 +133,5 @@ const chalk = require('chalk')

const parameterKeys = Object.keys(definitions).filter((key) => Number.isInteger(Number(key)))
const hasMultiple = parameterKeys.filter((key) => definitions[key].multiple).length > 0
if (remainder.length > parameterKeys.length) {
if (!hasMultiple && remainder.length > parameterKeys.length) {
throw new Error('too many arguments')

@@ -141,4 +142,5 @@ }

const definition = definitions[key]
const remainingKeys = parameterKeys.length - 1 - key
if (remainder[key] == null) {
if (!remainder.length) {
if (definition.default != null) {

@@ -151,6 +153,12 @@ args[definition.property] = definition.default

}
} else if (definition.multiple === true) {
args[definition.property] = remainder.splice(0, remainder.length - remainingKeys)
if (definition.type) {
args[definition.property] = args[definition.property].map((v) => definition.type(v))
}
} else if (definition.type) {
args[definition.property] = definition.type(remainder[key])
args[definition.property] = definition.type(remainder.shift())
} else {
args[definition.property] = remainder[key]
args[definition.property] = remainder.shift()
}

@@ -157,0 +165,0 @@ })

@@ -13,3 +13,3 @@ const test = require('tape')

t.plan(12)
t.plan(15)

@@ -109,2 +109,52 @@ // test dashdash and parameter

}), {'0': 'testing', '1': 'yes'})
// test multiple param beginning
t.deepEquals(parse(['1', '2', '3', '4', '5', '6', '7', '8', '9'], {
'0': {
type: Number,
key: 'test0',
multiple: true
},
'1': {
type: Number,
key: 'test1'
},
'2': {
type: Number,
key: 'test2'
}
}), {'test0': [1, 2, 3, 4, 5, 6, 7], 'test1': 8, 'test2': 9})
// test multiple param middle. No type
t.deepEquals(parse(['1', '2', '3', '4', '5', '6', '7', '8', '9'], {
'0': {
type: Number,
key: 'test0'
},
'1': {
key: 'test1',
multiple: true
},
'2': {
type: Number,
key: 'test2'
}
}), {'test0': 1, 'test1': ['2', '3', '4', '5', '6', '7', '8'], 'test2': 9})
// test multiple param end
t.deepEquals(parse(['1', '2', '3', '4', '5', '6', '7', '8', '9'], {
'0': {
type: Number,
key: 'test0'
},
'1': {
type: Number,
key: 'test1'
},
'2': {
type: Number,
key: 'test2',
multiple: true
}
}), {'test0': 1, 'test1': 2, 'test2': [3, 4, 5, 6, 7, 8, 9]})
})

@@ -111,0 +161,0 @@

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