What is simple-swizzle?
The simple-swizzle npm package is a utility for handling argument swizzling. It allows developers to manipulate and reorder function arguments easily, which can be particularly useful in scenarios where functions expect arguments in a specific order or format.
What are simple-swizzle's main functionalities?
Swizzle function arguments
This feature allows developers to reorder the arguments of a function dynamically. The example shows how to use simple-swizzle to create a new function where the order of arguments can be changed by passing an array.
const swizzle = require('simple-swizzle');
function originalFunction(a, b, c) {
console.log(a, b, c);
}
const swizzledFunction = swizzle(originalFunction);
swizzledFunction('first', 'second', 'third'); // Logs: first, second, third
swizzledFunction(['second', 'third', 'first']); // Logs: second, third, first
Other packages similar to simple-swizzle
lodash
Lodash is a comprehensive utility library that offers similar functionalities through methods like _.rearg, which creates a function that invokes the provided function with arguments arranged according to the specified indexes. Compared to simple-swizzle, lodash is more extensive and includes a wide range of utilities beyond argument manipulation.
rearg
The rearg package is specifically focused on rearranging function arguments, similar to simple-swizzle. It provides a straightforward approach to argument reordering but does not include the broader utility context that simple-swizzle might be used in conjunction with.
NOTE: ⚠️ Don't use this package in new projects. It is a huge anti-pattern and will only confuse and annoy people who use whatever code you write with it. I wrote this in a time when Javascript and Node.js were still pretty experimental and clever things like this weren't frowned upon. I've also learned a LOT about proper API design since I wrote this package. DO. NOT. USE. THIS. PACKAGE. If you're reaching for it, please really reconsider your API's design.
simple-swizzle

Swizzle your function arguments; pass in mixed arrays/values and get a clean array
Usage
var swizzle = require('simple-swizzle');
function myFunc() {
var args = swizzle(arguments);
return args;
}
myFunc(1, [2, 3], 4);
myFunc(1, 2, 3, 4);
myFunc([1, 2, 3, 4]);
Functions can also be wrapped to automatically swizzle arguments and be passed
the resulting array.
var swizzle = require('simple-swizzle');
var swizzledFn = swizzle.wrap(function (args) {
return args;
});
swizzledFn(1, [2, 3], 4);
swizzledFn(1, 2, 3, 4);
swizzledFn([1, 2, 3, 4]);
License
Licensed under the MIT License.
You can find a copy of it in LICENSE.