Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: 已实现方法增加jsdoc注释 #53

Merged
merged 3 commits into from
Jun 26, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -28,10 +28,10 @@
"node": ">=18.0.0"
},
"scripts": {
"docs": "pnpm -F xparcai-utils-docs run docs:dev",
"docs:build": "pnpm -F xparcai-utils-docs run docs:build",
"create": "esno scripts/create-subpackage.ts",
"build": "pnpm -r --filter=./packages/* run build",
"docs": "pnpm -F xparcai-utils-docs run docs:dev",
"docs:build": "pnpm -F xparcai-utils-docs run docs:build",
"release": "pnpm run build && pnpm run test run && run-s release:*",
"release:bummp": "bumpp -r",
"release:publish": "pnpm -r --filter=./packages/* publish",
Expand Down
5 changes: 5 additions & 0 deletions packages/is/src/isArray.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是array类型
* @param data 某个数据
* @returns 是否是array类型
*/
export function isArray<T>(data: unknown): data is T[] {
return isType(data, 'Array')
}
5 changes: 5 additions & 0 deletions packages/is/src/isBigInt.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是bigint类型
* @param data 某个数据
* @returns 是否是bigint类型
*/
export function isBigInt(data: unknown): data is bigint {
return isType(data, 'BigInt')
}
5 changes: 5 additions & 0 deletions packages/is/src/isBoolean.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是boolean类型
* @param data 某个数据
* @returns 是否是boolean类型
*/
export function isBoolean(data: unknown): data is boolean {
return isType(data, 'Boolean')
}
5 changes: 5 additions & 0 deletions packages/is/src/isDate.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是Date类型
* @param data 某个数据
* @returns 是否是Date类型
*/
export function isDate(data: unknown): data is Date {
return isType(data, 'Date')
}
5 changes: 5 additions & 0 deletions packages/is/src/isFalse.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* 某个数据是否为false
* @param data 某个数据
* @returns 是否为false
*/
export function isFalse(data: unknown): data is false {
return data === false
}
7 changes: 6 additions & 1 deletion packages/is/src/isFunction.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

export function isFunction<T extends Function>(data: unknown): data is T {
/**
* 某个数据/方法是否是function类型
* @param data 某个数据/方法
* @returns 是否是function类型
*/
export function isFunction<T>(data: unknown): data is T extends Function ? T : Function {
return isType(data, 'Function')
}
5 changes: 5 additions & 0 deletions packages/is/src/isMap.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是Map类型
* @param data 某个数据
* @returns 是否是Map类型
*/
export function isMap<K, V>(data: unknown): data is Map<K, V> {
return isType(data, 'Map')
}
5 changes: 5 additions & 0 deletions packages/is/src/isNaN.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* 某个数据是否是NaN
* @param data 某个数据
* @returns 是否是NaN
*/
export function isNaN(data: unknown): data is number {
return Number.isNaN(data)
}
5 changes: 5 additions & 0 deletions packages/is/src/isNull.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是null类型
* @param data 某个数据
* @returns 是否是null类型
*/
export function isNull(data: unknown): data is null {
return isType(data, 'Null')
}
5 changes: 5 additions & 0 deletions packages/is/src/isNumber.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是number类型
* @param data 某个数据
* @returns 是否是number类型
*/
export function isNumber(data: unknown): data is number {
return isType(data, 'Number')
}
5 changes: 5 additions & 0 deletions packages/is/src/isObject.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是object类型
* @param data 某个数据
* @returns 是否是object类型
*/
export function isObject<T>(data: unknown): data is T {
return isType(data, 'Object')
}
14 changes: 10 additions & 4 deletions packages/is/src/isPromise.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
import { isFunction } from './isFunction'
import { isObject } from './isObject'

export function isPromise<T = any>(data: unknown): data is Promise<T> {
/**
* 某个数据/方法是否是Promise
* @param data 某个数据/方法
* @returns 是否是Promise
*/
export function isPromise<T>(data: unknown): data is Promise<T> {
return (
!!data
&& isFunction((data as any).then)
&& isFunction((data as any).catch)
isObject<{ then: Function, catch: Function }>(data)
&& isFunction(data.then)
&& isFunction(data.catch)
)
}
5 changes: 5 additions & 0 deletions packages/is/src/isRegExp.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是RegExp类型
* @param data 某个数据
* @returns 是否是RegExp类型
*/
export function isRegExp(data: unknown): data is RegExp {
return isType(data, 'RegExp')
}
5 changes: 5 additions & 0 deletions packages/is/src/isSet.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是Set类型
* @param data 某个数据
* @returns 是否是Set类型
*/
export function isSet<T>(data: unknown): data is Set<T> {
return isType(data, 'Set')
}
5 changes: 5 additions & 0 deletions packages/is/src/isString.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是string类型
* @param data 某个数据
* @returns 是否是string类型
*/
export function isString(data: unknown): data is string {
return isType(data, 'String')
}
5 changes: 5 additions & 0 deletions packages/is/src/isSymbol.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是symbol类型
* @param data 某个数据
* @returns 是否是symbol类型
*/
export function isSymbol(data: unknown): data is symbol {
return isType(data, 'Symbol')
}
5 changes: 5 additions & 0 deletions packages/is/src/isTrue.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* 某个数据是否为true
* @param data 某个数据
* @returns 是否为true
*/
export function isTrue(data: unknown): data is true {
return data === true
}
7 changes: 7 additions & 0 deletions packages/is/src/isType.ts
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,13 @@ type Types =
| 'Error'
| 'Math'
| 'Argument'

/**
* 某个数据是否符合某个类型
* @param data 某个数据
* @param type 某个类型
* @returns 是否符合某个类型
*/
export function isType(data: unknown, type: Types): boolean {
return toRawType(data) === type
}
5 changes: 5 additions & 0 deletions packages/is/src/isUndefined.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
import { isType } from './isType'

/**
* 某个数据是否是undefined类型
* @param data 某个数据
* @returns 是否是undefined类型
*/
export function isUndefined(data: unknown): data is undefined {
return isType(data, 'Undefined')
}
21 changes: 12 additions & 9 deletions packages/object/src/deepCopy.ts
Original file line number Diff line number Diff line change
@@ -1,20 +1,23 @@
import { isArray, isDate, isObject, isRegExp } from '@xparcai-utils/is'

/**
* @func deepCopy
* @param {T} data 将要复制的对象
* @returns {T} 复制后的对象
* @desc 深拷贝对象
* 深拷贝某个数据
* @param {T} data 某个数据
* @returns {T} 拷贝后的数据
*/
export function deepCopy<T>(data: T): T

/**
* @func deepCopy
* @param {T} data 将要复制的对象
* @param {H extends object} [hash] 记录已复制过对象的哈希值
* @returns {T} 复制后的对象
* @desc 深拷贝对象
* 深拷贝某个数据
* @param {T} data 某个数据
* @param {H extends object} [hash] 解决循环依赖传入的记录对象
* @returns {T} 拷贝后的数据
*/
export function deepCopy<T, H extends object>(data: T, hash?: H): T

/**
* 深拷贝实现
*/
export function deepCopy<T>(data: T, hash: any = new WeakMap()): T {
// 日期对象直接返回一个新的日期对象
if (isDate(data)) {
Expand Down
2 changes: 1 addition & 1 deletion packages/string/index.ts
Original file line number Diff line number Diff line change
@@ -1 +1 @@
export * from './src'
export * from './src/toSlash'
3 changes: 0 additions & 3 deletions packages/string/src/index.ts

This file was deleted.

8 changes: 8 additions & 0 deletions packages/string/src/toSlash.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
/**
* 反 \ 转换为 /
* @param str 字符串
* @returns 转换后的字符串
*/
export function toSlash(str: string): string {
return str.replace(/\\/g, '/')
}
2 changes: 1 addition & 1 deletion packages/tool/__test__/toRawType.test.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { describe, expect, it } from 'vitest'
import { toRawType } from '../index'
import { toRawType } from '..'

describe('@xparcai-utils/tool', () => {
it('toRawType', () => {
Expand Down
5 changes: 5 additions & 0 deletions packages/tool/src/toRawType.ts
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
/**
* 获取某个数据的原始类型
* @param data 某个数据
* @returns 原始类型
*/
export function toRawType(data: unknown): string {
return Object.prototype.toString.call(data).slice(8, -1)
}
Loading