@vanillaes/absurdum
v2.0.3
Published
Absurdum - The Ridiculous Application of Reduce
Downloads
61
Maintainers
Readme
Absurdum is a Javascript utility library built with a focus on providing idempotent side-effect free functions and clear/readable modular source for tree shaking.
Features
- Explores the flexibility of Reduce
- Abstraction Free -> tree-shake friendly
- Functional -> all operators are side-effect free
- Polyfills -> includes operator polyfills for older browsers
- Isomorphic -> works consistently across all JS runtimes
- Typescript -> typings are provided for all operators
- Intellisense -> supports code completions + inline documentation
- Well Tested -> includes 600+ tests covering every aspect
Imports
This package works isomorphically in browsers and server-side JavaScript runtimes
Browsers
Import directly from the local path or a CDN
Top-level operator namespaces (ie [arrays, objects, strings]
) can be imported from the index
<script type="module">
import { arrays, objects, strings } from 'path/to/absurdum/index.js'
</script>
The minified version can be imported from
<script type="module">
import { arrays, objects, strings } from 'path/to/absurdum/index.min.js'
</script>
Node
Install the package
npm install @vanillaes/absurdum
Top-level operator namespaces are provided
import { arrays, objects, strings } from '@vanillaes/absurdum';
Individual operators can also be imported from their parent namespaces
import { chunk, find } from '@vanillaes/absurdum/arrays';
import { assign, invert } from '@vanillaes/absurdum/objects';
import { camelCase, repeat } from '@vanillaes/absurdum/strings';
Note: Webpack's tree-shaking algorithm doesn't work with multi-layered exports. To optimize bundle size, prefer individual operator imports.
Usage
Import an operator and feed it some inputs
const input = ['a', 'b', 'c', 'd'];
const output = reverse(input);
console.log(output);
// > ['d', 'c', 'b', 'a']
Tip: For VSCode users. Input type-checking, intellisense, and inline documentation are all supported.
API Documentation
Arrays
| Operator | Lodash | Polyfills | |-------------------------------------|-------------------|-------------------------------| |chunk |_.chunk | | |compact |_.compact | | |difference |_.difference | | |drop |_.drop | | |dropRight |_.dropRight | | |fill |_.fill |Array.prototype.fill | |filter |_.filter | | |find |_.find |Array.prototype.find | |findIndex |_.findIndex |Array.prototype.findIndex | |findLastIndex|_.findLastIndex| | |flat |_.flatten |Array.prototype.flat | |frequency | | | |intersection |_.intersection | | |map |_.map | | |pull |_.pull | | |take |_.take | | |takeRight |_.takeRight | | |union |_.union | | |unique |_.uniq | | |unzip |_.unzip | | |without |_.without | | |xor |_.xor | | |zip |_.zip | |
Objects
| Operator | Lodash | Polyfills | |-------------------------------------|-------------------|-------------------------------| |assign |_.assign |Object.assign | |at |_.at | | |defaults |_.defaults | | |defaultsDeep |_.defaultsDeep | | |entries |_.toPairs |Object.entries | |filter |_.filter | | |findKey |_.findKey | | |findLastKey |_.findLastKey | | |forIn |_.forIn | | |fromEntries |_.fromPairs |Object.fromEntries | |get |_.get | | |has |_.has | | |invert |_.invert | | |mapKeys |_.mapKeys | | |mapValues |_.mapValues | | |merge |_.merge | | |pick |_.pick | | |result |_.result | | |transform |_.transform | | |values |_.values |Object.values |
Strings
| Operator | Lodash | Polyfills | |-------------------------------------|-------------------|-------------------------------| |camelCase |_.camelCase | | |chomp | | | |deburr |_.deburr | | |endsWith |_.endsWith |String.prototype.endsWith | |includes | |String.prototype.includes | |kebabCase |_.kebabCase | | |pad |_.pad | | |padEnd |_.padEnd |String.prototype.padEnd | |padStart |_.padStart |String.prototype.padStart | |pascalCase |_.startCase | | |repeat |_.repeat |String.prototype.repeat | |reverse | | | |snakeCase |_.snakeCase | | |startsWith |_.startsWith |String.prototype.startsWith| |trimEnd |_.trimEnd |String.prototype.trimEnd | |trimStart |_.trimStart |String.prototype.trimStart | |truncate |_.truncate | | |words |_.words | |