Ramda Adjunct is the most popular and most comprehensive set of utilities for use with Ramda, providing a variety of useful, well tested functions with excellent documentation.
Failed to load latest commit information.
.circleci chore(package-lock): drop package locking Dec 29, 2017
.github chore: activating Open Collective (#332) Feb 4, 2018
scripts chore(git): add support for pre-commit hooks Feb 24, 2018
src docs(dropArgs): make example more understandable Sep 8, 2018
test feat: add dropArgs Sep 8, 2018
.babelrc build: annotate function calls as pure for better dead code eliminati… Nov 26, 2017
.codeclimate.yml style: enable eslint rule for ramda both vs either (#439) Mar 23, 2018
.commitlintrc.json chore(commitlint): disable case linting for subjects Jul 19, 2018
.editorconfig feat: isNotGeneratorFunction Mar 5, 2017
.eslintignore chore(eslint): Add tmp-test-bundle.js in .gitignore file Jan 23, 2018
.eslintrc style(eslint): enforce single quotes May 16, 2018
.gitattributes chore(eslint): setup linting Feb 8, 2017
.gitignore build(npm): use prepare instead of prepublishOnly hook Sep 10, 2017
.npmignore chore(npm): add tslint.json into npm ignore Mar 19, 2018
.npmrc build(npm): use package-lock.json to verify integrity Sep 9, 2017
.nycrc build(nyc): fix coverage report Apr 4, 2017
.prettierignore refactor(prettier): integrate prettier (#360) Feb 18, 2018
.prettierrc refactor(prettier): integrate prettier (#360) Feb 18, 2018
CHANGELOG.md chore(release): cut the v2.10.0 release Sep 9, 2018
CODE_OF_CONDUCT.md chore: add code of conduct Jun 30, 2017
CONTRIBUTING.md docs(opencollective): add absolute links for contributors graphs Feb 5, 2018
GOVERNANCE.md docs(GOVERNANCE.md): add governance guidelines Jul 25, 2017
LICENSE.md chore(LICENSE): use uptodate BSD 3-Clause License template Aug 5, 2018
README.md chore(release): cut the v2.10.0 release Sep 9, 2018
RELEASE.md docs(RELEASE): fix typo in branch name Jun 23, 2018
codecov.yml ci(codecov): ignore test directory Nov 29, 2017
jsdoc.js chore(prettier): integrate prettier with eslint and property configur… ( Feb 19, 2018
jsdoc.json docs(jsdoc): add try link in generated docs Aug 7, 2017
package.json chore(package): update prettier to version 1.14.3 Sep 20, 2018
testem.json chore(package): update sinon to v6.0.0 (#611) Jun 20, 2018
tonicExample.js build(runkit): add tonic example file Mar 19, 2017
tsconfig.json initial attempt at adding typings, fixes #30 Feb 28, 2017
tslint.json refactor(prettier): integrate prettier (#360) Feb 18, 2018
webpack.config-test.web.js chore(package): update sinon to v6.0.0 (#611) Jun 20, 2018
webpack.config.js chore(webpack): ammend configs to conform version 4.5.0 Apr 8, 2018


CircleCI codecov jsdoc npmversion npm devDependenciesStatus peerDependenciesStatus NSPStatus Greenkeeper badge startwithwhy contributions welcome try on RunKit FOSSA Status Backers on Open Collective Sponsors on Open Collective Join the chat at https://gitter.im/ramda-adjunct/Lobby Open Source Helpers

Ramda Adjunct

Ramda Adjunct is the most popular and most comprehensive set of utilities for use with Ramda, providing a variety of useful, well tested functions with excellent documentation.

For a full list of functions see the Documentation For The Latest Release.

Adjunct is a thing added to something else as a supplementary rather than an essential part. And that something is being ramda.


npm i ramda-adjunct


yarn add ramda-adjunct



import * as RA from 'ramda-adjunct'



import { isArray } from 'ramda-adjunct';



const RA = require('ramda-adjunct');



const { isArray } = require('ramda-adjunct');


Web browser

<script src="ramda.js"></script>
<script src="RA.web.js"></script>


<script src="RA.web.standalone.js"></script>

Including Ramda Adjunct into HTML document exposes global variable RA on window object.



It's very common for people to create their own utils and recipes by composing Ramda's functions and creating more complex aggregate functions. Ramda Adjunct eliminates this repetitive wheel of reinvention and centralizes commonly used and useful utils.


1. Centralization

All Ramda recipes and aggregate utils not present in Ramda are centralized here. There is no more need for everybody to create their own utils in their own libraries or in each codebases.

2. Tests

Ramda Adjunct maintains maximal code coverage and mimics Ramda's test patterns. You can trust our functions.

3. Impeccable documentation

You cannot call a library great if it lacks great documentation. Ramda Adjunct generates its documentation directly from its codebase and uses patterns found in both Ramda and Lodash to document its API.

Do you want to find out more about why this library exists ? Read this article.


  • ramda >= 0.19.0
  • node >= 0.10.48

Ramda Adjunct is being automatically tested against node version >=6 <=9.

Legacy builds

We are building our npm distributions using Webpack to support legacy versions of node starting from 0.10.48. Although all tests are run against node version >=4 <=8, we rely on Webpack to transpile ramda-adjunct into legacy ES5. It is also possible that our ES5 distributions run on node versions older than 0.10.48 as long as they support ES5.

API Documentation

LATEST, 2.9.0, 2.8.0, 2.7.0, 2.6.0, 2.5.0, 2.4.1, 2.4.0, 2.3.0, 2.2.0, 2.1.0, 2.0.0, 1.19.0, 1.18.0, 1.17.0, 1.16.0, 1.15.0, 1.14.0, 1.13.0, 1.12.0, 1.11.0, 1.10.2, 1.10.1, 1.10.0, 1.9.0, 1.8.1, 1.8.0, 1.7.0, 1.6.0, 1.5.0, 1.4.0, 1.3.2, 1.3.1, 1.3.0, 1.2.0, 1.1.0, 1.0.0, 0.7.0, 0.6.0, 0.5.1, 0.4.0, 0.3.0, 0.2.0, 0.1.0, 0.0.1


If you want to contribute to this project, please consult the CONTRIBUTING.md guidelines.

Obtaining project copy

 $ git clone https://github.com/char0n/ramda-adjunct
 $ npm i

Running tests

 $ npm run test

Running linter

 $ npm run lint


 $ npm run build:es

If you use a bundler that supports tree shaking and ES2015 imports. package.json is automatically pre-configured to tell ES2015 import to import from this directory.

es/* - ES5 code containing ES2015 imports.

 $ npm run build:commonjs

If you use node to import ramda-adjunct. package.json is automatically pre-configured to tell require to import from this directory.

lib/* - ES5 code containing commonjs imports.

 $ npm run build:umd

The command will create three types of bundles.

dist/RA.node.js - ES5 compliant bundle, running on all node versions.

dist/RA.web.js - ES5 compliant bundle, running in browsers. Requires ramda.js to be required before.

dist/RA.web.standalone.js - ES5 compliant bundle, running in browsers. It has ramda.js pre-bundled.

You can always find fresh build files in circle-ci artifacts.

Tree shaking support

Tree shaking is a term commonly used in a JavaScript context for dead-code elimination. It relies on the static structure of ES2015's module syntax, i.e. import and export. Ramda Adjunct natively supports tree shaking thanks to the way the code is organized and its use of ES2015 imports.

  import * as RA from 'ramda-adjunct';

  RA.isArray([]); //=> true
  import { isArray } from 'ramda-adjunct';

  isArray([]); //=> true

These two statements are equivalent and only isArray should be incorporated into your bundle. You can pick and choose the functions you need without worrying about the whole library being included in your build.

Assimilated libraries

  • rcb - Ramda Cookbook implementation

Typescript support

Although Ramda Adjunct is written in ES2016, we also support Typescript. When Ramda Adjunct gets imported into a Typescript project, typings are automatically imported and used.


char0n (Vladimir Gorej)




This project exists thanks to all the people who contribute. [Contribute].

Support us

Although we love working on ramda-adjunct, we must invest our free time to make this library great. Support this project's evolution via Open Collective.

Support via Open Collective


Thank you to all our backers! 🙏 [Become a backer]


Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]


FOSSA Status