• Stars
    star
    679
  • Rank 66,532 (Top 2 %)
  • Language
    JavaScript
  • License
    BSD 3-Clause "New...
  • Created almost 8 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

Node.js workflow codecov jsdoc npmversion npm Dependabot enabled 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 Tidelift

Ramda Adjunct Tweet

Ramda Adjunct is the most popular and most comprehensive set of functional 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.

Follow Ramda Adjunct on medium.com/ramda-adjunct to read latest news and articles about the library.

Tidelift Get professionally supported ramda-adjunct with Tidelift Subscription.

Getting Started

Installation

npm i ramda-adjunct

or

yarn add ramda-adjunct

Usage

ES6

import * as RA from 'ramda-adjunct'

RA.isArray([]);

or

import { isArray } from 'ramda-adjunct';

isArray([]);

Node

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

RA.isArray([]);

or

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

isArray([]);

Web browser

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

or

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

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

RA.isArray([]);

Motivation

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.

Benefits

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.

Requirements

  • ramda >= 0.29.0
  • node >= 0.10.48

Ramda Adjunct is being automatically tested against all LTS and Current Node.js versions.

Legacy builds

We are building our npm distributions using Webpack/Babel to support legacy versions of node starting from 0.10.48. Although all tests are run against all LTS and Current Node.js versions, we rely on Webpack/Babel 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, PREVIOUS, ALL VERSIONS

Wrote about us

Contributing

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 tests in browser

 $ npm run test:web

Running compatibility tests for supported ramda versions

 $ npm run test:ramda

Running code coverage numbers

 $ npm run coverage

Running linter

We're using eslint and airbnb codestyle rules with prettier integrated as an eslint plugin.

 $ npm run lint

Builds

 $ 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 exposed as artifacts of GitHub Actions.

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.

Author

char0n (Vladimir Gorej)

[email protected]

https://www.linkedin.com/in/vladimirgorej/

Contributors

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 or Github Sponsors.

Support via Open Collective

Backers

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

Sponsors

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

License

FOSSA Status

More Repositories

1

ffmpeg-php

FFmpegPHP is a pure OO PHP port of ffmpeg-php library that was written in C. It adds an easy to use, object-oriented API for accessing and retrieving information from video and audio files. It has methods for returning frames from movie files as images that can be manipulated using PHP's image functions. This works well for automatically creating thumbnail images from movies. FFmpegPHP is also useful for reporting the duration and bitrate of audio files (mp3, wma...). FFmpegPHP can access many of the video formats supported by ffmpeg (mov, avi, mpg, wmv...)
PHP
490
star
2

django-profiler

django-profiler is util for profiling python code mainly in django projects but can be used also on ordinary python code. It counts sql queries a measures time of code execution. It logs its output via standard python logging library and uses logger profiling. If your profiler name doesn't contain any empty spaces e.g. Profiler('Profiler1') django-profiler will log all the output to the profiling.Profiler logger.
Python
57
star
3

swagger-editor-validate

This GitHub Actions validates OpenAPI (OAS) definition file using Swagger Editor.
JavaScript
32
star
4

http-request-in-editor

Reference implementation of HTTP Request in Editor Specification https://github.com/JetBrains/http-request-in-editor-spec
JavaScript
31
star
5

json-api-merge

JSON:API specific algorithm for merging included resources into original data.
JavaScript
22
star
6

lerna-monorepo-taming

This monorepo implements current practices and conventions used while building monorepos using Lerna
JavaScript
20
star
7

pybrowscap

Detection of browser capabilities (css, applets, javascript, ...) and features based on browscap file
Python
15
star
8

react-reusable-features

POC of creating reusable features in React + Redux ecosystem
JavaScript
13
star
9

monad-t

Transformers for monadic algebraic structures bridging types from various monadic libraries (Fluture, monet)
JavaScript
12
star
10

django-brevisurl

Django app for shortening urls
Python
9
star
11

swagger-adjust

Pluggable framework for creating extendable React+Redux applications
JavaScript
8
star
12

page-objects

Demonstration source code of "e2e (End-To-End) testing done properly series" article
JavaScript
8
star
13

django-pybrowscap

pybrowscap middlware for django
Python
4
star
14

openapi-runtime-expression

OpenAPI Runtime Expressions parser and validator.
JavaScript
4
star
15

i18next-test

POC of using i18next + react binding + extracting tool
JavaScript
3
star
16

angular-toastr-flash

Flashing support for https://github.com/Foxandxss/angular-toastr
3
star
17

log4django

logging platform for django projects
JavaScript
3
star
18

django-gearman-proxy

Proxy backends/workers for asynchronous email and sms sending using gearman as message queue.
Python
3
star
19

postgresql-czech-fulltext

PostgreSQL Docker image with Czech language fulltext search support
Shell
3
star
20

qencode

Full featured video transcoding using the Qencode API that can be easily modified for your website or application.
Elixir
3
star
21

json-parsers

Monorepo containing research for various json-parsers
JavaScript
2
star
22

vladimirgorej.com

Personal Website of Vladimír Gorej
HTML
2
star
23

log4php-Gearman

log4php-Gearman is log4php appender to Gearman job server.
PHP
2
star
24

char0n

Living and self-updating GitHub profile
JavaScript
2
star
25

morcom

Volkov Commander like file manager written in QBasic almost 20 years ago
Visual Basic
2
star
26

jmdb

jmdb is a real time parser for retrieving information from imdb.com.
Java
1
star
27

apidom-validate

This GitHub Action validates OpenAPI 3.x.y / AsyncAPI 2.x definition file using ApiDOM Language Service.
JavaScript
1
star
28

mx-scanner

Scanner for domains mx records
1
star
29

asyncapi-runtime-expression

AsyncAPI Runtime Expressions parser and validator.
JavaScript
1
star
30

swagger-ui-dist-vite

This repo serves as POC of integrating SwaggerUI dist fragments with vite + vue.js.
Vue
1
star
31

rifas

Rapid Internet File Allocation Service
Java
1
star