Skip to content

Commit 8b30201

Browse files
authored
Merge pull request #77 from team-layer/feature/utils-new-workspace
Adding a large number of functions
2 parents c9cfaf2 + 0b36acb commit 8b30201

230 files changed

Lines changed: 4193 additions & 213 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

README.ja.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# kr-corekit
2+
3+
言語: [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md)
4+
5+
明確で実用的な API 設計を重視した JavaScript/TypeScript ユーティリティライブラリです。
6+
7+
## 特徴
8+
9+
- 文字列・配列・オブジェクト・非同期・Promise・日付・数値など 130+ 関数
10+
- Tree-shaking しやすいモジュール export
11+
- TypeScript `.d.ts` 型定義を提供
12+
- ESM/CJS バンドルを提供
13+
14+
## インストール
15+
16+
```bash
17+
npm install kr-corekit
18+
# or
19+
pnpm add kr-corekit
20+
# or
21+
yarn add kr-corekit
22+
```
23+
24+
## クイックスタート
25+
26+
```ts
27+
import {
28+
stringUtil,
29+
arrayUtil,
30+
objectUtil,
31+
asyncUtil,
32+
promiseUtil,
33+
dateUtil,
34+
mathUtil,
35+
langUtil,
36+
} from "kr-corekit";
37+
38+
const id = stringUtil.camelCase("user profile id");
39+
const rows = arrayUtil.chunk([1, 2, 3, 4, 5], 2);
40+
const city = objectUtil.get({ user: { profile: { city: "Seoul" } } }, "user.profile.city");
41+
42+
const mapped = await asyncUtil.mapAsync([1, 2, 3], async (v) => v * 2);
43+
const safe = await promiseUtil.withTimeout(fetch("/api/health"), 1000);
44+
45+
const tomorrow = dateUtil.addDays(new Date(), 1);
46+
const average = mathUtil.mean([10, 20, 30]);
47+
const enabled = langUtil.toBoolean("yes");
48+
```
49+
50+
## モジュール
51+
52+
- `stringUtil`: ケース変換、HTML escape/unescape、truncate、slugify
53+
- `arrayUtil`: chunk、flatten、uniq/uniqBy、groupBy、sortBy、集合演算、サンプリング
54+
- `collectionUtil`: 配列/オブジェクト向け map/filter/reduce/find/every/some/includes
55+
- `objectUtil`: get/set/has/merge/defaults/pick/omit/deepClone/deepFreeze
56+
- `numberUtil`: clamp、inRange、random、ceil/floor/round、sum/subtract/multiply
57+
- `mathUtil`: mean/median/min/max/sumBy/minBy/maxBy
58+
- `dateUtil`: 日時加減算、start/end of day、formatDate、日付比較
59+
- `langUtil`: toBoolean/toNumber/toString/defaultTo/castArray/isEqual
60+
- `asyncUtil`: pLimit、mapAsync、filterAsync、eachAsync、series、parallel
61+
- `promiseUtil`: defer、withTimeout、retryWithDelay、settle、toResult
62+
- 既存モジュール: `commonUtil`, `functionUtil`, `validationUtil`, `formatUtil`, `typeUtil`, `cookieUtil`, `deviceUtil`, `searchQueryUtil`
63+
64+
## Tree-Shaking インポート
65+
66+
```ts
67+
import { camelCase } from "kr-corekit/stringUtil";
68+
import { chunk } from "kr-corekit/arrayUtil";
69+
import { get } from "kr-corekit/objectUtil";
70+
import { mapAsync } from "kr-corekit/asyncUtil";
71+
import { withTimeout } from "kr-corekit/promiseUtil";
72+
```
73+
74+
## 全 API サンプル
75+
76+
- 公開 API の全サンプルは [`docs/API_EXAMPLES.md`](./docs/API_EXAMPLES.md) を参照してください。
77+
78+
## ベンチマーク
79+
80+
```bash
81+
npm run benchmark
82+
```
83+
84+
ビルド後にローカルのマイクロベンチマーク [`benchmark/index.mjs`](./benchmark/index.mjs) を実行します。
85+
86+
最新ローカルサンプル(2026-02-25):
87+
88+
```text
89+
array.chunk ~1,065,050 ops/s
90+
object.get ~2,681,055 ops/s
91+
string.camelCase ~1,902,407 ops/s
92+
async.mapAsync ~1,514,005 ops/s
93+
```
94+
95+
## 補足
96+
97+
- API 全体は `package/*/index.ts``dist/types/*/index.d.ts` で確認できます。
98+
- 関数ドキュメントを拡張する場合は多言語 README を同期してください。
99+
100+
## ライセンス
101+
102+
MIT

