MCPcopy Index your code
hub / github.com/toss/es-toolkit

github.com/toss/es-toolkit @v1.49.0 sqlite

repository ↗ · DeepWiki ↗ · release v1.49.0 ↗
1,314 symbols 5,441 edges 1,772 files 24 documented · 2% 24 cross-repo links
README

es-toolkit · MIT License codecov NPM badge JSR badge Discord Badge

English | 한국어 | 简体中文 | 日本語

es-toolkit은 높은 성능과 작은 번들 사이즈, 강력한 타입을 자랑하는 현대적인 JavaScript 유틸리티 라이브러리예요.

  • es-toolkit은 매일 사용하는 다양한 유틸리티 함수를 현대적인 구현으로 제공해요. 예를 들어, debounce, delay, chunk, sum, pick 같은 함수들이 있어요.
  • 설계할 때 퍼포먼스를 중요 원칙으로 두어, es-toolkit은 현대적인 JavaScript 환경에서 2-3배 빠른 성능을 보여요.
  • es-toolkit은 트리 셰이킹을 기본으로 지원하며, 함수에 따라서는 다른 라이브러리와 비교했을 때 최대 97% 작은 JavaScript 번들 사이즈를 제공해요.
  • es-toolkit은 lodash를 손쉽게 대체할 수 있는 완전한 호환성 레이어, es-toolkit/compat을 제공해요.
  • es-toolkit은 TypeScript 타입이 내장되어 있고, 직관적이고 정확한 타입을 추구해요. isNotNil 같은 사용하기 편리한 유틸리티 함수도 제공해요.
  • es-toolkit은 Storybook, Recharts, ink, CKEditor와 같은 인기 있는 오픈소스 프로젝트에서 신뢰하고 사용하고 있어요.
  • es-toolkit은 100% 테스트 커버리지를 유지하면서, 높은 안정성을 자랑해요.

예시

// jsr을 사용하는 경우에는 '@es-toolkit/es-toolkit'에서 가져와요.
import { chunk, debounce } from 'es-toolkit';

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

// 이 호출은 디바운스 처리돼요.
debouncedLog('Hello, world!');

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

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

AI 활용

es-toolkit은 Claude Code, Cursor, Copilot 같은 AI 코딩 도구에서 사용할 수 있는 Agent Skills를 제공해요.

npx skills add toss/es-toolkit

Claude Code를 사용하는 경우, 플러그인 마켓플레이스를 통해 설치할 수도 있어요:

/plugin marketplace add toss/es-toolkit
/plugin install es-toolkit@es-toolkit-plugin

자세한 내용은 AI 활용 가이드를 참고하세요.

기여하기

커뮤니티에 있는 모든 분들에게 기여를 환영해요. 아래에 작성되어 있는 기여 가이드를 확인하세요.

CONTRIBUTING

라이선스

MIT © Viva Republica, Inc. 자세한 내용은 LICENSE를 참고하세요.

<img alt="Toss" src="https://static.toss.im/logos/png/4x/logo-toss.png" width="100">

Extension points exported contracts — how you extend this code

MemoizeCache (Interface)
(no doc) [3 implementers]
src/function/memoize.ts
MapCache (Interface)
(no doc) [3 implementers]
src/compat/function/memoize.ts
DelayOptions (Interface)
(no doc)
src/promise/delay.ts
OperatorFunctionGroup (Interface)
(no doc)
src/fp/pipe.ts
ExecOptions (Interface)
(no doc)
src/server/exec.ts
WindowedOptions (Interface)
(no doc)
src/array/windowed.ts
FlattenObjectOptions (Interface)
(no doc)
src/object/flattenObject.ts
DebounceOptions (Interface)
(no doc)
src/function/debounce.ts

Core symbols most depended-on inside this repo

pipe
called by 139
src/fp/pipe.ts
map
called by 135
src/compat/array/map.ts
isEqual
called by 134
src/predicate/isEqual.ts
isEqualWith
called by 115
src/predicate/isEqualWith.ts
getBundleSizeFromScript
called by 98
benchmarks/bundle-size/utils/getBundleSize.ts
matches
called by 92
src/compat/predicate/matches.ts
isMatchWith
called by 88
src/compat/predicate/isMatchWith.ts
delay
called by 80
src/promise/delay.ts

Shape

Function 1,089
Class 98
Method 76
Interface 51

Languages

TypeScript100%

Modules by API surface

src/object/cloneDeep.spec.ts19 symbols
src/compat/function/memoize.spec.ts19 symbols
src/function/memoize.spec.ts18 symbols
src/object/clone.spec.ts12 symbols
src/function/debounce.ts10 symbols
src/compat/function/memoize.ts10 symbols
src/compat/function/debounce.ts10 symbols
benchmarks/performance/hasIn.bench.ts10 symbols
src/server/exec.ts9 symbols
src/compat/predicate/isMatchWith.spec.ts9 symbols
src/compat/function/curryRight.ts9 symbols
src/compat/function/curry.ts9 symbols

Dependencies from manifests, versioned

@arethetypeswrong/cli0.15.3 · 1×
@changesets/changelog-github0.5.0 · 1×
@changesets/cli2.27.1 · 1×
@eslint/js9.39.2 · 1×
@types/broken-link-checker0.7.3 · 1×
@types/jscodeshift0.12.0 · 1×
@types/lodash4.17.20 · 1×
@types/lodash-es4.17.12 · 1×
@types/node24.10.9 · 1×
@types/tar6.1.13 · 1×

For agents

$ claude mcp add es-toolkit \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact