A modern JavaScript utility library that's 2-3 times faster and up to 97% smaller—a major upgrade to lodash.
Go to file
HyunWoo Lee (Nunu Lee) 373d63b980
feat(countBy): Add countBy function (#117)
* [feature/#88] Add countBy.ts

* [feature/#88] Add benchmark test of countBy

* [feature/#88] Add test code

* [feature/#88] Add countBy references

* Update docs/ko/reference/array/countBy.md

* Apply suggestions from code review

---------

Co-authored-by: Sojin Park <raon0211@gmail.com>
2024-07-03 10:09:12 +09:00
.circleci style(*): Setup prettier and apply formatting (#24) 2024-06-04 17:19:26 +09:00
.github chore: Fix incorrect publish step 2024-06-30 13:26:13 +09:00
.scripts fix(package.json): Provide correct types for moduleResolution: node, node10, and node16 (#16) 2024-06-03 22:30:32 +09:00
.vscode style(*): Setup prettier and apply formatting (#24) 2024-06-04 17:19:26 +09:00
.yarn/sdks 1.0.0 2024-05-31 16:54:41 +09:00
benchmarks feat(countBy): Add countBy function (#117) 2024-07-03 10:09:12 +09:00
docs feat(countBy): Add countBy function (#117) 2024-07-03 10:09:12 +09:00
src feat(countBy): Add countBy function (#117) 2024-07-03 10:09:12 +09:00
.eslintrc.js style(*): Add eslint-plugin-jsdoc for improved JSDoc validation and update codebase accordingly (#112) 2024-07-03 09:15:02 +09:00
.gitignore build: Support ESM type declarations & remove test files in dist (#21) 2024-06-04 09:56:07 +09:00
.npmignore 1.0.0 2024-05-31 16:54:41 +09:00
.nvmrc 1.0.0 2024-05-31 16:54:41 +09:00
.prettierignore style(*): Setup prettier and apply formatting (#24) 2024-06-04 17:19:26 +09:00
.prettierrc style(*): Setup prettier and apply formatting (#24) 2024-06-04 17:19:26 +09:00
babel.config.js style(*): Setup prettier and apply formatting (#24) 2024-06-04 17:19:26 +09:00
CHANGELOG.md v1.6.1 2024-06-30 13:47:15 +09:00
codecov.yml ci(codecov): Add codecov and upload test coverage (#34) 2024-06-13 13:56:41 +09:00
jsr.json chore: Fix publish configs for Deno 2024-06-30 13:56:28 +09:00
LICENSE chore: Add MIT License 2024-06-13 14:01:05 +09:00
package.json style(*): Add eslint-plugin-jsdoc for improved JSDoc validation and update codebase accordingly (#112) 2024-07-03 09:15:02 +09:00
README-ko_kr.md docs(README.md): add codecov badge to expose coverage ratio (#43) 2024-06-13 20:00:10 +09:00
README.md docs: Add NPM badge 2024-06-30 13:46:09 +09:00
tsconfig.json chore: Add publish for jsr step 2024-06-30 13:23:06 +09:00
tsup.config.ts style: Format some files (#33) 2024-06-12 11:35:49 +09:00
vitest.config.mts chore(*): Add codspeed for benchmark visualization (#75) 2024-06-18 10:40:07 +09:00
yarn.lock style(*): Add eslint-plugin-jsdoc for improved JSDoc validation and update codebase accordingly (#112) 2024-07-03 09:15:02 +09:00

es-toolkit · MIT License codecov NPM badge JSR badge

English | 한국어

es-toolkit is a state-of-the-art, high-performance JavaScript utility library with a small bundle size and strong type annotations.

  • es-toolkit offers a variety of everyday utility functions with modern implementations, such as debounce, delay, chunk, sum, and pick.
  • Designed with performance in mind, es-toolkit achieves 2-3× better performance in modern JavaScript environments.
  • es-toolkit supports tree shaking out of the box, and reduces JavaScript code by up to 97% compared to other libraries.
  • es-toolkit includes built-in TypeScript support, with straightforward yet robust types. It also provides useful type guards such as isNotNil.
  • es-toolkit is battle-tested with 100% test coverage, ensuring reliability and robustness.

Examples

// import from '@es-toolkit/es-toolkit' in jsr.
import { debounce, chunk } from 'es-toolkit';

const debouncedLog = debounce(message => {
  console.log(message);
}, 300);

// This call will be debounced
debouncedLog('Hello, world!');

const array = [1, 2, 3, 4, 5, 6];
const chunkedArray = chunk(array, 2);

console.log(chunkedArray);
// Output: [[1, 2], [3, 4], [5, 6]]

Contributing

We welcome contribution from everyone in the community. Read below for detailed contribution guide.

CONTRIBUTING

License

MIT © Viva Republica, Inc. See LICENSE for details.

Toss