README.ko.md

Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
# kr-corekit
2+
3+
언어: [English](./README.md) | [한국어](./README.ko.md) | [简体中文](./README.zh-CN.md) | [日本語](./README.ja.md)
4+
5+
명확하고 실용적인 API 설계로 만든 JavaScript/TypeScript 유틸리티 모음입니다.
6+
7+
## 핵심 특징
8+
9+
- 문자열/배열/객체/비동기/Promise/날짜/수학/언어 유틸 포함 130개+ 함수
10+
- 트리 셰이킹에 유리한 모듈 export 구조
11+
- TypeScript `.d.ts` 타입 제공
12+
- ESM/CJS 번들 제공
13+
14+
## 설치
15+
16+
```bash
17+
npm install kr-corekit
18+
# or
19+
pnpm add kr-corekit
20+
# or
21+
yarn add kr-corekit
22+
```
23+
24+
## 빠른 사용 예시
25+
26+
```ts
27+
import {
28+
stringUtil,
29+
arrayUtil,
30+
objectUtil,
31+
asyncUtil,
32+
promiseUtil,
33+
dateUtil,
34+
mathUtil,
35+
langUtil,
36+
} from "kr-corekit";
37+
38+
const id = stringUtil.camelCase("user profile id");
39+
const rows = arrayUtil.chunk([1, 2, 3, 4, 5], 2);
40+
const city = objectUtil.get({ user: { profile: { city: "Seoul" } } }, "user.profile.city");
41+
42+
const mapped = await asyncUtil.mapAsync([1, 2, 3], async (v) => v * 2);
43+
const safe = await promiseUtil.withTimeout(fetch("/api/health"), 1000);
44+
45+
const tomorrow = dateUtil.addDays(new Date(), 1);
46+
const average = mathUtil.mean([10, 20, 30]);
47+
const enabled = langUtil.toBoolean("yes");
48+
```
49+
50+
## 모듈 구성
51+
52+
- `stringUtil`: 케이스 변환, HTML escape/unescape, truncate, slugify
53+
- `arrayUtil`: chunk, flatten, uniq/uniqBy, groupBy, sortBy, 집합 연산, 샘플링
54+
- `collectionUtil`: 배열/객체 대상 map/filter/reduce/find/every/some/includes
55+
- `objectUtil`: get/set/has/merge/defaults/pick/omit/deepClone/deepFreeze
56+
- `numberUtil`: clamp, inRange, random, ceil/floor/round, sum/subtract/multiply
57+
- `mathUtil`: mean/median/min/max/sumBy/minBy/maxBy
58+
- `dateUtil`: 일/시간 가감, 하루 시작/끝, formatDate, 날짜 비교
59+
- `langUtil`: toBoolean/toNumber/toString/defaultTo/castArray/isEqual
60+
- `asyncUtil`: pLimit, mapAsync, filterAsync, eachAsync, series, parallel
61+
- `promiseUtil`: defer, withTimeout, retryWithDelay, settle, toResult
62+
- 기존 모듈: `commonUtil`, `functionUtil`, `validationUtil`, `formatUtil`, `typeUtil`, `cookieUtil`, `deviceUtil`, `searchQueryUtil`
63+
64+
## 트리 셰이킹 import
65+
66+
```ts
67+
import { camelCase } from "kr-corekit/stringUtil";
68+
import { chunk } from "kr-corekit/arrayUtil";
69+
import { get } from "kr-corekit/objectUtil";
70+
import { mapAsync } from "kr-corekit/asyncUtil";
71+
import { withTimeout } from "kr-corekit/promiseUtil";
72+
```
73+
74+
## 전체 API 예제
75+
76+
- 모든 공개 API 예제는 [`docs/API_EXAMPLES.md`](./docs/API_EXAMPLES.md)에서 확인할 수 있습니다.
77+
78+
## 벤치마크
79+
80+
```bash
81+
npm run benchmark
82+
```
83+
84+
빌드 후 [`benchmark/index.mjs`](./benchmark/index.mjs) 기반 로컬 마이크로 벤치마크를 실행합니다.
85+
86+
최신 로컬 샘플 (2026-02-25):
87+
88+
```text
89+
array.chunk ~1,065,050 ops/s
90+
object.get ~2,681,055 ops/s
91+
string.camelCase ~1,902,407 ops/s
92+
async.mapAsync ~1,514,005 ops/s
93+
```
94+
95+
## 참고
96+
97+
- 전체 API는 `package/*/index.ts``dist/types/*/index.d.ts`에서 확인할 수 있습니다.
98+
- 함수별 문서를 더 확장할 경우 다국어 README 파일을 함께 동기화하세요.
99+
100+
## 라이선스
101+
102+
MIT

0 commit comments

Comments
 (0)