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

object-to-arguments

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

object-to-arguments - npm Package Compare versions

Comparing version 0.0.8 to 0.1.0

8

package.json
{
"name": "object-to-arguments",
"version": "0.0.8",
"version": "0.1.0",
"description": "Transforms object's properties into an array of arguments tailored for a specific function, respecting the expected order and handling destructuring and rest parameters when needed.",

@@ -22,11 +22,11 @@ "main": "./lib/object-to-arguments.js",

"dependencies": {
"inspect-parameters-declaration": "0.0.10",
"inspect-parameters-declaration": "0.1.0",
"magicli": "0.0.5",
"split-skip": "0.0.2",
"stringify-parameters": "0.0.4",
"stringify-parameters": "0.0.7",
"unpack-string": "0.0.2"
},
"devDependencies": {
"mocha": "^3.5.0"
"mocha": "^5.2.0"
}
}

@@ -46,2 +46,6 @@ 'use strict';

const asyncFnRest = async function(a = 'dA', b, ...args) {
return { a, b, args};
};
const fnWithComplexParams = function([a, [b = 'dB', [c, [d,e] = ['dD', 'dE'] ]]] = ['dA', ['dB', ['dC', ]]], {f} = {}, {g = 'dG'} = {}, {h: {i} = {}} = {},{j: {k = 'dK'} = {}} = {},{l: {m, n: {o} = {}} = {}} = {}, {p,q = 'dQ', r} = {}, [[[s,{t: {u} = {}} = {}]]] = [[[]]], {v: [{w} = {}, x = 'dX'] = []} = {}) {

@@ -71,2 +75,27 @@ return {

const asyncFnWithComplexParams = async function([a, [b = 'dB', [c, [d,e] = ['dD', 'dE'] ]]] = ['dA', ['dB', ['dC', ]]], {f} = {}, {g = 'dG'} = {}, {h: {i} = {}} = {},{j: {k = 'dK'} = {}} = {},{l: {m, n: {o} = {}} = {}} = {}, {p,q = 'dQ', r} = {}, [[[s,{t: {u} = {}} = {}]]] = [[[]]], {v: [{w} = {}, x = 'dX'] = []} = {}) {
return {
a,
b,
c,
d,
e,
f,
g,
i,
k,
m,
o,
p,
q,
r,
s,
u,
w,
x,
argumentsArray: Array.from(arguments)
};
};
const tests = {

@@ -208,2 +237,121 @@ 'Function defined without parameters with no arguments': {

'All expected arguments plus some extra ones': {
fn: asyncFnWithComplexParams,
input: {
a: 'aA',
b: 'aB',
c: 'aC',
d: 'aD',
e: 'aE',
f: 'aF',
g: 'aG',
h: 'aH',
i: 'aI',
j: 'aJ',
k: 'aK',
l: 'aL',
m: 'aM',
n: 'aN',
o: 'aO',
p: 'aP',
q: 'aQ',
r: 'aR',
s: 'aS',
u: 'aU',
v: 'aV',
w: 'aW',
x: 'aX',
extra1: 'EXTRA1',
extra2: 'EXTRA2',
extra3: 'EXTRA3'
},
output: Promise.resolve({
"a": "aA",
"b": "aB",
"c": "aC",
"d": "aD",
"e": "aE",
"f": "aF",
"g": "aG",
"i": "aI",
"k": "aK",
"m": "aM",
"o": "aO",
"p": "aP",
"q": "aQ",
"r": "aR",
"s": "aS",
"u": "aU",
"w": "aW",
"x": "aX",
"argumentsArray": {
"0": [
"aA", [
"aB", [
"aC", [
"aD",
"aE"
]
]
]
],
"1": {
"f": "aF"
},
"2": {
"g": "aG"
},
"3": {
"h": {
"i": "aI"
}
},
"4": {
"j": {
"k": "aK"
}
},
"5": {
"l": {
"m": "aM",
"n": {
"o": "aO"
}
}
},
"6": {
"p": "aP",
"q": "aQ",
"r": "aR"
},
"7": [
[
[
"aS", {
"t": {
"u": "aU"
}
}
]
]
],
"8": {
"v": [{
"w": "aW"
},
"aX"
]
},
"9": "aH",
"10": "aJ",
"11": "aL",
"12": "aN",
"13": "aV",
"14": "EXTRA1",
"15": "EXTRA2",
"16": "EXTRA3"
}
})
},
'Undefined argument (must preserve all default values)': {

@@ -347,2 +495,17 @@ fn: fnWithComplexParams,

'Async Rest parameter must set the the arguments and passed in all the extra args': {
fn: asyncFnRest,
input: {
b: 'aB',
extra1: 'EXTRA1',
args: ['restArgA', 'restArgB'],
extra2: 'EXTRA2'
},
output: Promise.resolve({
a: 'dA',
b: 'aB',
args: ['restArgA', 'restArgB', 'EXTRA1', 'EXTRA2']
})
},
'Rest parameter must set the expected parameters passed in and leave the rest for the rest parameter': {

@@ -360,3 +523,18 @@ fn: fnRest,

}
},
'Async Rest parameter must set the expected parameters passed in and leave the rest for the rest parameter': {
fn: asyncFnRest,
input: {
b: 'aB',
extra1: 'EXTRA1',
extra2: 'EXTRA2'
},
output: Promise.resolve({
a: 'dA',
b: 'aB',
args: ['EXTRA1', 'EXTRA2']
})
}
};

@@ -363,0 +541,0 @@

Sorry, the diff of this file is not supported yet

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