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

yank-down

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

yank-down

Rearrange curried arguments

  • 0.1.0
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
0
decreased by-100%
Maintainers
1
Weekly downloads
 
Created
Source

Yank Down

Have you ever been unsure what value to pass first?

const divide = numerator => denominator => numerator/denominator;

but later found to your horror that it would have been better the other way around?

const needToBeDividedBy3 = [1,3,4,5,2];

const wrongAnswer = needToBeDivided.map(divide(3));
                                     // ^^^^^^^^^
                                     // not this would 3/number :/

Well then, say hello to yankDown.

import { yankDown } from 'yank-down'; // import yankDown

const flippedDivide = yankDown(divide)(1); // yank arg 1 to be first arg

const correctAnswer = needToBeDivided.map(flippedDivide(3));
                                       // ^^^^^^^^^^^^^^^^
                                       // arg 1 yanked down to arg 0 pos

AMAZING!!!

Multi-Parameter Functions

Yank Down will even work with multi-parameter functions.


const factoryFactory =
  (factoryName, factoryConfig = {}) =>
    (objProps = {}) =>
      { ...objProps, factoryConfig, type: factoryName }

const flippedFF = yankDown(factoryFactory)(1); // yankDown properly flips calls

SO CONVENIENT~~~~

Arbitrary Curry Depth

As you would expect, yankDown can work with curried functions of arbitrary depth

const makeArray = one => two => three => [one, two, three];

console.log(makeArray(1)(2)(3)); // [1, 2, 3];

const yankedMakeArray = yankDown(makeArray)(1);

console.log(yankedMakeArray(1)(2)(3)); // [2, 1, 3]

JUST WOW.

FAQs

Package last updated on 01 Apr 2017

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

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