All Projects → vanillaes → absurdum

vanillaes / absurdum

Licence: MIT License
The Ridiculous Application of Reduce

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to absurdum

Esm
Tomorrow's ECMAScript modules today!
Stars: ✭ 5,093 (+8249.18%)
Mutual labels:  esmodules, esm
npm-es-modules
Breakdown of 7 different ways to use ES modules with npm today.
Stars: ✭ 67 (+9.84%)
Mutual labels:  esmodules, esm
tape-es
ESM-compatible Tape.js test runner
Stars: ✭ 24 (-60.66%)
Mutual labels:  esmodules, esm
Jsdelivr
A free, fast, and reliable Open Source CDN for npm, GitHub, Javascript, and ESM
Stars: ✭ 4,052 (+6542.62%)
Mutual labels:  esmodules, esm
unpack
Create Web apps without a bundler
Stars: ✭ 39 (-36.07%)
Mutual labels:  esmodules, esm
nanobundle
Yet another build tool for libraries, powered by esbuild
Stars: ✭ 45 (-26.23%)
Mutual labels:  esmodules, esm
oletus
Minimal ECMAScript Module test runner
Stars: ✭ 43 (-29.51%)
Mutual labels:  esmodules, esm
rudash
Rudash - Lodash for Ruby Apps
Stars: ✭ 27 (-55.74%)
Mutual labels:  lodash
eslint-plugin-lodash-template
ESLint plugin for John Resig-style micro template, Lodash's template, Underscore's template and EJS.
Stars: ✭ 15 (-75.41%)
Mutual labels:  lodash
create-nodejs-ts
Starter Project for Node.js With TypeScript.
Stars: ✭ 34 (-44.26%)
Mutual labels:  esm
webpacker
🔸 Webpack configuration manager
Stars: ✭ 18 (-70.49%)
Mutual labels:  esm
babel-codemod-example
An example of how to use babel as a codemod
Stars: ✭ 24 (-60.66%)
Mutual labels:  esmodules
godash
Lodash for Golang
Stars: ✭ 43 (-29.51%)
Mutual labels:  lodash
reboost
A super fast dev server for rapid web development
Stars: ✭ 59 (-3.28%)
Mutual labels:  esm
react-wisteria
Managing the State with the Golden Path
Stars: ✭ 18 (-70.49%)
Mutual labels:  lodash
async-folder-walker
A recursive async iterator of the files and directories in a given directory. Can take multiple directories and files, limit walk depth and filter based on path names and stat results.
Stars: ✭ 18 (-70.49%)
Mutual labels:  esm
es-aux
JavaScript开发辅助,包含了开发过程中很多场景需要用到的函数。
Stars: ✭ 22 (-63.93%)
Mutual labels:  lodash
anzip
Simple async unzip library for Node.js
Stars: ✭ 61 (+0%)
Mutual labels:  esm
underwater
~2kb - ES6 Collection of helper functions. Lodash like
Stars: ✭ 18 (-70.49%)
Mutual labels:  lodash
observable-to-standalone
Importing an Observable notebook into a standalone application
Stars: ✭ 31 (-49.18%)
Mutual labels:  esm

Absurdum Logo


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.

GitHub Release NPM Release Bundlephobia Latest Status Release Status

Discord

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].