# ramda-extension

> Helpful functions built on top of the mighty Ramda

Latest version **0.13.0** (published 2025-04-01) · Apache-2.0 license · 0 weekly downloads

## Install

```sh
npm install ramda-extension
pnpm add ramda-extension
yarn add ramda-extension
bun add ramda-extension
```

## Health

**Score 30/100 (F)** — status: maintenance-mode.

Positive: esm support; no vulnerabilities.

Warnings: low downloads; no types; pre 1.0.

Negative: stale; low maintenance score.

## Facts

| | |
|---|---|
| Version | 0.13.0 |
| Published | 2025-04-01 |
| First published | 2016-11-15 |
| Weekly downloads | 0 |
| License | Apache-2.0 |
| TypeScript types | none |
| Module format | ESM + CommonJS |
| Dependencies | 0 |
| Unpacked size | 420.7 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 167 |
| Author | Tomas Konrady |
| Maintainers | tommmyy |
| Keywords | ramda, ramdajs, utils, functional programming, case conversion, PascalCase, dot.case, camelCase, lower first letter, upper first letter, classnames, keymirror, camelizeKeys |

## Links

- npm: https://www.npmjs.com/package/ramda-extension
- Repository: https://github.com/tommmyy/ramda-extension
- Homepage: https://github.com/tommmyy/ramda-extension#readme
- Issues: https://github.com/tommmyy/ramda-extension/issues
- npm.io page: https://npm.io/package/ramda-extension

## Alternatives

- [@mce/gif](https://npm.io/package/@mce/gif.md) — 2.6K weekly downloads
- [cleanse](https://npm.io/package/cleanse.md) — 173 weekly downloads
- [str](https://npm.io/package/str.md) — 127 weekly downloads
- [naming](https://npm.io/package/naming.md) — 95 weekly downloads
- [tap-telco-api](https://npm.io/package/tap-telco-api.md) — 19 weekly downloads

## Recent versions

- 0.13.0 (latest) — 2025-04-01
- 0.12.0 — 2023-04-10
- 0.11.0 — 2021-03-29
- 0.10.3 — 2020-03-05
- 0.10.2 — 2020-03-04
- 0.10.1 — 2019-11-10
- 0.10.0 — 2019-09-10
- 0.9.1 — 2019-08-12
- 0.9.0 — 2019-08-08
- 0.8.0 — 2019-06-13
- 0.7.2 — 2019-01-17
- 0.7.1 — 2018-11-20
- 0.7.0 — 2018-11-20
- 0.6.1 — 2018-10-04
- 0.6.0 — 2018-10-04
- … 20 more at https://npm.io/package/ramda-extension/versions

## README

<p align="center">
  <a href="https://ramda-extension.firebaseapp.com">
    <img alt="Ramda!" src="/ramda_banner.gif" />
  </a>
</p>

<h1 align="center">
  <a href="https://ramda-extension.firebaseapp.com">Ramda extension</a>
</h1>

<h3 align="center">
🤘🤘🤘
</h3>

<h3 align="center">Utility library for functional JavaScript.</h3>

<p align="center">
Library adds utilities functions that are built on the top of marvelous <a href="http://ramdajs.com">Ramda</a> library.
</p>

<p align="center">
  <a href="https://ramda-extension.firebaseapp.com/repl/?v=%5E0.26.1&ve=0.10.2">
    Play wit Ramda and Ramda-extension in REPL.
  </a>
</p>

<p align="center">
  <a href="https://ramda-extension.firebaseapp.com">See our documentation site.</a>
</p>

<p align="center">
  <a href="https://github.com/tommmyy/ramda-extension">
    <img src="https://flat.badgen.net/badge/-/github?icon=github&label" alt="Github" />
  </a>

  <a href="https://github.com/tommmyy/ramda-extension/blob/master/LICENSE">
    <img src="https://flat.badgen.net/badge/license/Apache/blue" alt="Apache-2.0" />
  </a>
  
  <a href="https://travis-ci.org/tommmyy/ramda-extension">
    <img src="https://img.shields.io/travis/tommmyy/ramda-extension/master.svg?style=flat-square" alt="Travis" />
  </a>

  <a href="https://npmjs.com/package/ramda-extension">
    <img src="https://img.shields.io/npm/dm/ramda-extension.svg" alt="Downloads" />
  </a>

  <a href="https://npmjs.com/package/ramda-extension">
    <img src="https://flat.badgen.net/npm/v/ramda-extension" alt="Version" />
  </a>
</p>


```js
import { cx } from 'ramda-extension';

cx({ box: true, 'box--outline': false }, 'width-100'); // ".box .width-100"
```

## Why to choose ramda-extension over other libraries?

We focus on functional point-free code. Our goal is to keep codebase composed only from ramda functions, not from own code. Basically, we are using only `const` and `ES6 modules` from the JavaScript itself.

We have a few functions with side-effects (like `log` and `trace`) to support better developer's experience in debugging process. It is only for development purpose and it should not be used in production code.

## Installation

```bash
$ yarn add ramda ramda-extension
```
or

```bash
$ npm install ramda ramda-extension
```

## Usage

We support CommonJS and ES modules syntax.

Import function as a named export (not recommended without [treeshaking](https://webpack.js.org/guides/tree-shaking/)):

```js
import { toKebabCase } from 'ramda-extension';
import { flatten } from 'ramda'; // standard ramda function (if needed)

toKebabCase('I wanna eat my kebab.') // "i-wanna-eat-my-kebab"
flatten([1, 2, [3, 4], 5]) // [1, 2, 3, 4, 5]
```
* NOTE: standard ramda functions are still accessed via 'ramda'

Alternatively you can import it separately if your environment doesn't support treeshaking (Sse [babel-plugin-transform-imports](https://www.npmjs.com/package/babel-plugin-transform-imports)):

```js
import toKebabCase from 'ramda-extension/lib/toKebabCase';

toKebabCase('I wanna eat my kebab.') // "i-wanna-eat-my-kebab"
```

If you prefer jQuery-style:

```js
import * as R_ from 'ramda-extension'

R_.toKebabCase('I wanna eat my kebab.') // "i-wanna-eat-my-kebab"
```

_NOTE_: Ramda itself is not part of bundle, you need to add it manually

## CDN
You can use Ramda-extension directly in the browser:

```html
<script src="https://cdn.jsdelivr.net/npm/ramda@latest/dist/ramda.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/ramda-extension@latest/dist/ramda-extension.min.js"></script>
```

## Articles & Resources

- [Why are we not afraid to think functionally with Ramda?](https://medium.com/@tyna.kamenicka/why-are-we-not-afraid-to-think-functionally-with-ramda-fb17f733fde8#c898-5ab767b22b17)

## Contributing

Most of the functions have its own tests and examples in the JS Doc.

Feel free to either contribute yourself or submit an issue if there is a bug or you have an idea for a new extension.

We are open to all ideas and suggestions, feel free to open an issue or a pull request!

See the [contribution guide](https://github.com/tommmyy/ramda-extension/blob/master/CONTRIBUTING.md) for guidelines.


## License

All packages are distributed under the Apache 2.0 license. See the license [here](https://github.com/tommmyy/ramda-extension/blob/master/LICENSE).

---
_Source: https://npm.io/package/ramda-extension · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
