Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

ramdasauce

Package Overview
Dependencies
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

ramdasauce

Utilities for Ramda.

  • 2.1.2
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
16K
increased by13.19%
Maintainers
1
Weekly downloads
 
Created
Source

Ramdasauce

Adds a few utilities based on the delicious Ramda library.

npm module

Installing

npm i ramdasauce --save

  • Depends on ramda 0.24.+.
  • Targets ES5.
  • Built with ES6.

Usage

Here's the quick list of functions and a simple example.

import RS from 'ramdasauce'

// --- Conversions ---
RS.toDate(1e12)             // a Number to a date Object
RS.toNumber('5')            // a String to a Number

// --- Object Shenanigans ---
const x = {a: 1, b: 2, c: {x: [5, 6]}}
RS.mapKeys(R.toUpper, x)    // transforms the keys of an object by the function
RS.dotPath('c.x.0', x)      // fetches a value from a nested object by a string path

// --- Generating Things ---
RS.rangeStep(2, 2, 10)      // generates a range of numbers with a step

// --- Finding Things ---
RS.findByProp('id', 'a', [{id: 'a', id: 'b'}])      // finds an object by propEq
RS.findIndexByProp('id', 'a', [{id: 'a', id: 'b'}]) // finds the index of an object by propEq

// --- Predicates ---
RS.isUndefined(qwerty)      // check if something is undefined
RS.isNotNil(null)           // check if something is not null or undefined
RS.isNilOrEmpty(null)       // checks if something is null, undefined or R.isEmpty
RS.isWithin(1, 2, 2)        // is the 3rd parameter within the range of 1st through 2nd?
RS.isNotWithin(1, 2, 100)   // is the 3rd parameter not within the range of 1st through 2nd?
RS.eqLength([1,2,3], 'abc') // tests 2 things to see if their length properties are the same

Prior Art

Most of these functions were lifted from stuff I wrote in real projects.

(leans in and whispers)

I did look at these tho:

Philosophy

These helper functions target that sweet spot between:

Not right for ramda core.

and

Would never be used outside your app.

Functions being added here must be used in an app. Preferable more than once.

I hope this library won't turn into something like this:

RS.portmanteau('functor', 'wrecked')
RS.yearsForAnimalInAsianCalendars('monkey')

Feedback

Do you have any common ramda patterns you use frequently? Drop some issues or PRs in!

Release Notes

2.1.0 - Aug 12, 2017

  • upgrades to ramda@24.0.1
  • bumped all dev dependencies
  • marked previous mentioned functions with @deprecated in their comments

2.0.0 - May 29, 2017

  • DEPRECATIONS: startsWith and endsWith are flagged for removal in 3.0.0 (ramda has these now)
  • DEPRECATIONS: random and sample are flagged for removal in 3.0.0 (impure functions)
  • DEPRECATIONS: log and trace are flagged for removal in 3.0.0 (impure debug functions)
  • Upgrades to ramda@24.0.0
  • updates build process for much smaller bundle sizes

1.2.0 - February 6, 2017

  • Updates isWithin to play nice with Webpack - @hubciorz (#7)
  • Bumped dependencies - @skellock (#8)

1.1.1 - August 17th, 2016

1.1.0 - June 16th, 2016

1.0.0 - April 3rd, 2016

  • Initial Release

Keywords

FAQs

Package last updated on 14 Dec 2018

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