curry-method
v0.2.0
Published
A lightweight module that helps you curry any methods and use them in a pipe.
Downloads
17
Maintainers
Readme
curryMethod.js
A lightweight module that helps you curry any methods and use them in a pipe and function composition.
//Curry element.classList.add()
const addClass = curryMethod(1, 'classList.add')
const removeClass = curryMethod(1)('classList.remove')
const element = document.getElementById('test-id')
//Both would work, just like those curried functions provided by Ramda
addClass('first-class')(element)
removeClass('second-class', element)
//These functions is identical with element.classList.add('first-class')
Why do you want to curry methods?
By currying methods, you can easily create partial functions, make it work in a pipe and reuse your code to a greater extent.
Installation
With npm:
npm i curry-method
Or via CDN:
<script defer src="https://unpkg.com/browse/curry-method/dist/index.esm.js"></script>
<script defer src="https://unpkg.com/browse/curry-method/dist/index.cjs.js"></script>
Or directly include the script in you site:
<script defer src="/path/to/your/dir/index.esm.js"></script>
Then in the script where you want to use this library:
import {
curryMethod
} from 'curry-method'
API Reference
curryMethod(arity, methodPath)(...args)
This function will curry a method and turn it into a function.
arity
: Number
Indicate the number of argument to be received by the methods.
Note that you should not count the obj
, which is the final argument in with this number
methodPath
: String
Indicate the path to access methods. For example classList.add
and setAttribute
.
...args
: Any
Arguments you want to pass to the curried methods. The number of argument should match with arity
. The last element should be the object which has the method for you to access.
getArg(indice, fn)(...args)(obj)
This function will make a function return a specific argument, based on the indice.
indice
: Number
Indicate the position of argument you want the function to return from the array args
methodPath
: String
Indicate the path to access methods. For example classList.add
and setAttribute
.
...args
: Any
Arguments you want to pass to fn