@tanwan/utils 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/array/chunk.cjs +17 -0
- package/dist/array/chunk.d.cts +13 -0
- package/dist/array/chunk.d.cts.map +1 -0
- package/dist/array/chunk.d.ts +14 -0
- package/dist/array/chunk.d.ts.map +1 -0
- package/dist/array/chunk.js +19 -0
- package/dist/array/chunk.js.map +1 -0
- package/dist/array/flatten.cjs +19 -0
- package/dist/array/flatten.d.cts +13 -0
- package/dist/array/flatten.d.cts.map +1 -0
- package/dist/array/flatten.d.ts +14 -0
- package/dist/array/flatten.d.ts.map +1 -0
- package/dist/array/flatten.js +21 -0
- package/dist/array/flatten.js.map +1 -0
- package/dist/array/shuffle.cjs +19 -0
- package/dist/array/shuffle.d.cts +12 -0
- package/dist/array/shuffle.d.cts.map +1 -0
- package/dist/array/shuffle.d.ts +13 -0
- package/dist/array/shuffle.d.ts.map +1 -0
- package/dist/array/shuffle.js +21 -0
- package/dist/array/shuffle.js.map +1 -0
- package/dist/array/unique.cjs +15 -0
- package/dist/array/unique.d.cts +13 -0
- package/dist/array/unique.d.cts.map +1 -0
- package/dist/array/unique.d.ts +14 -0
- package/dist/array/unique.d.ts.map +1 -0
- package/dist/array/unique.js +17 -0
- package/dist/array/unique.js.map +1 -0
- package/dist/base/deepClone.cjs +48 -0
- package/dist/base/deepClone.d.cts +15 -0
- package/dist/base/deepClone.d.cts.map +1 -0
- package/dist/base/deepClone.d.ts +16 -0
- package/dist/base/deepClone.d.ts.map +1 -0
- package/dist/base/deepClone.js +50 -0
- package/dist/base/deepClone.js.map +1 -0
- package/dist/base/isArray.cjs +15 -0
- package/dist/base/isArray.d.cts +13 -0
- package/dist/base/isArray.d.cts.map +1 -0
- package/dist/base/isArray.d.ts +14 -0
- package/dist/base/isArray.d.ts.map +1 -0
- package/dist/base/isArray.js +17 -0
- package/dist/base/isArray.js.map +1 -0
- package/dist/base/isObject.cjs +16 -0
- package/dist/base/isObject.d.cts +14 -0
- package/dist/base/isObject.d.cts.map +1 -0
- package/dist/base/isObject.d.ts +15 -0
- package/dist/base/isObject.d.ts.map +1 -0
- package/dist/base/isObject.js +18 -0
- package/dist/base/isObject.js.map +1 -0
- package/dist/base/isString.cjs +15 -0
- package/dist/base/isString.d.cts +13 -0
- package/dist/base/isString.d.cts.map +1 -0
- package/dist/base/isString.d.ts +14 -0
- package/dist/base/isString.d.ts.map +1 -0
- package/dist/base/isString.js +17 -0
- package/dist/base/isString.js.map +1 -0
- package/dist/date/formatDate.cjs +38 -0
- package/dist/date/formatDate.d.cts +13 -0
- package/dist/date/formatDate.d.cts.map +1 -0
- package/dist/date/formatDate.d.ts +14 -0
- package/dist/date/formatDate.d.ts.map +1 -0
- package/dist/date/formatDate.js +40 -0
- package/dist/date/formatDate.js.map +1 -0
- package/dist/date/getRelativeTime.cjs +29 -0
- package/dist/date/getRelativeTime.d.cts +13 -0
- package/dist/date/getRelativeTime.d.cts.map +1 -0
- package/dist/date/getRelativeTime.d.ts +14 -0
- package/dist/date/getRelativeTime.d.ts.map +1 -0
- package/dist/date/getRelativeTime.js +31 -0
- package/dist/date/getRelativeTime.js.map +1 -0
- package/dist/function/debounce.cjs +29 -0
- package/dist/function/debounce.d.cts +14 -0
- package/dist/function/debounce.d.cts.map +1 -0
- package/dist/function/debounce.d.ts +15 -0
- package/dist/function/debounce.d.ts.map +1 -0
- package/dist/function/debounce.js +31 -0
- package/dist/function/debounce.js.map +1 -0
- package/dist/function/throttle.cjs +28 -0
- package/dist/function/throttle.d.cts +14 -0
- package/dist/function/throttle.d.cts.map +1 -0
- package/dist/function/throttle.d.ts +15 -0
- package/dist/function/throttle.d.ts.map +1 -0
- package/dist/function/throttle.js +30 -0
- package/dist/function/throttle.js.map +1 -0
- package/dist/index.cjs +37 -0
- package/dist/index.d.cts +19 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.iife.js +1 -0
- package/dist/index.js +19 -0
- package/dist/number/clamp.cjs +16 -0
- package/dist/number/clamp.d.cts +14 -0
- package/dist/number/clamp.d.cts.map +1 -0
- package/dist/number/clamp.d.ts +15 -0
- package/dist/number/clamp.d.ts.map +1 -0
- package/dist/number/clamp.js +18 -0
- package/dist/number/clamp.js.map +1 -0
- package/dist/number/formatThousands.cjs +17 -0
- package/dist/number/formatThousands.d.cts +13 -0
- package/dist/number/formatThousands.d.cts.map +1 -0
- package/dist/number/formatThousands.d.ts +14 -0
- package/dist/number/formatThousands.d.ts.map +1 -0
- package/dist/number/formatThousands.js +19 -0
- package/dist/number/formatThousands.js.map +1 -0
- package/dist/number/randomInt.cjs +15 -0
- package/dist/number/randomInt.d.cts +13 -0
- package/dist/number/randomInt.d.cts.map +1 -0
- package/dist/number/randomInt.d.ts +14 -0
- package/dist/number/randomInt.d.ts.map +1 -0
- package/dist/number/randomInt.js +17 -0
- package/dist/number/randomInt.js.map +1 -0
- package/dist/string/camelCase.cjs +12 -0
- package/dist/string/camelCase.d.cts +7 -0
- package/dist/string/camelCase.d.cts.map +1 -0
- package/dist/string/camelCase.d.ts +8 -0
- package/dist/string/camelCase.d.ts.map +1 -0
- package/dist/string/camelCase.js +14 -0
- package/dist/string/camelCase.js.map +1 -0
- package/dist/string/capitalize.cjs +16 -0
- package/dist/string/capitalize.d.cts +13 -0
- package/dist/string/capitalize.d.cts.map +1 -0
- package/dist/string/capitalize.d.ts +14 -0
- package/dist/string/capitalize.d.ts.map +1 -0
- package/dist/string/capitalize.js +18 -0
- package/dist/string/capitalize.js.map +1 -0
- package/dist/string/kebabCase.cjs +9 -0
- package/dist/string/kebabCase.d.cts +7 -0
- package/dist/string/kebabCase.d.cts.map +1 -0
- package/dist/string/kebabCase.d.ts +8 -0
- package/dist/string/kebabCase.d.ts.map +1 -0
- package/dist/string/kebabCase.js +11 -0
- package/dist/string/kebabCase.js.map +1 -0
- package/package.json +104 -0
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/number/clamp/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将数值限制在指定范围内
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import clamp from '@tw/utils/clamp'
|
|
7
|
+
* clamp(10, 0, 5) // 5
|
|
8
|
+
* clamp(-1, 0, 5) // 0
|
|
9
|
+
* clamp(3, 0, 5) // 3
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
function clamp(value, min, max) {
|
|
13
|
+
return Math.min(Math.max(value, min), max);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
module.exports = clamp;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/number/clamp/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将数值限制在指定范围内
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import clamp from '@tw/utils/clamp'
|
|
7
|
+
* clamp(10, 0, 5) // 5
|
|
8
|
+
* clamp(-1, 0, 5) // 0
|
|
9
|
+
* clamp(3, 0, 5) // 3
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare function clamp(value: number, min: number, max: number): number;
|
|
13
|
+
export = clamp;
|
|
14
|
+
//# sourceMappingURL=clamp.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp.d.cts","names":[],"sources":["../../src/number/clamp/index.ts"],"mappings":";;;;;;;;;;;iBAUwB,KAAA,CAAM,KAAA,UAAe,GAAA,UAAa,GAAA;AAAA"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/number/clamp/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将数值限制在指定范围内
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import clamp from '@tw/utils/clamp'
|
|
7
|
+
* clamp(10, 0, 5) // 5
|
|
8
|
+
* clamp(-1, 0, 5) // 0
|
|
9
|
+
* clamp(3, 0, 5) // 3
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
declare function clamp(value: number, min: number, max: number): number;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { clamp as default };
|
|
15
|
+
//# sourceMappingURL=clamp.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp.d.ts","names":[],"sources":["../../src/number/clamp/index.ts"],"mappings":";;;;;;;;;;;iBAUwB,KAAA,CAAM,KAAA,UAAe,GAAA,UAAa,GAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/number/clamp/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将数值限制在指定范围内
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import clamp from '@tw/utils/clamp'
|
|
7
|
+
* clamp(10, 0, 5) // 5
|
|
8
|
+
* clamp(-1, 0, 5) // 0
|
|
9
|
+
* clamp(3, 0, 5) // 3
|
|
10
|
+
* ```
|
|
11
|
+
*/
|
|
12
|
+
function clamp(value, min, max) {
|
|
13
|
+
return Math.min(Math.max(value, min), max);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { clamp as default };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=clamp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"clamp.js","names":[],"sources":["../../src/number/clamp/index.ts"],"sourcesContent":["/**\n * 将数值限制在指定范围内\n * @example\n * ```ts\n * import clamp from '@tw/utils/clamp'\n * clamp(10, 0, 5) // 5\n * clamp(-1, 0, 5) // 0\n * clamp(3, 0, 5) // 3\n * ```\n */\nexport default function clamp(value: number, min: number, max: number): number {\n return Math.min(Math.max(value, min), max);\n}\n"],"mappings":";;;;;;;;;;;AAUA,SAAwB,MAAM,OAAe,KAAa,KAAqB;AAC7E,QAAO,KAAK,IAAI,KAAK,IAAI,OAAO,IAAI,EAAE,IAAI"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/number/formatThousands/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 千分位格式化数字
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import formatThousands from '@tw/utils/formatThousands'
|
|
7
|
+
* formatThousands(1234567) // '1,234,567'
|
|
8
|
+
* formatThousands(1234567.89) // '1,234,567.89'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
function formatThousands(num) {
|
|
12
|
+
const parts = String(num).split(".");
|
|
13
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
14
|
+
return parts.join(".");
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
module.exports = formatThousands;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/number/formatThousands/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 千分位格式化数字
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import formatThousands from '@tw/utils/formatThousands'
|
|
7
|
+
* formatThousands(1234567) // '1,234,567'
|
|
8
|
+
* formatThousands(1234567.89) // '1,234,567.89'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function formatThousands(num: number | string): string;
|
|
12
|
+
export = formatThousands;
|
|
13
|
+
//# sourceMappingURL=formatThousands.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatThousands.d.cts","names":[],"sources":["../../src/number/formatThousands/index.ts"],"mappings":";;;;;;;;;;iBASwB,eAAA,CAAgB,GAAA;AAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/number/formatThousands/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 千分位格式化数字
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import formatThousands from '@tw/utils/formatThousands'
|
|
7
|
+
* formatThousands(1234567) // '1,234,567'
|
|
8
|
+
* formatThousands(1234567.89) // '1,234,567.89'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function formatThousands(num: number | string): string;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { formatThousands as default };
|
|
14
|
+
//# sourceMappingURL=formatThousands.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatThousands.d.ts","names":[],"sources":["../../src/number/formatThousands/index.ts"],"mappings":";;;;;;;;;;iBASwB,eAAA,CAAgB,GAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
//#region src/number/formatThousands/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 千分位格式化数字
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import formatThousands from '@tw/utils/formatThousands'
|
|
7
|
+
* formatThousands(1234567) // '1,234,567'
|
|
8
|
+
* formatThousands(1234567.89) // '1,234,567.89'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
function formatThousands(num) {
|
|
12
|
+
const parts = String(num).split(".");
|
|
13
|
+
parts[0] = parts[0].replace(/\B(?=(\d{3})+(?!\d))/g, ",");
|
|
14
|
+
return parts.join(".");
|
|
15
|
+
}
|
|
16
|
+
//#endregion
|
|
17
|
+
export { formatThousands as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=formatThousands.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatThousands.js","names":[],"sources":["../../src/number/formatThousands/index.ts"],"sourcesContent":["/**\n * 千分位格式化数字\n * @example\n * ```ts\n * import formatThousands from '@tw/utils/formatThousands'\n * formatThousands(1234567) // '1,234,567'\n * formatThousands(1234567.89) // '1,234,567.89'\n * ```\n */\nexport default function formatThousands(num: number | string): string {\n const parts = String(num).split('.');\n parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n return parts.join('.');\n}\n"],"mappings":";;;;;;;;;;AASA,SAAwB,gBAAgB,KAA8B;CACpE,MAAM,QAAQ,OAAO,IAAI,CAAC,MAAM,IAAI;AACpC,OAAM,KAAK,MAAM,GAAG,QAAQ,yBAAyB,IAAI;AACzD,QAAO,MAAM,KAAK,IAAI"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
//#region src/number/randomInt/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 生成指定范围内的随机整数
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import randomInt from '@tw/utils/randomInt'
|
|
7
|
+
* randomInt(1, 10) // 3(介于 1-10 之间)
|
|
8
|
+
* randomInt(0, 1) // 0 或 1
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
function randomInt(min, max) {
|
|
12
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
module.exports = randomInt;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/number/randomInt/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 生成指定范围内的随机整数
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import randomInt from '@tw/utils/randomInt'
|
|
7
|
+
* randomInt(1, 10) // 3(介于 1-10 之间)
|
|
8
|
+
* randomInt(0, 1) // 0 或 1
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function randomInt(min: number, max: number): number;
|
|
12
|
+
export = randomInt;
|
|
13
|
+
//# sourceMappingURL=randomInt.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomInt.d.cts","names":[],"sources":["../../src/number/randomInt/index.ts"],"mappings":";;;;;;;;;;iBASwB,SAAA,CAAU,GAAA,UAAa,GAAA;AAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/number/randomInt/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 生成指定范围内的随机整数
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import randomInt from '@tw/utils/randomInt'
|
|
7
|
+
* randomInt(1, 10) // 3(介于 1-10 之间)
|
|
8
|
+
* randomInt(0, 1) // 0 或 1
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function randomInt(min: number, max: number): number;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { randomInt as default };
|
|
14
|
+
//# sourceMappingURL=randomInt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomInt.d.ts","names":[],"sources":["../../src/number/randomInt/index.ts"],"mappings":";;;;;;;;;;iBASwB,SAAA,CAAU,GAAA,UAAa,GAAA"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
//#region src/number/randomInt/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 生成指定范围内的随机整数
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import randomInt from '@tw/utils/randomInt'
|
|
7
|
+
* randomInt(1, 10) // 3(介于 1-10 之间)
|
|
8
|
+
* randomInt(0, 1) // 0 或 1
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
function randomInt(min, max) {
|
|
12
|
+
return Math.floor(Math.random() * (max - min + 1)) + min;
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { randomInt as default };
|
|
16
|
+
|
|
17
|
+
//# sourceMappingURL=randomInt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"randomInt.js","names":[],"sources":["../../src/number/randomInt/index.ts"],"sourcesContent":["/**\n * 生成指定范围内的随机整数\n * @example\n * ```ts\n * import randomInt from '@tw/utils/randomInt'\n * randomInt(1, 10) // 3(介于 1-10 之间)\n * randomInt(0, 1) // 0 或 1\n * ```\n */\nexport default function randomInt(min: number, max: number): number {\n return Math.floor(Math.random() * (max - min + 1)) + min;\n}\n"],"mappings":";;;;;;;;;;AASA,SAAwB,UAAU,KAAa,KAAqB;AAClE,QAAO,KAAK,MAAM,KAAK,QAAQ,IAAI,MAAM,MAAM,GAAG,GAAG"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
//#region src/string/camelCase/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将字符串转换为驼峰命名
|
|
4
|
+
*/
|
|
5
|
+
function camelCase(str, capital = false) {
|
|
6
|
+
let result = str.replace(/[-_.\s]+(\w|$)/g, (_, c) => c.toUpperCase());
|
|
7
|
+
if (capital && result.length > 0) result = result[0].toUpperCase() + result.slice(1);
|
|
8
|
+
console.log(result);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
module.exports = camelCase;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camelCase.d.cts","names":[],"sources":["../../src/string/camelCase/index.ts"],"mappings":";;;;iBAGwB,SAAA,CAAU,GAAA,UAAa,OAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camelCase.d.ts","names":[],"sources":["../../src/string/camelCase/index.ts"],"mappings":";;;;iBAGwB,SAAA,CAAU,GAAA,UAAa,OAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/string/camelCase/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将字符串转换为驼峰命名
|
|
4
|
+
*/
|
|
5
|
+
function camelCase(str, capital = false) {
|
|
6
|
+
let result = str.replace(/[-_.\s]+(\w|$)/g, (_, c) => c.toUpperCase());
|
|
7
|
+
if (capital && result.length > 0) result = result[0].toUpperCase() + result.slice(1);
|
|
8
|
+
console.log(result);
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { camelCase as default };
|
|
13
|
+
|
|
14
|
+
//# sourceMappingURL=camelCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"camelCase.js","names":[],"sources":["../../src/string/camelCase/index.ts"],"sourcesContent":["/**\n * 将字符串转换为驼峰命名\n */\nexport default function camelCase(str: string, capital = false): string {\n const reg = /[-_.\\s]+(\\w|$)/g;\n let result = str.replace(reg, (_, c) => c.toUpperCase());\n\n if (capital && result.length > 0) {\n result = result[0].toUpperCase() + result.slice(1);\n }\n console.log(result);\n return result;\n}\n"],"mappings":";;;;AAGA,SAAwB,UAAU,KAAa,UAAU,OAAe;CAEtE,IAAI,SAAS,IAAI,QAAQ,oBAAM,GAAG,MAAM,EAAE,aAAa,CAAC;AAExD,KAAI,WAAW,OAAO,SAAS,EAC7B,UAAS,OAAO,GAAG,aAAa,GAAG,OAAO,MAAM,EAAE;AAEpD,SAAQ,IAAI,OAAO;AACnB,QAAO"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region src/string/capitalize/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 首字母大写
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import capitalize from '@tw/utils/capitalize'
|
|
7
|
+
* capitalize('hello') // 'Hello'
|
|
8
|
+
* capitalize('hello world') // 'Hello world'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
function capitalize(str) {
|
|
12
|
+
if (!str) return str;
|
|
13
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
module.exports = capitalize;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region src/string/capitalize/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 首字母大写
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import capitalize from '@tw/utils/capitalize'
|
|
7
|
+
* capitalize('hello') // 'Hello'
|
|
8
|
+
* capitalize('hello world') // 'Hello world'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function capitalize(str: string): string;
|
|
12
|
+
export = capitalize;
|
|
13
|
+
//# sourceMappingURL=capitalize.d.cts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.d.cts","names":[],"sources":["../../src/string/capitalize/index.ts"],"mappings":";;;;;;;;;;iBASwB,UAAA,CAAW,GAAA;AAAA"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
//#region src/string/capitalize/index.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* 首字母大写
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import capitalize from '@tw/utils/capitalize'
|
|
7
|
+
* capitalize('hello') // 'Hello'
|
|
8
|
+
* capitalize('hello world') // 'Hello world'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
declare function capitalize(str: string): string;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { capitalize as default };
|
|
14
|
+
//# sourceMappingURL=capitalize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.d.ts","names":[],"sources":["../../src/string/capitalize/index.ts"],"mappings":";;;;;;;;;;iBASwB,UAAA,CAAW,GAAA"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
//#region src/string/capitalize/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 首字母大写
|
|
4
|
+
* @example
|
|
5
|
+
* ```ts
|
|
6
|
+
* import capitalize from '@tw/utils/capitalize'
|
|
7
|
+
* capitalize('hello') // 'Hello'
|
|
8
|
+
* capitalize('hello world') // 'Hello world'
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
function capitalize(str) {
|
|
12
|
+
if (!str) return str;
|
|
13
|
+
return str.charAt(0).toUpperCase() + str.slice(1);
|
|
14
|
+
}
|
|
15
|
+
//#endregion
|
|
16
|
+
export { capitalize as default };
|
|
17
|
+
|
|
18
|
+
//# sourceMappingURL=capitalize.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capitalize.js","names":[],"sources":["../../src/string/capitalize/index.ts"],"sourcesContent":["/**\n * 首字母大写\n * @example\n * ```ts\n * import capitalize from '@tw/utils/capitalize'\n * capitalize('hello') // 'Hello'\n * capitalize('hello world') // 'Hello world'\n * ```\n */\nexport default function capitalize(str: string): string {\n if (!str) return str;\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n"],"mappings":";;;;;;;;;;AASA,SAAwB,WAAW,KAAqB;AACtD,KAAI,CAAC,IAAK,QAAO;AACjB,QAAO,IAAI,OAAO,EAAE,CAAC,aAAa,GAAG,IAAI,MAAM,EAAE"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
//#region src/string/kebabCase/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将字符串转换为短横线命名(kebab-case)
|
|
4
|
+
*/
|
|
5
|
+
function kebabCase(str) {
|
|
6
|
+
return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").replace(/[-_.\s]+/g, "-").toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
module.exports = kebabCase;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebabCase.d.cts","names":[],"sources":["../../src/string/kebabCase/index.ts"],"mappings":";;;;iBAGwB,SAAA,CAAU,GAAA;AAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebabCase.d.ts","names":[],"sources":["../../src/string/kebabCase/index.ts"],"mappings":";;;;iBAGwB,SAAA,CAAU,GAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
//#region src/string/kebabCase/index.ts
|
|
2
|
+
/**
|
|
3
|
+
* 将字符串转换为短横线命名(kebab-case)
|
|
4
|
+
*/
|
|
5
|
+
function kebabCase(str) {
|
|
6
|
+
return str.replace(/([a-z])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2").replace(/[-_.\s]+/g, "-").toLowerCase();
|
|
7
|
+
}
|
|
8
|
+
//#endregion
|
|
9
|
+
export { kebabCase as default };
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=kebabCase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"kebabCase.js","names":[],"sources":["../../src/string/kebabCase/index.ts"],"sourcesContent":["/**\n * 将字符串转换为短横线命名(kebab-case)\n */\nexport default function kebabCase(str: string): string {\n return str\n .replace(/([a-z])([A-Z])/g, '$1-$2')\n .replace(/([A-Z])([A-Z][a-z])/g, '$1-$2')\n .replace(/[-_.\\s]+/g, '-')\n .toLowerCase();\n}\n"],"mappings":";;;;AAGA,SAAwB,UAAU,KAAqB;AACrD,QAAO,IACJ,QAAQ,mBAAmB,QAAQ,CACnC,QAAQ,wBAAwB,QAAQ,CACxC,QAAQ,aAAa,IAAI,CACzB,aAAa"}
|
package/package.json
ADDED
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@tanwan/utils",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "前端纯JS工具函数库",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/index.cjs",
|
|
7
|
+
"module": "./dist/index.js",
|
|
8
|
+
"types": "./dist/index.d.cts",
|
|
9
|
+
"unpkg": "./dist/index.global.js",
|
|
10
|
+
"jsdelivr": "./dist/index.global.js",
|
|
11
|
+
"sideEffects": false,
|
|
12
|
+
"files": [
|
|
13
|
+
"dist"
|
|
14
|
+
],
|
|
15
|
+
"license": "MIT",
|
|
16
|
+
"exports": {
|
|
17
|
+
".": {
|
|
18
|
+
"import": "./dist/index.js",
|
|
19
|
+
"require": "./dist/index.cjs"
|
|
20
|
+
},
|
|
21
|
+
"./array/chunk": {
|
|
22
|
+
"import": "./dist/array/chunk.js",
|
|
23
|
+
"require": "./dist/array/chunk.cjs"
|
|
24
|
+
},
|
|
25
|
+
"./array/flatten": {
|
|
26
|
+
"import": "./dist/array/flatten.js",
|
|
27
|
+
"require": "./dist/array/flatten.cjs"
|
|
28
|
+
},
|
|
29
|
+
"./array/shuffle": {
|
|
30
|
+
"import": "./dist/array/shuffle.js",
|
|
31
|
+
"require": "./dist/array/shuffle.cjs"
|
|
32
|
+
},
|
|
33
|
+
"./array/unique": {
|
|
34
|
+
"import": "./dist/array/unique.js",
|
|
35
|
+
"require": "./dist/array/unique.cjs"
|
|
36
|
+
},
|
|
37
|
+
"./base/deepClone": {
|
|
38
|
+
"import": "./dist/base/deepClone.js",
|
|
39
|
+
"require": "./dist/base/deepClone.cjs"
|
|
40
|
+
},
|
|
41
|
+
"./base/isArray": {
|
|
42
|
+
"import": "./dist/base/isArray.js",
|
|
43
|
+
"require": "./dist/base/isArray.cjs"
|
|
44
|
+
},
|
|
45
|
+
"./base/isObject": {
|
|
46
|
+
"import": "./dist/base/isObject.js",
|
|
47
|
+
"require": "./dist/base/isObject.cjs"
|
|
48
|
+
},
|
|
49
|
+
"./base/isString": {
|
|
50
|
+
"import": "./dist/base/isString.js",
|
|
51
|
+
"require": "./dist/base/isString.cjs"
|
|
52
|
+
},
|
|
53
|
+
"./date/formatDate": {
|
|
54
|
+
"import": "./dist/date/formatDate.js",
|
|
55
|
+
"require": "./dist/date/formatDate.cjs"
|
|
56
|
+
},
|
|
57
|
+
"./date/getRelativeTime": {
|
|
58
|
+
"import": "./dist/date/getRelativeTime.js",
|
|
59
|
+
"require": "./dist/date/getRelativeTime.cjs"
|
|
60
|
+
},
|
|
61
|
+
"./function/debounce": {
|
|
62
|
+
"import": "./dist/function/debounce.js",
|
|
63
|
+
"require": "./dist/function/debounce.cjs"
|
|
64
|
+
},
|
|
65
|
+
"./function/throttle": {
|
|
66
|
+
"import": "./dist/function/throttle.js",
|
|
67
|
+
"require": "./dist/function/throttle.cjs"
|
|
68
|
+
},
|
|
69
|
+
"./number/clamp": {
|
|
70
|
+
"import": "./dist/number/clamp.js",
|
|
71
|
+
"require": "./dist/number/clamp.cjs"
|
|
72
|
+
},
|
|
73
|
+
"./number/formatThousands": {
|
|
74
|
+
"import": "./dist/number/formatThousands.js",
|
|
75
|
+
"require": "./dist/number/formatThousands.cjs"
|
|
76
|
+
},
|
|
77
|
+
"./number/randomInt": {
|
|
78
|
+
"import": "./dist/number/randomInt.js",
|
|
79
|
+
"require": "./dist/number/randomInt.cjs"
|
|
80
|
+
},
|
|
81
|
+
"./string/camelCase": {
|
|
82
|
+
"import": "./dist/string/camelCase.js",
|
|
83
|
+
"require": "./dist/string/camelCase.cjs"
|
|
84
|
+
},
|
|
85
|
+
"./string/capitalize": {
|
|
86
|
+
"import": "./dist/string/capitalize.js",
|
|
87
|
+
"require": "./dist/string/capitalize.cjs"
|
|
88
|
+
},
|
|
89
|
+
"./string/kebabCase": {
|
|
90
|
+
"import": "./dist/string/kebabCase.js",
|
|
91
|
+
"require": "./dist/string/kebabCase.cjs"
|
|
92
|
+
},
|
|
93
|
+
"./package.json": "./package.json"
|
|
94
|
+
},
|
|
95
|
+
"publishConfig": {
|
|
96
|
+
"access": "public",
|
|
97
|
+
"registry": "https://registry.npmjs.org/"
|
|
98
|
+
},
|
|
99
|
+
"scripts": {
|
|
100
|
+
"build": "tsdown",
|
|
101
|
+
"dev": "tsdown --watch",
|
|
102
|
+
"clean": "rimraf dist"
|
|
103
|
+
}
|
|
104
|
+
}
|