Skip to content

Commit 1dd9106

Browse files
committed
chore: 添加jsr包发布脚本
1 parent a6b0175 commit 1dd9106

File tree

7 files changed

+61
-14
lines changed

7 files changed

+61
-14
lines changed

jsr.json

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
{
2+
"name": "@renzp/utils",
3+
"version": "0.0.5",
4+
"exports": {
5+
"./array": "./src/array.ts",
6+
"./has": "./src/has.ts",
7+
"./number": "./src/number.ts",
8+
"./is": "./src/is.ts",
9+
"./object": "./src/object.ts",
10+
"./window": "./src/window.ts",
11+
".": "./src/index.ts",
12+
"./time": "./src/time.ts",
13+
"./validator": "./src/validator.ts"
14+
}
15+
}

package.json

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,7 @@
44
"description": "一款零依赖、实用的Javascript/Typescript工具库",
55
"type": "module",
66
"main": "dist/index.js",
7-
"files": [
8-
"dist"
9-
],
7+
"files": ["dist"],
108
"types": "dist/index.d.ts",
119
"author": "renzp <1074720760.qq.com>",
1210
"repository": {
@@ -17,9 +15,7 @@
1715
"bugs": {
1816
"url": "https://github.com/renzp94/utils/issues"
1917
},
20-
"keywords": [
21-
"utils"
22-
],
18+
"keywords": ["utils"],
2319
"license": "MIT",
2420
"publishConfig": {
2521
"registry": "https://registry.npmjs.org",
@@ -28,6 +24,7 @@
2824
"scripts": {
2925
"build": "bun run scripts/build.ts",
3026
"pub": "standard-version && npm publish",
27+
"pub:jsr": "bun run scripts/pub-jsr.ts",
3128
"docs:dev": "vitepress dev docs",
3229
"docs:build": "vitepress build docs",
3330
"docs:preview": "vitepress preview docs"

scripts/build.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const rmDist = async () => {
1313
}
1414
}
1515

16-
const getEntrypoints = async () => {
16+
export const getEntrypoints = async () => {
1717
const files = await readdir('./src')
1818
const entrypoints = files
1919
.filter((file) => !file.includes('_'))

scripts/pub-jsr.ts

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
import { readdir } from 'node:fs/promises'
2+
3+
const pkg = await Bun.file('./package.json').json()
4+
5+
const getExports = async () => {
6+
const files = await readdir('./src')
7+
const exports = files
8+
.filter((file) => !file.includes('_'))
9+
.reduce((prev, file) => {
10+
if (file === 'index.ts') {
11+
return { ...prev, '.': './src/index.ts' }
12+
}
13+
14+
return {
15+
...prev,
16+
[`./${file.replace('.ts', '')}`]: `./src/${file}`,
17+
}
18+
}, {})
19+
20+
return exports
21+
}
22+
23+
const exports = await getExports()
24+
const jsrConfig = {
25+
name: pkg.name,
26+
version: pkg.version,
27+
exports,
28+
}
29+
30+
await Bun.write('./jsr.json', JSON.stringify(jsrConfig, null, 2))
31+
32+
await Bun.$`bunx jsr publish --allow-dirty`

src/number.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,10 @@ export interface NumberSeparateOptions {
2525
* numberSeparate(12345, { digit: 2 }); // '1,23,45
2626
* numberSeparate(12345, { digit: 2, separate: '$' }); // 1$23$45
2727
*/
28-
export const numberSeparate = (v: number, options?: NumberSeparateOptions) => {
28+
export const numberSeparate = (
29+
v: number,
30+
options?: NumberSeparateOptions,
31+
): string | number => {
2932
const { digit = 3, separate = ',', isDealDecimal } = options ?? {}
3033
if (isNumber(v) && digit > 0) {
3134
const values = v.toString()?.split('.')

src/validator.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@
1616
* emailValidator('xiaoli@gmail.com'); // true
1717
* emailValidator('lisi@qq'); // false
1818
*/
19-
export const emailValidator = (v: string) =>
19+
export const emailValidator = (v: string): boolean =>
2020
/^[a-zA-Z0-9_\.\-\+]+@[a-zA-Z0-9-]+(\.[a-zA-Z]{2,})+$/.test(v)
2121

2222
/**
@@ -37,7 +37,7 @@ export const emailValidator = (v: string) =>
3737
* idCardValidator('620102195603025026'); // false
3838
* idCardValidator('abc123456789012343'); // false
3939
*/
40-
export const idCardValidator = (v: string) => {
40+
export const idCardValidator = (v: string): boolean => {
4141
// 验证基本格式规则
4242
if (!/^[1-9]\d{16}(\d|X|x)$/.test(v)) {
4343
return false
@@ -80,7 +80,7 @@ export const idCardValidator = (v: string) => {
8080
* phoneValidator('13311111111'); // true
8181
* phoneValidator('12000000000'); // false
8282
*/
83-
export const phoneValidator = (v: string) => /^1[3-9]\d{9}$/.test(v)
83+
export const phoneValidator = (v: string): boolean => /^1[3-9]\d{9}$/.test(v)
8484

8585
/**
8686
* 座机号码验证
@@ -96,7 +96,7 @@ export const phoneValidator = (v: string) => /^1[3-9]\d{9}$/.test(v)
9696
* telValidator('12345678'); // true
9797
* telValidator('01100-62770334'); // false
9898
*/
99-
export const telValidator = (v: string) =>
99+
export const telValidator = (v: string): boolean =>
100100
/^(0\d{2,3}-)?\d{7,8}$/.test(v) || /^(\(0\d{2,3}\))?\d{7,8}$/.test(v)
101101

102102
export enum ZH_MATCH {
@@ -122,7 +122,7 @@ export enum ZH_MATCH {
122122
* zhValidator('这是一段含有英文符号的字符串.'); // false
123123
* zhValidator('《》()', ZH_MATCH.S); // true
124124
*/
125-
export const zhValidator = (v: string, match = ZH_MATCH.W_S) => {
125+
export const zhValidator = (v: string, match = ZH_MATCH.W_S): boolean => {
126126
const regexps = {
127127
[ZH_MATCH.S]: /^[]{0,}$/,
128128
[ZH_MATCH.W]: /^[\u4e00-\u9fa5]{0,}$/,

src/window.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
* const text = await navigator.clipboard.readText();
1212
* console.log(text); // 复制文本
1313
*/
14-
export const copyText = async (text: string) => {
14+
export const copyText = async (text: string): Promise<boolean> => {
1515
try {
1616
if (navigator?.clipboard?.writeText) {
1717
await navigator.clipboard.writeText(text)

0 commit comments

Comments
 (0)