@cloudcome/utils-core 1.19.0 → 1.20.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.
Files changed (161) hide show
  1. package/README.md +1 -1
  2. package/dist/array.cjs +181 -125
  3. package/dist/array.cjs.map +1 -1
  4. package/dist/array.mjs +181 -133
  5. package/dist/array.mjs.map +1 -1
  6. package/dist/async.cjs +181 -171
  7. package/dist/async.cjs.map +1 -1
  8. package/dist/async.mjs +181 -174
  9. package/dist/async.mjs.map +1 -1
  10. package/dist/base64.cjs +16 -12
  11. package/dist/base64.cjs.map +1 -1
  12. package/dist/base64.mjs +17 -14
  13. package/dist/base64.mjs.map +1 -1
  14. package/dist/cache.cjs +79 -67
  15. package/dist/cache.cjs.map +1 -1
  16. package/dist/cache.d.ts +3 -3
  17. package/dist/cache.mjs +80 -71
  18. package/dist/cache.mjs.map +1 -1
  19. package/dist/color.cjs +478 -167
  20. package/dist/color.cjs.map +1 -1
  21. package/dist/color.d.ts +3 -3
  22. package/dist/color.mjs +480 -197
  23. package/dist/color.mjs.map +1 -1
  24. package/dist/crypto.cjs +474 -687
  25. package/dist/crypto.cjs.map +1 -1
  26. package/dist/crypto.mjs +476 -693
  27. package/dist/crypto.mjs.map +1 -1
  28. package/dist/date.cjs +972 -161
  29. package/dist/date.cjs.map +1 -1
  30. package/dist/date.d.ts +2 -2
  31. package/dist/date.mjs +962 -191
  32. package/dist/date.mjs.map +1 -1
  33. package/dist/dict.cjs +90 -52
  34. package/dist/dict.cjs.map +1 -1
  35. package/dist/dict.d.ts +1 -1
  36. package/dist/dict.mjs +91 -54
  37. package/dist/dict.mjs.map +1 -1
  38. package/dist/easing.cjs +105 -103
  39. package/dist/easing.cjs.map +1 -1
  40. package/dist/easing.mjs +106 -133
  41. package/dist/easing.mjs.map +1 -1
  42. package/dist/emitter.cjs +101 -96
  43. package/dist/emitter.cjs.map +1 -1
  44. package/dist/emitter.mjs +101 -97
  45. package/dist/emitter.mjs.map +1 -1
  46. package/dist/env.cjs +43 -9
  47. package/dist/env.cjs.map +1 -1
  48. package/dist/env.d.ts +1 -1
  49. package/dist/env.mjs +43 -15
  50. package/dist/env.mjs.map +1 -1
  51. package/dist/error.cjs +26 -5
  52. package/dist/error.cjs.map +1 -1
  53. package/dist/error.mjs +26 -7
  54. package/dist/error.mjs.map +1 -1
  55. package/dist/exception.cjs +38 -20
  56. package/dist/exception.cjs.map +1 -1
  57. package/dist/exception.d.ts +5 -5
  58. package/dist/exception.mjs +38 -21
  59. package/dist/exception.mjs.map +1 -1
  60. package/dist/function.cjs +128 -68
  61. package/dist/function.cjs.map +1 -1
  62. package/dist/function.mjs +128 -72
  63. package/dist/function.mjs.map +1 -1
  64. package/dist/index.cjs +8 -3
  65. package/dist/index.cjs.map +1 -1
  66. package/dist/index.mjs +9 -5
  67. package/dist/index.mjs.map +1 -1
  68. package/dist/number.cjs +10 -14
  69. package/dist/number.mjs +2 -15
  70. package/dist/object/get-set.d.ts +27 -3
  71. package/dist/object/merge.d.ts +2 -2
  72. package/dist/object.cjs +369 -106
  73. package/dist/object.cjs.map +1 -1
  74. package/dist/object.mjs +366 -115
  75. package/dist/object.mjs.map +1 -1
  76. package/dist/path.cjs +144 -55
  77. package/dist/path.cjs.map +1 -1
  78. package/dist/path.mjs +144 -62
  79. package/dist/path.mjs.map +1 -1
  80. package/dist/promise.cjs +84 -43
  81. package/dist/promise.cjs.map +1 -1
  82. package/dist/promise.mjs +85 -50
  83. package/dist/promise.mjs.map +1 -1
  84. package/dist/qs.cjs +63 -39
  85. package/dist/qs.cjs.map +1 -1
  86. package/dist/qs.mjs +64 -42
  87. package/dist/qs.mjs.map +1 -1
  88. package/dist/regexp.cjs +118 -35
  89. package/dist/regexp.cjs.map +1 -1
  90. package/dist/regexp.mjs +119 -46
  91. package/dist/regexp.mjs.map +1 -1
  92. package/dist/string.cjs +12 -15
  93. package/dist/string.mjs +2 -16
  94. package/dist/string2.cjs +378 -142
  95. package/dist/string2.cjs.map +1 -1
  96. package/dist/string2.mjs +259 -143
  97. package/dist/string2.mjs.map +1 -1
  98. package/dist/time.cjs +136 -59
  99. package/dist/time.cjs.map +1 -1
  100. package/dist/time.mjs +136 -65
  101. package/dist/time.mjs.map +1 -1
  102. package/dist/timer.cjs +122 -112
  103. package/dist/timer.cjs.map +1 -1
  104. package/dist/timer.mjs +123 -115
  105. package/dist/timer.mjs.map +1 -1
  106. package/dist/tree.cjs +207 -112
  107. package/dist/tree.cjs.map +1 -1
  108. package/dist/tree.mjs +207 -116
  109. package/dist/tree.mjs.map +1 -1
  110. package/dist/try/curry.d.ts +1 -1
  111. package/dist/try.cjs +36 -37
  112. package/dist/try.cjs.map +1 -1
  113. package/dist/try.mjs +35 -37
  114. package/dist/try.mjs.map +1 -1
  115. package/dist/type.cjs +126 -24
  116. package/dist/type.cjs.map +1 -1
  117. package/dist/type.d.ts +2 -2
  118. package/dist/type.mjs +128 -45
  119. package/dist/type.mjs.map +1 -1
  120. package/dist/types.cjs +0 -2
  121. package/dist/types.d.ts +2 -2
  122. package/dist/types.mjs +0 -2
  123. package/dist/unique.cjs +41 -38
  124. package/dist/unique.cjs.map +1 -1
  125. package/dist/unique.mjs +42 -41
  126. package/dist/unique.mjs.map +1 -1
  127. package/dist/url.cjs +39 -30
  128. package/dist/url.cjs.map +1 -1
  129. package/dist/url.mjs +40 -33
  130. package/dist/url.mjs.map +1 -1
  131. package/dist/version.cjs +51 -33
  132. package/dist/version.cjs.map +1 -1
  133. package/dist/version.mjs +51 -35
  134. package/dist/version.mjs.map +1 -1
  135. package/package.json +104 -105
  136. package/dist/const.cjs +0 -14
  137. package/dist/const.cjs.map +0 -1
  138. package/dist/const.mjs +0 -15
  139. package/dist/const.mjs.map +0 -1
  140. package/dist/core.cjs +0 -362
  141. package/dist/core.cjs.map +0 -1
  142. package/dist/core.mjs +0 -363
  143. package/dist/core.mjs.map +0 -1
  144. package/dist/crypto/md5.d.mts +0 -1
  145. package/dist/crypto/sha1.d.mts +0 -1
  146. package/dist/crypto/sha256.d.mts +0 -1
  147. package/dist/crypto/sha512.d.mts +0 -1
  148. package/dist/each.cjs +0 -18
  149. package/dist/each.cjs.map +0 -1
  150. package/dist/each.mjs +0 -19
  151. package/dist/each.mjs.map +0 -1
  152. package/dist/merge.cjs +0 -87
  153. package/dist/merge.cjs.map +0 -1
  154. package/dist/merge.mjs +0 -88
  155. package/dist/merge.mjs.map +0 -1
  156. package/dist/number.cjs.map +0 -1
  157. package/dist/number.mjs.map +0 -1
  158. package/dist/string.cjs.map +0 -1
  159. package/dist/string.mjs.map +0 -1
  160. package/dist/types.cjs.map +0 -1
  161. package/dist/types.mjs.map +0 -1
package/dist/try.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"try.mjs","sources":["../src/try/curry.ts","../src/try/callback.ts","../src/try/function.ts","../src/try/promise.ts","../src/try/main.ts"],"sourcesContent":["// biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\nexport type Callback<T = void> = (err: null | undefined | void | Error, res: T) => unknown;\n\nexport type CallbackFunction0<T = void> = (callback: Callback<T>) => unknown;\nexport type CallbackFunction1<A, T = void> = (a: A, callback: Callback<T>) => unknown;\nexport type CallbackFunction2<A, B, T = void> = (a: A, b: B, callback: Callback<T>) => unknown;\nexport type CallbackFunction3<A, B, C, T = void> = (a: A, b: B, c: C, callback: Callback<T>) => unknown;\nexport type CallbackFunction4<A, B, C, D, T = void> = (a: A, b: B, c: C, d: D, callback: Callback<T>) => unknown;\nexport type CallbackFunction5<A, B, C, D, E, T = void> = (\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction6<A, B, C, D, E, F, T = void> = (\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n callback: Callback<T>,\n) => unknown;\n\nexport type CallbackCurried<T> = (callback: Callback<T>) => unknown;\n\nexport function callbackCurry<T = void>(cf: CallbackFunction0<T>): CallbackCurried<T>;\nexport function callbackCurry<A, T = void>(cf: CallbackFunction1<A, T>, a: A): CallbackCurried<T>;\nexport function callbackCurry<A, B, T = void>(cf: CallbackFunction2<A, B, T>, a: A, b: B): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, T = void>(\n cf: CallbackFunction3<A, B, C, T>,\n a: A,\n b: B,\n c: C,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, T = void>(\n cf: CallbackFunction4<A, B, C, D, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, E, T = void>(\n cf: CallbackFunction5<A, B, C, D, E, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, E, F, T = void>(\n cf: CallbackFunction6<A, B, C, D, E, F, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n): CallbackCurried<T>;\nexport function callbackCurry(cf: unknown, ...args: unknown[]): CallbackCurried<unknown> {\n return function callbackCurried(callback: Callback<unknown>) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n cf.apply(this, [...args, callback]);\n };\n}\n","import { errorNormalize } from '@/error';\nimport type {\n CallbackFunction0,\n CallbackFunction1,\n CallbackFunction2,\n CallbackFunction3,\n CallbackFunction4,\n CallbackFunction5,\n CallbackFunction6,\n} from './curry';\nimport { callbackCurry } from './curry';\nimport type { FlattenReturn } from './types';\n\nexport function tryCallback(cf: CallbackFunction0): Promise<FlattenReturn>;\nexport function tryCallback<T = void>(cf: CallbackFunction0<T>): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, T = void>(cf: CallbackFunction1<A, T>, a: A): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, T = void>(cf: CallbackFunction2<A, B, T>, a: A, b: B): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, T = void>(\n cf: CallbackFunction3<A, B, C, T>,\n a: A,\n b: B,\n c: C,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, T = void>(\n cf: CallbackFunction4<A, B, C, D>,\n a: A,\n b: B,\n c: C,\n d: D,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, E, T = void>(\n cf: CallbackFunction5<A, B, C, D, E, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, E, F, T = void>(\n cf: CallbackFunction6<A, B, C, D, E, F, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback(cf: unknown, ...args: unknown[]): Promise<FlattenReturn<unknown>> {\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n callbackCurry.apply(this, [cf, ...args])((err, res) => {\n if (err) {\n resolve([errorNormalize(err), undefined] as const);\n } else {\n resolve([undefined, res] as const);\n }\n });\n });\n}\n","import { errorNormalize } from '@/error';\nimport type { FlattenReturn } from './types';\n\nexport type SyncFunction<T> = () => T;\n\nexport function trySync<T>(syncFn: SyncFunction<T>): FlattenReturn<T> {\n try {\n return [undefined, syncFn()] as const;\n } catch (err) {\n return [errorNormalize(err), undefined] as const;\n }\n}\n\nexport type AsyncFunction<T> = () => Promise<T>;\n\nexport function tryAsync<T>(asyncFn: AsyncFunction<T>): Promise<FlattenReturn<T>> {\n return asyncFn().then(\n (res) => [undefined, res] as const,\n (err) => [errorNormalize(err), undefined] as const,\n );\n}\n","import { errorNormalize } from '@/error';\nimport type { FlattenReturn } from './types';\n\nexport function tryPromise<T>(promise: PromiseLike<T>): PromiseLike<FlattenReturn<T>> {\n return promise.then(\n (res) => [undefined, res] as const,\n (err) => [errorNormalize(err), undefined] as const,\n );\n}\n","import { isAsyncFunction } from '@/type';\nimport { tryCallback } from './callback';\nimport type { CallbackFunction0 } from './curry';\nimport { type AsyncFunction, type SyncFunction, tryAsync, trySync } from './function';\nimport { tryPromise } from './promise';\nimport type { FlattenReturn } from './types';\n\nexport type FlattenAble<T> = SyncFunction<T> | AsyncFunction<T> | CallbackFunction0<T> | PromiseLike<T>;\n\n// 注意顺序 AsyncFunction > SyncFunction > CallbackFunction0 > PromiseLike\n// 需要先匹配 AsyncFunction,否则会把入参当做同步函数\nexport function tryFlatten<T>(flattenAble: AsyncFunction<T>): Promise<FlattenReturn<T>>;\nexport function tryFlatten<T>(flattenAble: SyncFunction<T>): FlattenReturn<T>;\nexport function tryFlatten<T>(flattenAble: CallbackFunction0<T> | PromiseLike<T>): Promise<FlattenReturn<T>>;\nexport function tryFlatten<T>(flattenAble: FlattenAble<T>): unknown {\n if ('then' in flattenAble) {\n return tryPromise<T>(flattenAble);\n }\n\n // SyncFunction | AsyncFunction\n if (flattenAble.length === 0) {\n if (isAsyncFunction(flattenAble)) return tryAsync<T>(flattenAble as AsyncFunction<T>);\n return trySync<T>(flattenAble as SyncFunction<T>);\n }\n\n return tryCallback<T>(flattenAble);\n}\n"],"names":[],"mappings":";;AA6DgB,SAAA,cAAc,OAAgB,MAA2C;AAChF,SAAA,SAAS,gBAAgB,UAA6B;AAG3D,OAAG,MAAM,MAAM,CAAC,GAAG,MAAM,QAAQ,CAAC;AAAA,EACpC;AACF;ACpBgB,SAAA,YAAY,OAAgB,MAAkD;AACrF,SAAA,IAAI,QAAQ,CAAC,YAAY;AAGhB,kBAAA,MAAM,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,KAAK,QAAQ;AACrD,UAAI,KAAK;AACP,gBAAQ,CAAC,eAAe,GAAG,GAAG,MAAS,CAAU;AAAA,MAAA,OAC5C;AACG,gBAAA,CAAC,QAAW,GAAG,CAAU;AAAA,MAAA;AAAA,IACnC,CACD;AAAA,EAAA,CACF;AACH;ACtDO,SAAS,QAAW,QAA2C;AAChE,MAAA;AACK,WAAA,CAAC,QAAW,QAAQ;AAAA,WACpB,KAAK;AACZ,WAAO,CAAC,eAAe,GAAG,GAAG,MAAS;AAAA,EAAA;AAE1C;AAIO,SAAS,SAAY,SAAsD;AAChF,SAAO,QAAU,EAAA;AAAA,IACf,CAAC,QAAQ,CAAC,QAAW,GAAG;AAAA,IACxB,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG,MAAS;AAAA,EAC1C;AACF;ACjBO,SAAS,WAAc,SAAwD;AACpF,SAAO,QAAQ;AAAA,IACb,CAAC,QAAQ,CAAC,QAAW,GAAG;AAAA,IACxB,CAAC,QAAQ,CAAC,eAAe,GAAG,GAAG,MAAS;AAAA,EAC1C;AACF;ACMO,SAAS,WAAc,aAAsC;AAClE,MAAI,UAAU,aAAa;AACzB,WAAO,WAAc,WAAW;AAAA,EAAA;AAI9B,MAAA,YAAY,WAAW,GAAG;AAC5B,QAAI,gBAAgB,WAAW,EAAG,QAAO,SAAY,WAA+B;AACpF,WAAO,QAAW,WAA8B;AAAA,EAAA;AAGlD,SAAO,YAAe,WAAW;AACnC;"}
1
+ {"version":3,"file":"try.mjs","names":[],"sources":["../src/try/curry.ts","../src/try/callback.ts","../src/try/function.ts","../src/try/promise.ts","../src/try/main.ts"],"sourcesContent":["export type Callback<T = void> = (\n err: null | undefined | undefined | Error,\n res: T,\n) => unknown;\n\nexport type CallbackFunction0<T = void> = (callback: Callback<T>) => unknown;\nexport type CallbackFunction1<A, T = void> = (\n a: A,\n callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction2<A, B, T = void> = (\n a: A,\n b: B,\n callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction3<A, B, C, T = void> = (\n a: A,\n b: B,\n c: C,\n callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction4<A, B, C, D, T = void> = (\n a: A,\n b: B,\n c: C,\n d: D,\n callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction5<A, B, C, D, E, T = void> = (\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n callback: Callback<T>,\n) => unknown;\nexport type CallbackFunction6<A, B, C, D, E, F, T = void> = (\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n callback: Callback<T>,\n) => unknown;\n\nexport type CallbackCurried<T> = (callback: Callback<T>) => unknown;\n\nexport function callbackCurry<T = void>(\n cf: CallbackFunction0<T>,\n): CallbackCurried<T>;\nexport function callbackCurry<A, T = void>(\n cf: CallbackFunction1<A, T>,\n a: A,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, T = void>(\n cf: CallbackFunction2<A, B, T>,\n a: A,\n b: B,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, T = void>(\n cf: CallbackFunction3<A, B, C, T>,\n a: A,\n b: B,\n c: C,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, T = void>(\n cf: CallbackFunction4<A, B, C, D, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, E, T = void>(\n cf: CallbackFunction5<A, B, C, D, E, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): CallbackCurried<T>;\nexport function callbackCurry<A, B, C, D, E, F, T = void>(\n cf: CallbackFunction6<A, B, C, D, E, F, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n): CallbackCurried<T>;\nexport function callbackCurry(\n cf: unknown,\n ...args: unknown[]\n): CallbackCurried<unknown> {\n return function callbackCurried(callback: Callback<unknown>) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n cf.apply(this, [...args, callback]);\n };\n}\n","import { errorNormalize } from '@/error';\nimport type {\n CallbackFunction0,\n CallbackFunction1,\n CallbackFunction2,\n CallbackFunction3,\n CallbackFunction4,\n CallbackFunction5,\n CallbackFunction6,\n} from './curry';\nimport { callbackCurry } from './curry';\nimport type { FlattenReturn } from './types';\n\nexport function tryCallback(cf: CallbackFunction0): Promise<FlattenReturn>;\nexport function tryCallback<T = void>(\n cf: CallbackFunction0<T>,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, T = void>(\n cf: CallbackFunction1<A, T>,\n a: A,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, T = void>(\n cf: CallbackFunction2<A, B, T>,\n a: A,\n b: B,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, T = void>(\n cf: CallbackFunction3<A, B, C, T>,\n a: A,\n b: B,\n c: C,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, T = void>(\n cf: CallbackFunction4<A, B, C, D>,\n a: A,\n b: B,\n c: C,\n d: D,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, E, T = void>(\n cf: CallbackFunction5<A, B, C, D, E, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback<A, B, C, D, E, F, T = void>(\n cf: CallbackFunction6<A, B, C, D, E, F, T>,\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n f: F,\n): Promise<FlattenReturn<T>>;\nexport function tryCallback(\n cf: unknown,\n ...args: unknown[]\n): Promise<FlattenReturn<unknown>> {\n return new Promise((resolve) => {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-expect-error\n callbackCurry.apply(this, [cf, ...args])((err, res) => {\n if (err) {\n resolve([errorNormalize(err), undefined] as const);\n } else {\n resolve([undefined, res] as const);\n }\n });\n });\n}\n","import { errorNormalize } from '@/error';\nimport type { FlattenReturn } from './types';\n\nexport type SyncFunction<T> = () => T;\n\nexport function trySync<T>(syncFn: SyncFunction<T>): FlattenReturn<T> {\n try {\n return [undefined, syncFn()] as const;\n } catch (err) {\n return [errorNormalize(err), undefined] as const;\n }\n}\n\nexport type AsyncFunction<T> = () => Promise<T>;\n\nexport function tryAsync<T>(\n asyncFn: AsyncFunction<T>,\n): Promise<FlattenReturn<T>> {\n return asyncFn().then(\n (res) => [undefined, res] as const,\n (err) => [errorNormalize(err), undefined] as const,\n );\n}\n","import { errorNormalize } from '@/error';\nimport type { FlattenReturn } from './types';\n\nexport function tryPromise<T>(\n promise: PromiseLike<T>,\n): PromiseLike<FlattenReturn<T>> {\n return promise.then(\n (res) => [undefined, res] as const,\n (err) => [errorNormalize(err), undefined] as const,\n );\n}\n","import { isAsyncFunction } from '@/type';\nimport { tryCallback } from './callback';\nimport type { CallbackFunction0 } from './curry';\nimport {\n type AsyncFunction,\n type SyncFunction,\n tryAsync,\n trySync,\n} from './function';\nimport { tryPromise } from './promise';\nimport type { FlattenReturn } from './types';\n\nexport type FlattenAble<T> =\n | SyncFunction<T>\n | AsyncFunction<T>\n | CallbackFunction0<T>\n | PromiseLike<T>;\n\n// 注意顺序 AsyncFunction > SyncFunction > CallbackFunction0 > PromiseLike\n// 需要先匹配 AsyncFunction,否则会把入参当做同步函数\nexport function tryFlatten<T>(\n flattenAble: AsyncFunction<T>,\n): Promise<FlattenReturn<T>>;\nexport function tryFlatten<T>(flattenAble: SyncFunction<T>): FlattenReturn<T>;\nexport function tryFlatten<T>(\n flattenAble: CallbackFunction0<T> | PromiseLike<T>,\n): Promise<FlattenReturn<T>>;\nexport function tryFlatten<T>(flattenAble: FlattenAble<T>): unknown {\n if ('then' in flattenAble) {\n return tryPromise<T>(flattenAble);\n }\n\n // SyncFunction | AsyncFunction\n if (flattenAble.length === 0) {\n if (isAsyncFunction(flattenAble))\n return tryAsync<T>(flattenAble as AsyncFunction<T>);\n return trySync<T>(flattenAble as SyncFunction<T>);\n }\n\n return tryCallback<T>(flattenAble);\n}\n"],"mappings":";;;AA0FA,SAAgB,cACd,IACA,GAAG,MACuB;CAC1B,OAAO,SAAS,gBAAgB,UAA6B;EAG3D,GAAG,MAAM,MAAM,CAAC,GAAG,MAAM,SAAS,CAAC;;;;;ACzCvC,SAAgB,YACd,IACA,GAAG,MAC8B;CACjC,OAAO,IAAI,SAAS,YAAY;EAG9B,cAAc,MAAM,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC,EAAE,KAAK,QAAQ;GACrD,IAAI,KACF,QAAQ,CAAC,eAAe,IAAI,EAAE,KAAA,EAAU,CAAU;QAElD,QAAQ,CAAC,KAAA,GAAW,IAAI,CAAU;IAEpC;GACF;;;;ACjEJ,SAAgB,QAAW,QAA2C;CACpE,IAAI;EACF,OAAO,CAAC,KAAA,GAAW,QAAQ,CAAC;UACrB,KAAK;EACZ,OAAO,CAAC,eAAe,IAAI,EAAE,KAAA,EAAU;;;AAM3C,SAAgB,SACd,SAC2B;CAC3B,OAAO,SAAS,CAAC,MACd,QAAQ,CAAC,KAAA,GAAW,IAAI,GACxB,QAAQ,CAAC,eAAe,IAAI,EAAE,KAAA,EAAU,CAC1C;;;;AClBH,SAAgB,WACd,SAC+B;CAC/B,OAAO,QAAQ,MACZ,QAAQ,CAAC,KAAA,GAAW,IAAI,GACxB,QAAQ,CAAC,eAAe,IAAI,EAAE,KAAA,EAAU,CAC1C;;;;ACkBH,SAAgB,WAAc,aAAsC;CAClE,IAAI,UAAU,aACZ,OAAO,WAAc,YAAY;CAInC,IAAI,YAAY,WAAW,GAAG;EAC5B,IAAI,gBAAgB,YAAY,EAC9B,OAAO,SAAY,YAAgC;EACrD,OAAO,QAAW,YAA+B;;CAGnD,OAAO,YAAe,YAAY"}
package/dist/type.cjs CHANGED
@@ -1,61 +1,162 @@
1
- "use strict";
2
1
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ //#region src/type.ts
3
+ /**
4
+ * 获取未知类型的类型名称
5
+ * @param unknown - 未知类型的值
6
+ * @returns 类型名称字符串
7
+ */
3
8
  function typeIs(unknown) {
4
- return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();
9
+ return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();
5
10
  }
11
+ /**
12
+ * 检查值是否为字符串
13
+ * @param unknown - 未知类型的值
14
+ * @returns 如果值为字符串则返回 true,否则返回 false
15
+ */
6
16
  function isString(unknown) {
7
- return typeof unknown === "string";
17
+ return typeof unknown === "string";
8
18
  }
19
+ /**
20
+ * 检查值是否为布尔值
21
+ * @param unknown - 未知类型的值
22
+ * @returns 如果值为布尔值则返回 true,否则返回 false
23
+ */
9
24
  function isBoolean(unknown) {
10
- return typeof unknown === "boolean";
25
+ return typeof unknown === "boolean";
11
26
  }
27
+ /**
28
+ * 检查值是否为符号
29
+ * @param unknown - 未知类型的值
30
+ * @returns 如果值为符号则返回 true,否则返回 false
31
+ */
12
32
  function isSymbol(unknown) {
13
- return typeof unknown === "symbol";
33
+ return typeof unknown === "symbol";
14
34
  }
35
+ /**
36
+ * 检查值是否为大整数
37
+ * @param unknown - 未知类型的值
38
+ * @returns 如果值为大整数则返回 true,否则返回 false
39
+ */
15
40
  function isBigInt(unknown) {
16
- return typeof unknown === "bigint";
41
+ return typeof unknown === "bigint";
17
42
  }
43
+ /**
44
+ * 检查值是否为数字
45
+ * @param unknown - 未知类型的值
46
+ * @returns 如果值为数字且不是 NaN 则返回 true,否则返回 false
47
+ */
18
48
  function isNumber(unknown) {
19
- return typeof unknown === "number" && !Number.isNaN(unknown);
49
+ return typeof unknown === "number" && !Number.isNaN(unknown);
20
50
  }
51
+ /**
52
+ * 检查值是否为 undefined
53
+ * @param unknown - 未知类型的值
54
+ * @returns 如果值为 undefined 则返回 true,否则返回 false
55
+ */
21
56
  function isUndefined(unknown) {
22
- return typeof unknown === "undefined";
57
+ return typeof unknown === "undefined";
23
58
  }
59
+ /**
60
+ * 检查值是否为 void
61
+ * @param unknown - 未知类型的值
62
+ * @returns 如果值为 undefined 则返回 true,否则返回 false
63
+ */
24
64
  function isVoid(unknown) {
25
- return isUndefined(unknown);
26
- }
27
- function isNever(unknown) {
28
- }
65
+ return isUndefined(unknown);
66
+ }
67
+ /**
68
+ * 永不执行,用于 switch-case/if-else 类型断言
69
+ * @param unknown - 永远不会执行的值
70
+ */
71
+ function isNever(_unknown) {}
72
+ /**
73
+ * 检查值是否为 null
74
+ * @param unknown - 未知类型的值
75
+ * @returns 如果值为 null 则返回 true,否则返回 false
76
+ */
29
77
  function isNull(unknown) {
30
- return unknown === null;
78
+ return unknown === null;
31
79
  }
80
+ /**
81
+ * 检查值是否为 nullish(null 或 undefined 或 void)
82
+ * @param unknown - 未知类型的值
83
+ * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false
84
+ */
32
85
  function isNullish(unknown) {
33
- return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);
86
+ return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);
34
87
  }
88
+ /**
89
+ * 检查值是否为原始类型(null 或 非对象)
90
+ * @param unknown - 未知类型的值
91
+ * @returns 如果值为原始类型则返回 true,否则返回 false
92
+ */
35
93
  function isPrimitive(unknown) {
36
- return isNull(unknown) || !(typeof unknown === "object" || typeof unknown === "function");
94
+ return isNull(unknown) || !(typeof unknown === "object" || typeof unknown === "function");
37
95
  }
96
+ /**
97
+ * 检查值是否为对象,但要注意,此时的对象类型是包含了数组和函数
98
+ * @param unknown - 未知类型的值
99
+ * @returns 如果值为对象则返回 true,否则返回 false
100
+ */
38
101
  function isObject(unknown) {
39
- return typeIs(unknown) === "object";
102
+ return typeIs(unknown) === "object";
40
103
  }
104
+ /**
105
+ * 检查值是否为数组
106
+ * @param unknown - 未知类型的值
107
+ * @returns 如果值为数组则返回 true,否则返回 false
108
+ */
41
109
  function isArray(unknown) {
42
- return Array.isArray(unknown);
110
+ return Array.isArray(unknown);
43
111
  }
112
+ /**
113
+ * 检查值是否为函数
114
+ * @param unknown - 未知类型的值
115
+ * @returns 如果值为函数则返回 true,否则返回 false
116
+ */
44
117
  function isFunction(unknown) {
45
- return typeof unknown === "function";
46
- }
118
+ return typeof unknown === "function";
119
+ }
120
+ /**
121
+ * 检查值是否为异步函数
122
+ * @param unknown - 需要检查的值
123
+ * @returns 如果值为异步函数则返回 true,否则返回 false
124
+ * @example
125
+ * ```typescript
126
+ * async function example() {}
127
+ *
128
+ * isAsyncFunction(example); // true
129
+ * isAsyncFunction(() => {}); // false
130
+ * ```
131
+ */
47
132
  function isAsyncFunction(unknown) {
48
- return isFunction(unknown) && unknown.constructor.name === "AsyncFunction";
133
+ return isFunction(unknown) && unknown.constructor.name === "AsyncFunction";
49
134
  }
135
+ /**
136
+ * 检查值是否为 Error 类型
137
+ * @param unknown - 未知类型的值
138
+ * @returns 如果值为 Error 类型则返回 true,否则返回 false
139
+ */
50
140
  function isError(unknown) {
51
- return unknown instanceof Error;
141
+ return unknown instanceof Error;
52
142
  }
143
+ /**
144
+ * 检查值是否为 Promise 类型
145
+ * @param unknown - 未知类型的值
146
+ * @returns 如果值为 Promise 类型则返回 true,否则返回 false
147
+ */
53
148
  function isPromise(unknown) {
54
- return typeIs(unknown) === "promise";
149
+ return typeIs(unknown) === "promise";
55
150
  }
151
+ /**
152
+ * 检查值是否为 Date 类型
153
+ * @param unknown - 未知类型的值
154
+ * @returns 如果值为 Date 类型则返回 true,否则返回 false
155
+ */
56
156
  function isDate(unknown) {
57
- return unknown instanceof Date;
157
+ return unknown instanceof Date;
58
158
  }
159
+ //#endregion
59
160
  exports.isArray = isArray;
60
161
  exports.isAsyncFunction = isAsyncFunction;
61
162
  exports.isBigInt = isBigInt;
@@ -75,4 +176,5 @@ exports.isSymbol = isSymbol;
75
176
  exports.isUndefined = isUndefined;
76
177
  exports.isVoid = isVoid;
77
178
  exports.typeIs = typeIs;
78
- //# sourceMappingURL=type.cjs.map
179
+
180
+ //# sourceMappingURL=type.cjs.map
package/dist/type.cjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"type.cjs","sources":["../src/type.ts"],"sourcesContent":["import type { AnyArray, AnyAsyncFunction, AnyFunction, AnyObject } from './types';\n\n/**\n * 获取未知类型的类型名称\n * @param unknown - 未知类型的值\n * @returns 类型名称字符串\n */\nexport function typeIs(\n unknown: unknown,\n):\n | 'string'\n | 'number'\n | 'boolean'\n | 'object'\n | 'array'\n | 'function'\n | 'null'\n | 'undefined'\n | 'symbol'\n | 'bigint'\n | 'error'\n | 'promise'\n | string {\n return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();\n}\n\n/**\n * 检查值是否为字符串\n * @param unknown - 未知类型的值\n * @returns 如果值为字符串则返回 true,否则返回 false\n */\nexport function isString(unknown: unknown): unknown is string {\n return typeof unknown === 'string';\n}\n\n/**\n * 检查值是否为布尔值\n * @param unknown - 未知类型的值\n * @returns 如果值为布尔值则返回 true,否则返回 false\n */\nexport function isBoolean(unknown: unknown): unknown is boolean {\n return typeof unknown === 'boolean';\n}\n\n/**\n * 检查值是否为符号\n * @param unknown - 未知类型的值\n * @returns 如果值为符号则返回 true,否则返回 false\n */\nexport function isSymbol(unknown: unknown): unknown is symbol {\n return typeof unknown === 'symbol';\n}\n\n/**\n * 检查值是否为大整数\n * @param unknown - 未知类型的值\n * @returns 如果值为大整数则返回 true,否则返回 false\n */\nexport function isBigInt(unknown: unknown): unknown is bigint {\n return typeof unknown === 'bigint';\n}\n\n/**\n * 检查值是否为数字\n * @param unknown - 未知类型的值\n * @returns 如果值为数字且不是 NaN 则返回 true,否则返回 false\n */\nexport function isNumber(unknown: unknown): unknown is number {\n return typeof unknown === 'number' && !Number.isNaN(unknown);\n}\n\n/**\n * 检查值是否为 undefined\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\nexport function isUndefined(unknown: unknown): unknown is undefined {\n return typeof unknown === 'undefined';\n}\n\n/**\n * 检查值是否为 void\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\nexport function isVoid(unknown: unknown): unknown is void {\n return isUndefined(unknown);\n}\n\n/**\n * 永不执行,用于 switch-case/if-else 类型断言\n * @param unknown - 永远不会执行的值\n */\nexport function isNever(unknown: never) {\n //\n}\n\n/**\n * 检查值是否为 null\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 则返回 true,否则返回 false\n */\nexport function isNull(unknown: unknown): unknown is null {\n return unknown === null;\n}\n\n/**\n * 检查值是否为 nullish(null 或 undefined 或 void)\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\nexport function isNullish(unknown: unknown): unknown is null | undefined | void {\n return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);\n}\n\n/**\n * 检查值是否为原始类型(null 或 非对象)\n * @param unknown - 未知类型的值\n * @returns 如果值为原始类型则返回 true,否则返回 false\n */\nexport function isPrimitive(\n unknown: unknown,\n): unknown is string | number | boolean | symbol | bigint | null | undefined {\n return isNull(unknown) || !(typeof unknown === 'object' || typeof unknown === 'function');\n}\n\n/**\n * 检查值是否为对象,但要注意,此时的对象类型是包含了数组和函数\n * @param unknown - 未知类型的值\n * @returns 如果值为对象则返回 true,否则返回 false\n */\nexport function isObject(unknown: unknown): unknown is AnyObject {\n return typeIs(unknown) === 'object';\n}\n\n/**\n * 检查值是否为数组\n * @param unknown - 未知类型的值\n * @returns 如果值为数组则返回 true,否则返回 false\n */\nexport function isArray(unknown: unknown): unknown is AnyArray {\n return Array.isArray(unknown);\n}\n\n/**\n * 检查值是否为函数\n * @param unknown - 未知类型的值\n * @returns 如果值为函数则返回 true,否则返回 false\n */\nexport function isFunction(unknown: unknown): unknown is AnyFunction {\n return typeof unknown === 'function';\n}\n\n/**\n * 检查值是否为异步函数\n * @param unknown - 需要检查的值\n * @returns 如果值为异步函数则返回 true,否则返回 false\n * @example\n * ```typescript\n * async function example() {}\n *\n * isAsyncFunction(example); // true\n * isAsyncFunction(() => {}); // false\n * ```\n */\nexport function isAsyncFunction(unknown: unknown): unknown is AnyAsyncFunction {\n return isFunction(unknown) && unknown.constructor.name === 'AsyncFunction';\n}\n\n/**\n * 检查值是否为 Error 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Error 类型则返回 true,否则返回 false\n */\nexport function isError(unknown: unknown): unknown is Error {\n return unknown instanceof Error;\n}\n\n/**\n * 检查值是否为 Promise 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Promise 类型则返回 true,否则返回 false\n */\nexport function isPromise<T>(unknown: unknown): unknown is Promise<T> {\n return typeIs(unknown) === 'promise';\n}\n\n/**\n * 检查值是否为 Date 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Date 类型则返回 true,否则返回 false\n */\nexport function isDate(unknown: unknown): unknown is Date {\n return unknown instanceof Date;\n}\n"],"names":[],"mappings":";;AAOO,SAAS,OACd,SAcS;AACF,SAAA,OAAO,UAAU,SAAS,KAAK,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,YAAY;AAC1E;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,UAAU,SAAsC;AAC9D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY,YAAY,CAAC,OAAO,MAAM,OAAO;AAC7D;AAOO,SAAS,YAAY,SAAwC;AAClE,SAAO,OAAO,YAAY;AAC5B;AAQO,SAAS,OAAO,SAAmC;AACxD,SAAO,YAAY,OAAO;AAC5B;AAMO,SAAS,QAAQ,SAAgB;AAExC;AAOO,SAAS,OAAO,SAAmC;AACxD,SAAO,YAAY;AACrB;AAQO,SAAS,UAAU,SAAsD;AAC9E,SAAO,OAAO,OAAO,KAAK,YAAY,OAAO,KAAK,OAAO,OAAO;AAClE;AAOO,SAAS,YACd,SAC2E;AACpE,SAAA,OAAO,OAAO,KAAK,EAAE,OAAO,YAAY,YAAY,OAAO,YAAY;AAChF;AAOO,SAAS,SAAS,SAAwC;AACxD,SAAA,OAAO,OAAO,MAAM;AAC7B;AAOO,SAAS,QAAQ,SAAuC;AACtD,SAAA,MAAM,QAAQ,OAAO;AAC9B;AAOO,SAAS,WAAW,SAA0C;AACnE,SAAO,OAAO,YAAY;AAC5B;AAcO,SAAS,gBAAgB,SAA+C;AAC7E,SAAO,WAAW,OAAO,KAAK,QAAQ,YAAY,SAAS;AAC7D;AAOO,SAAS,QAAQ,SAAoC;AAC1D,SAAO,mBAAmB;AAC5B;AAOO,SAAS,UAAa,SAAyC;AAC7D,SAAA,OAAO,OAAO,MAAM;AAC7B;AAOO,SAAS,OAAO,SAAmC;AACxD,SAAO,mBAAmB;AAC5B;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"type.cjs","names":[],"sources":["../src/type.ts"],"sourcesContent":["import type {\n AnyArray,\n AnyAsyncFunction,\n AnyFunction,\n AnyObject,\n} from './types';\n\n/**\n * 获取未知类型的类型名称\n * @param unknown - 未知类型的值\n * @returns 类型名称字符串\n */\nexport function typeIs(\n unknown: unknown,\n):\n | 'string'\n | 'number'\n | 'boolean'\n | 'object'\n | 'array'\n | 'function'\n | 'null'\n | 'undefined'\n | 'symbol'\n | 'bigint'\n | 'error'\n | 'promise'\n | string {\n return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();\n}\n\n/**\n * 检查值是否为字符串\n * @param unknown - 未知类型的值\n * @returns 如果值为字符串则返回 true,否则返回 false\n */\nexport function isString(unknown: unknown): unknown is string {\n return typeof unknown === 'string';\n}\n\n/**\n * 检查值是否为布尔值\n * @param unknown - 未知类型的值\n * @returns 如果值为布尔值则返回 true,否则返回 false\n */\nexport function isBoolean(unknown: unknown): unknown is boolean {\n return typeof unknown === 'boolean';\n}\n\n/**\n * 检查值是否为符号\n * @param unknown - 未知类型的值\n * @returns 如果值为符号则返回 true,否则返回 false\n */\nexport function isSymbol(unknown: unknown): unknown is symbol {\n return typeof unknown === 'symbol';\n}\n\n/**\n * 检查值是否为大整数\n * @param unknown - 未知类型的值\n * @returns 如果值为大整数则返回 true,否则返回 false\n */\nexport function isBigInt(unknown: unknown): unknown is bigint {\n return typeof unknown === 'bigint';\n}\n\n/**\n * 检查值是否为数字\n * @param unknown - 未知类型的值\n * @returns 如果值为数字且不是 NaN 则返回 true,否则返回 false\n */\nexport function isNumber(unknown: unknown): unknown is number {\n return typeof unknown === 'number' && !Number.isNaN(unknown);\n}\n\n/**\n * 检查值是否为 undefined\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\nexport function isUndefined(unknown: unknown): unknown is undefined {\n return typeof unknown === 'undefined';\n}\n\n/**\n * 检查值是否为 void\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: 必须使用 void 类型断言\nexport function isVoid(unknown: unknown): unknown is void {\n return isUndefined(unknown);\n}\n\n/**\n * 永不执行,用于 switch-case/if-else 类型断言\n * @param unknown - 永远不会执行的值\n */\nexport function isNever(_unknown: never) {\n //\n}\n\n/**\n * 检查值是否为 null\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 则返回 true,否则返回 false\n */\nexport function isNull(unknown: unknown): unknown is null {\n return unknown === null;\n}\n\n/**\n * 检查值是否为 nullish(null 或 undefined 或 void)\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false\n */\nexport function isNullish(\n unknown: unknown,\n): unknown is null | undefined | undefined {\n return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);\n}\n\n/**\n * 检查值是否为原始类型(null 或 非对象)\n * @param unknown - 未知类型的值\n * @returns 如果值为原始类型则返回 true,否则返回 false\n */\nexport function isPrimitive(\n unknown: unknown,\n): unknown is string | number | boolean | symbol | bigint | null | undefined {\n return (\n isNull(unknown) ||\n !(typeof unknown === 'object' || typeof unknown === 'function')\n );\n}\n\n/**\n * 检查值是否为对象,但要注意,此时的对象类型是包含了数组和函数\n * @param unknown - 未知类型的值\n * @returns 如果值为对象则返回 true,否则返回 false\n */\nexport function isObject(unknown: unknown): unknown is AnyObject {\n return typeIs(unknown) === 'object';\n}\n\n/**\n * 检查值是否为数组\n * @param unknown - 未知类型的值\n * @returns 如果值为数组则返回 true,否则返回 false\n */\nexport function isArray(unknown: unknown): unknown is AnyArray {\n return Array.isArray(unknown);\n}\n\n/**\n * 检查值是否为函数\n * @param unknown - 未知类型的值\n * @returns 如果值为函数则返回 true,否则返回 false\n */\nexport function isFunction(unknown: unknown): unknown is AnyFunction {\n return typeof unknown === 'function';\n}\n\n/**\n * 检查值是否为异步函数\n * @param unknown - 需要检查的值\n * @returns 如果值为异步函数则返回 true,否则返回 false\n * @example\n * ```typescript\n * async function example() {}\n *\n * isAsyncFunction(example); // true\n * isAsyncFunction(() => {}); // false\n * ```\n */\nexport function isAsyncFunction(unknown: unknown): unknown is AnyAsyncFunction {\n return isFunction(unknown) && unknown.constructor.name === 'AsyncFunction';\n}\n\n/**\n * 检查值是否为 Error 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Error 类型则返回 true,否则返回 false\n */\nexport function isError(unknown: unknown): unknown is Error {\n return unknown instanceof Error;\n}\n\n/**\n * 检查值是否为 Promise 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Promise 类型则返回 true,否则返回 false\n */\nexport function isPromise<T>(unknown: unknown): unknown is Promise<T> {\n return typeIs(unknown) === 'promise';\n}\n\n/**\n * 检查值是否为 Date 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Date 类型则返回 true,否则返回 false\n */\nexport function isDate(unknown: unknown): unknown is Date {\n return unknown instanceof Date;\n}\n"],"mappings":";;;;;;;AAYA,SAAgB,OACd,SAcS;CACT,OAAO,OAAO,UAAU,SAAS,KAAK,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,aAAa;;;;;;;AAQ3E,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,UAAU,SAAsC;CAC9D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY,YAAY,CAAC,OAAO,MAAM,QAAQ;;;;;;;AAQ9D,SAAgB,YAAY,SAAwC;CAClE,OAAO,OAAO,YAAY;;;;;;;AAS5B,SAAgB,OAAO,SAAmC;CACxD,OAAO,YAAY,QAAQ;;;;;;AAO7B,SAAgB,QAAQ,UAAiB;;;;;;AASzC,SAAgB,OAAO,SAAmC;CACxD,OAAO,YAAY;;;;;;;AAQrB,SAAgB,UACd,SACyC;CACzC,OAAO,OAAO,QAAQ,IAAI,YAAY,QAAQ,IAAI,OAAO,QAAQ;;;;;;;AAQnE,SAAgB,YACd,SAC2E;CAC3E,OACE,OAAO,QAAQ,IACf,EAAE,OAAO,YAAY,YAAY,OAAO,YAAY;;;;;;;AASxD,SAAgB,SAAS,SAAwC;CAC/D,OAAO,OAAO,QAAQ,KAAK;;;;;;;AAQ7B,SAAgB,QAAQ,SAAuC;CAC7D,OAAO,MAAM,QAAQ,QAAQ;;;;;;;AAQ/B,SAAgB,WAAW,SAA0C;CACnE,OAAO,OAAO,YAAY;;;;;;;;;;;;;;AAe5B,SAAgB,gBAAgB,SAA+C;CAC7E,OAAO,WAAW,QAAQ,IAAI,QAAQ,YAAY,SAAS;;;;;;;AAQ7D,SAAgB,QAAQ,SAAoC;CAC1D,OAAO,mBAAmB;;;;;;;AAQ5B,SAAgB,UAAa,SAAyC;CACpE,OAAO,OAAO,QAAQ,KAAK;;;;;;;AAQ7B,SAAgB,OAAO,SAAmC;CACxD,OAAO,mBAAmB"}
package/dist/type.d.ts CHANGED
@@ -51,7 +51,7 @@ export declare function isVoid(unknown: unknown): unknown is void;
51
51
  * 永不执行,用于 switch-case/if-else 类型断言
52
52
  * @param unknown - 永远不会执行的值
53
53
  */
54
- export declare function isNever(unknown: never): void;
54
+ export declare function isNever(_unknown: never): void;
55
55
  /**
56
56
  * 检查值是否为 null
57
57
  * @param unknown - 未知类型的值
@@ -63,7 +63,7 @@ export declare function isNull(unknown: unknown): unknown is null;
63
63
  * @param unknown - 未知类型的值
64
64
  * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false
65
65
  */
66
- export declare function isNullish(unknown: unknown): unknown is null | undefined | void;
66
+ export declare function isNullish(unknown: unknown): unknown is null | undefined | undefined;
67
67
  /**
68
68
  * 检查值是否为原始类型(null 或 非对象)
69
69
  * @param unknown - 未知类型的值
package/dist/type.mjs CHANGED
@@ -1,78 +1,161 @@
1
+ //#region src/type.ts
2
+ /**
3
+ * 获取未知类型的类型名称
4
+ * @param unknown - 未知类型的值
5
+ * @returns 类型名称字符串
6
+ */
1
7
  function typeIs(unknown) {
2
- return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();
8
+ return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();
3
9
  }
10
+ /**
11
+ * 检查值是否为字符串
12
+ * @param unknown - 未知类型的值
13
+ * @returns 如果值为字符串则返回 true,否则返回 false
14
+ */
4
15
  function isString(unknown) {
5
- return typeof unknown === "string";
16
+ return typeof unknown === "string";
6
17
  }
18
+ /**
19
+ * 检查值是否为布尔值
20
+ * @param unknown - 未知类型的值
21
+ * @returns 如果值为布尔值则返回 true,否则返回 false
22
+ */
7
23
  function isBoolean(unknown) {
8
- return typeof unknown === "boolean";
24
+ return typeof unknown === "boolean";
9
25
  }
26
+ /**
27
+ * 检查值是否为符号
28
+ * @param unknown - 未知类型的值
29
+ * @returns 如果值为符号则返回 true,否则返回 false
30
+ */
10
31
  function isSymbol(unknown) {
11
- return typeof unknown === "symbol";
32
+ return typeof unknown === "symbol";
12
33
  }
34
+ /**
35
+ * 检查值是否为大整数
36
+ * @param unknown - 未知类型的值
37
+ * @returns 如果值为大整数则返回 true,否则返回 false
38
+ */
13
39
  function isBigInt(unknown) {
14
- return typeof unknown === "bigint";
40
+ return typeof unknown === "bigint";
15
41
  }
42
+ /**
43
+ * 检查值是否为数字
44
+ * @param unknown - 未知类型的值
45
+ * @returns 如果值为数字且不是 NaN 则返回 true,否则返回 false
46
+ */
16
47
  function isNumber(unknown) {
17
- return typeof unknown === "number" && !Number.isNaN(unknown);
48
+ return typeof unknown === "number" && !Number.isNaN(unknown);
18
49
  }
50
+ /**
51
+ * 检查值是否为 undefined
52
+ * @param unknown - 未知类型的值
53
+ * @returns 如果值为 undefined 则返回 true,否则返回 false
54
+ */
19
55
  function isUndefined(unknown) {
20
- return typeof unknown === "undefined";
56
+ return typeof unknown === "undefined";
21
57
  }
58
+ /**
59
+ * 检查值是否为 void
60
+ * @param unknown - 未知类型的值
61
+ * @returns 如果值为 undefined 则返回 true,否则返回 false
62
+ */
22
63
  function isVoid(unknown) {
23
- return isUndefined(unknown);
24
- }
25
- function isNever(unknown) {
26
- }
64
+ return isUndefined(unknown);
65
+ }
66
+ /**
67
+ * 永不执行,用于 switch-case/if-else 类型断言
68
+ * @param unknown - 永远不会执行的值
69
+ */
70
+ function isNever(_unknown) {}
71
+ /**
72
+ * 检查值是否为 null
73
+ * @param unknown - 未知类型的值
74
+ * @returns 如果值为 null 则返回 true,否则返回 false
75
+ */
27
76
  function isNull(unknown) {
28
- return unknown === null;
77
+ return unknown === null;
29
78
  }
79
+ /**
80
+ * 检查值是否为 nullish(null 或 undefined 或 void)
81
+ * @param unknown - 未知类型的值
82
+ * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false
83
+ */
30
84
  function isNullish(unknown) {
31
- return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);
85
+ return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);
32
86
  }
87
+ /**
88
+ * 检查值是否为原始类型(null 或 非对象)
89
+ * @param unknown - 未知类型的值
90
+ * @returns 如果值为原始类型则返回 true,否则返回 false
91
+ */
33
92
  function isPrimitive(unknown) {
34
- return isNull(unknown) || !(typeof unknown === "object" || typeof unknown === "function");
93
+ return isNull(unknown) || !(typeof unknown === "object" || typeof unknown === "function");
35
94
  }
95
+ /**
96
+ * 检查值是否为对象,但要注意,此时的对象类型是包含了数组和函数
97
+ * @param unknown - 未知类型的值
98
+ * @returns 如果值为对象则返回 true,否则返回 false
99
+ */
36
100
  function isObject(unknown) {
37
- return typeIs(unknown) === "object";
101
+ return typeIs(unknown) === "object";
38
102
  }
103
+ /**
104
+ * 检查值是否为数组
105
+ * @param unknown - 未知类型的值
106
+ * @returns 如果值为数组则返回 true,否则返回 false
107
+ */
39
108
  function isArray(unknown) {
40
- return Array.isArray(unknown);
109
+ return Array.isArray(unknown);
41
110
  }
111
+ /**
112
+ * 检查值是否为函数
113
+ * @param unknown - 未知类型的值
114
+ * @returns 如果值为函数则返回 true,否则返回 false
115
+ */
42
116
  function isFunction(unknown) {
43
- return typeof unknown === "function";
44
- }
117
+ return typeof unknown === "function";
118
+ }
119
+ /**
120
+ * 检查值是否为异步函数
121
+ * @param unknown - 需要检查的值
122
+ * @returns 如果值为异步函数则返回 true,否则返回 false
123
+ * @example
124
+ * ```typescript
125
+ * async function example() {}
126
+ *
127
+ * isAsyncFunction(example); // true
128
+ * isAsyncFunction(() => {}); // false
129
+ * ```
130
+ */
45
131
  function isAsyncFunction(unknown) {
46
- return isFunction(unknown) && unknown.constructor.name === "AsyncFunction";
132
+ return isFunction(unknown) && unknown.constructor.name === "AsyncFunction";
47
133
  }
134
+ /**
135
+ * 检查值是否为 Error 类型
136
+ * @param unknown - 未知类型的值
137
+ * @returns 如果值为 Error 类型则返回 true,否则返回 false
138
+ */
48
139
  function isError(unknown) {
49
- return unknown instanceof Error;
140
+ return unknown instanceof Error;
50
141
  }
142
+ /**
143
+ * 检查值是否为 Promise 类型
144
+ * @param unknown - 未知类型的值
145
+ * @returns 如果值为 Promise 类型则返回 true,否则返回 false
146
+ */
51
147
  function isPromise(unknown) {
52
- return typeIs(unknown) === "promise";
148
+ return typeIs(unknown) === "promise";
53
149
  }
150
+ /**
151
+ * 检查值是否为 Date 类型
152
+ * @param unknown - 未知类型的值
153
+ * @returns 如果值为 Date 类型则返回 true,否则返回 false
154
+ */
54
155
  function isDate(unknown) {
55
- return unknown instanceof Date;
56
- }
57
- export {
58
- isArray,
59
- isAsyncFunction,
60
- isBigInt,
61
- isBoolean,
62
- isDate,
63
- isError,
64
- isFunction,
65
- isNever,
66
- isNull,
67
- isNullish,
68
- isNumber,
69
- isObject,
70
- isPrimitive,
71
- isPromise,
72
- isString,
73
- isSymbol,
74
- isUndefined,
75
- isVoid,
76
- typeIs
77
- };
78
- //# sourceMappingURL=type.mjs.map
156
+ return unknown instanceof Date;
157
+ }
158
+ //#endregion
159
+ export { isArray, isAsyncFunction, isBigInt, isBoolean, isDate, isError, isFunction, isNever, isNull, isNullish, isNumber, isObject, isPrimitive, isPromise, isString, isSymbol, isUndefined, isVoid, typeIs };
160
+
161
+ //# sourceMappingURL=type.mjs.map
package/dist/type.mjs.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"type.mjs","sources":["../src/type.ts"],"sourcesContent":["import type { AnyArray, AnyAsyncFunction, AnyFunction, AnyObject } from './types';\n\n/**\n * 获取未知类型的类型名称\n * @param unknown - 未知类型的值\n * @returns 类型名称字符串\n */\nexport function typeIs(\n unknown: unknown,\n):\n | 'string'\n | 'number'\n | 'boolean'\n | 'object'\n | 'array'\n | 'function'\n | 'null'\n | 'undefined'\n | 'symbol'\n | 'bigint'\n | 'error'\n | 'promise'\n | string {\n return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();\n}\n\n/**\n * 检查值是否为字符串\n * @param unknown - 未知类型的值\n * @returns 如果值为字符串则返回 true,否则返回 false\n */\nexport function isString(unknown: unknown): unknown is string {\n return typeof unknown === 'string';\n}\n\n/**\n * 检查值是否为布尔值\n * @param unknown - 未知类型的值\n * @returns 如果值为布尔值则返回 true,否则返回 false\n */\nexport function isBoolean(unknown: unknown): unknown is boolean {\n return typeof unknown === 'boolean';\n}\n\n/**\n * 检查值是否为符号\n * @param unknown - 未知类型的值\n * @returns 如果值为符号则返回 true,否则返回 false\n */\nexport function isSymbol(unknown: unknown): unknown is symbol {\n return typeof unknown === 'symbol';\n}\n\n/**\n * 检查值是否为大整数\n * @param unknown - 未知类型的值\n * @returns 如果值为大整数则返回 true,否则返回 false\n */\nexport function isBigInt(unknown: unknown): unknown is bigint {\n return typeof unknown === 'bigint';\n}\n\n/**\n * 检查值是否为数字\n * @param unknown - 未知类型的值\n * @returns 如果值为数字且不是 NaN 则返回 true,否则返回 false\n */\nexport function isNumber(unknown: unknown): unknown is number {\n return typeof unknown === 'number' && !Number.isNaN(unknown);\n}\n\n/**\n * 检查值是否为 undefined\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\nexport function isUndefined(unknown: unknown): unknown is undefined {\n return typeof unknown === 'undefined';\n}\n\n/**\n * 检查值是否为 void\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\nexport function isVoid(unknown: unknown): unknown is void {\n return isUndefined(unknown);\n}\n\n/**\n * 永不执行,用于 switch-case/if-else 类型断言\n * @param unknown - 永远不会执行的值\n */\nexport function isNever(unknown: never) {\n //\n}\n\n/**\n * 检查值是否为 null\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 则返回 true,否则返回 false\n */\nexport function isNull(unknown: unknown): unknown is null {\n return unknown === null;\n}\n\n/**\n * 检查值是否为 nullish(null 或 undefined 或 void)\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: <explanation>\nexport function isNullish(unknown: unknown): unknown is null | undefined | void {\n return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);\n}\n\n/**\n * 检查值是否为原始类型(null 或 非对象)\n * @param unknown - 未知类型的值\n * @returns 如果值为原始类型则返回 true,否则返回 false\n */\nexport function isPrimitive(\n unknown: unknown,\n): unknown is string | number | boolean | symbol | bigint | null | undefined {\n return isNull(unknown) || !(typeof unknown === 'object' || typeof unknown === 'function');\n}\n\n/**\n * 检查值是否为对象,但要注意,此时的对象类型是包含了数组和函数\n * @param unknown - 未知类型的值\n * @returns 如果值为对象则返回 true,否则返回 false\n */\nexport function isObject(unknown: unknown): unknown is AnyObject {\n return typeIs(unknown) === 'object';\n}\n\n/**\n * 检查值是否为数组\n * @param unknown - 未知类型的值\n * @returns 如果值为数组则返回 true,否则返回 false\n */\nexport function isArray(unknown: unknown): unknown is AnyArray {\n return Array.isArray(unknown);\n}\n\n/**\n * 检查值是否为函数\n * @param unknown - 未知类型的值\n * @returns 如果值为函数则返回 true,否则返回 false\n */\nexport function isFunction(unknown: unknown): unknown is AnyFunction {\n return typeof unknown === 'function';\n}\n\n/**\n * 检查值是否为异步函数\n * @param unknown - 需要检查的值\n * @returns 如果值为异步函数则返回 true,否则返回 false\n * @example\n * ```typescript\n * async function example() {}\n *\n * isAsyncFunction(example); // true\n * isAsyncFunction(() => {}); // false\n * ```\n */\nexport function isAsyncFunction(unknown: unknown): unknown is AnyAsyncFunction {\n return isFunction(unknown) && unknown.constructor.name === 'AsyncFunction';\n}\n\n/**\n * 检查值是否为 Error 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Error 类型则返回 true,否则返回 false\n */\nexport function isError(unknown: unknown): unknown is Error {\n return unknown instanceof Error;\n}\n\n/**\n * 检查值是否为 Promise 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Promise 类型则返回 true,否则返回 false\n */\nexport function isPromise<T>(unknown: unknown): unknown is Promise<T> {\n return typeIs(unknown) === 'promise';\n}\n\n/**\n * 检查值是否为 Date 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Date 类型则返回 true,否则返回 false\n */\nexport function isDate(unknown: unknown): unknown is Date {\n return unknown instanceof Date;\n}\n"],"names":[],"mappings":"AAOO,SAAS,OACd,SAcS;AACF,SAAA,OAAO,UAAU,SAAS,KAAK,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,YAAY;AAC1E;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,UAAU,SAAsC;AAC9D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY;AAC5B;AAOO,SAAS,SAAS,SAAqC;AAC5D,SAAO,OAAO,YAAY,YAAY,CAAC,OAAO,MAAM,OAAO;AAC7D;AAOO,SAAS,YAAY,SAAwC;AAClE,SAAO,OAAO,YAAY;AAC5B;AAQO,SAAS,OAAO,SAAmC;AACxD,SAAO,YAAY,OAAO;AAC5B;AAMO,SAAS,QAAQ,SAAgB;AAExC;AAOO,SAAS,OAAO,SAAmC;AACxD,SAAO,YAAY;AACrB;AAQO,SAAS,UAAU,SAAsD;AAC9E,SAAO,OAAO,OAAO,KAAK,YAAY,OAAO,KAAK,OAAO,OAAO;AAClE;AAOO,SAAS,YACd,SAC2E;AACpE,SAAA,OAAO,OAAO,KAAK,EAAE,OAAO,YAAY,YAAY,OAAO,YAAY;AAChF;AAOO,SAAS,SAAS,SAAwC;AACxD,SAAA,OAAO,OAAO,MAAM;AAC7B;AAOO,SAAS,QAAQ,SAAuC;AACtD,SAAA,MAAM,QAAQ,OAAO;AAC9B;AAOO,SAAS,WAAW,SAA0C;AACnE,SAAO,OAAO,YAAY;AAC5B;AAcO,SAAS,gBAAgB,SAA+C;AAC7E,SAAO,WAAW,OAAO,KAAK,QAAQ,YAAY,SAAS;AAC7D;AAOO,SAAS,QAAQ,SAAoC;AAC1D,SAAO,mBAAmB;AAC5B;AAOO,SAAS,UAAa,SAAyC;AAC7D,SAAA,OAAO,OAAO,MAAM;AAC7B;AAOO,SAAS,OAAO,SAAmC;AACxD,SAAO,mBAAmB;AAC5B;"}
1
+ {"version":3,"file":"type.mjs","names":[],"sources":["../src/type.ts"],"sourcesContent":["import type {\n AnyArray,\n AnyAsyncFunction,\n AnyFunction,\n AnyObject,\n} from './types';\n\n/**\n * 获取未知类型的类型名称\n * @param unknown - 未知类型的值\n * @returns 类型名称字符串\n */\nexport function typeIs(\n unknown: unknown,\n):\n | 'string'\n | 'number'\n | 'boolean'\n | 'object'\n | 'array'\n | 'function'\n | 'null'\n | 'undefined'\n | 'symbol'\n | 'bigint'\n | 'error'\n | 'promise'\n | string {\n return Object.prototype.toString.call(unknown).slice(8, -1).toLowerCase();\n}\n\n/**\n * 检查值是否为字符串\n * @param unknown - 未知类型的值\n * @returns 如果值为字符串则返回 true,否则返回 false\n */\nexport function isString(unknown: unknown): unknown is string {\n return typeof unknown === 'string';\n}\n\n/**\n * 检查值是否为布尔值\n * @param unknown - 未知类型的值\n * @returns 如果值为布尔值则返回 true,否则返回 false\n */\nexport function isBoolean(unknown: unknown): unknown is boolean {\n return typeof unknown === 'boolean';\n}\n\n/**\n * 检查值是否为符号\n * @param unknown - 未知类型的值\n * @returns 如果值为符号则返回 true,否则返回 false\n */\nexport function isSymbol(unknown: unknown): unknown is symbol {\n return typeof unknown === 'symbol';\n}\n\n/**\n * 检查值是否为大整数\n * @param unknown - 未知类型的值\n * @returns 如果值为大整数则返回 true,否则返回 false\n */\nexport function isBigInt(unknown: unknown): unknown is bigint {\n return typeof unknown === 'bigint';\n}\n\n/**\n * 检查值是否为数字\n * @param unknown - 未知类型的值\n * @returns 如果值为数字且不是 NaN 则返回 true,否则返回 false\n */\nexport function isNumber(unknown: unknown): unknown is number {\n return typeof unknown === 'number' && !Number.isNaN(unknown);\n}\n\n/**\n * 检查值是否为 undefined\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\nexport function isUndefined(unknown: unknown): unknown is undefined {\n return typeof unknown === 'undefined';\n}\n\n/**\n * 检查值是否为 void\n * @param unknown - 未知类型的值\n * @returns 如果值为 undefined 则返回 true,否则返回 false\n */\n// biome-ignore lint/suspicious/noConfusingVoidType: 必须使用 void 类型断言\nexport function isVoid(unknown: unknown): unknown is void {\n return isUndefined(unknown);\n}\n\n/**\n * 永不执行,用于 switch-case/if-else 类型断言\n * @param unknown - 永远不会执行的值\n */\nexport function isNever(_unknown: never) {\n //\n}\n\n/**\n * 检查值是否为 null\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 则返回 true,否则返回 false\n */\nexport function isNull(unknown: unknown): unknown is null {\n return unknown === null;\n}\n\n/**\n * 检查值是否为 nullish(null 或 undefined 或 void)\n * @param unknown - 未知类型的值\n * @returns 如果值为 null 或 undefined 或 void 则返回 true,否则返回 false\n */\nexport function isNullish(\n unknown: unknown,\n): unknown is null | undefined | undefined {\n return isNull(unknown) || isUndefined(unknown) || isVoid(unknown);\n}\n\n/**\n * 检查值是否为原始类型(null 或 非对象)\n * @param unknown - 未知类型的值\n * @returns 如果值为原始类型则返回 true,否则返回 false\n */\nexport function isPrimitive(\n unknown: unknown,\n): unknown is string | number | boolean | symbol | bigint | null | undefined {\n return (\n isNull(unknown) ||\n !(typeof unknown === 'object' || typeof unknown === 'function')\n );\n}\n\n/**\n * 检查值是否为对象,但要注意,此时的对象类型是包含了数组和函数\n * @param unknown - 未知类型的值\n * @returns 如果值为对象则返回 true,否则返回 false\n */\nexport function isObject(unknown: unknown): unknown is AnyObject {\n return typeIs(unknown) === 'object';\n}\n\n/**\n * 检查值是否为数组\n * @param unknown - 未知类型的值\n * @returns 如果值为数组则返回 true,否则返回 false\n */\nexport function isArray(unknown: unknown): unknown is AnyArray {\n return Array.isArray(unknown);\n}\n\n/**\n * 检查值是否为函数\n * @param unknown - 未知类型的值\n * @returns 如果值为函数则返回 true,否则返回 false\n */\nexport function isFunction(unknown: unknown): unknown is AnyFunction {\n return typeof unknown === 'function';\n}\n\n/**\n * 检查值是否为异步函数\n * @param unknown - 需要检查的值\n * @returns 如果值为异步函数则返回 true,否则返回 false\n * @example\n * ```typescript\n * async function example() {}\n *\n * isAsyncFunction(example); // true\n * isAsyncFunction(() => {}); // false\n * ```\n */\nexport function isAsyncFunction(unknown: unknown): unknown is AnyAsyncFunction {\n return isFunction(unknown) && unknown.constructor.name === 'AsyncFunction';\n}\n\n/**\n * 检查值是否为 Error 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Error 类型则返回 true,否则返回 false\n */\nexport function isError(unknown: unknown): unknown is Error {\n return unknown instanceof Error;\n}\n\n/**\n * 检查值是否为 Promise 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Promise 类型则返回 true,否则返回 false\n */\nexport function isPromise<T>(unknown: unknown): unknown is Promise<T> {\n return typeIs(unknown) === 'promise';\n}\n\n/**\n * 检查值是否为 Date 类型\n * @param unknown - 未知类型的值\n * @returns 如果值为 Date 类型则返回 true,否则返回 false\n */\nexport function isDate(unknown: unknown): unknown is Date {\n return unknown instanceof Date;\n}\n"],"mappings":";;;;;;AAYA,SAAgB,OACd,SAcS;CACT,OAAO,OAAO,UAAU,SAAS,KAAK,QAAQ,CAAC,MAAM,GAAG,GAAG,CAAC,aAAa;;;;;;;AAQ3E,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,UAAU,SAAsC;CAC9D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY;;;;;;;AAQ5B,SAAgB,SAAS,SAAqC;CAC5D,OAAO,OAAO,YAAY,YAAY,CAAC,OAAO,MAAM,QAAQ;;;;;;;AAQ9D,SAAgB,YAAY,SAAwC;CAClE,OAAO,OAAO,YAAY;;;;;;;AAS5B,SAAgB,OAAO,SAAmC;CACxD,OAAO,YAAY,QAAQ;;;;;;AAO7B,SAAgB,QAAQ,UAAiB;;;;;;AASzC,SAAgB,OAAO,SAAmC;CACxD,OAAO,YAAY;;;;;;;AAQrB,SAAgB,UACd,SACyC;CACzC,OAAO,OAAO,QAAQ,IAAI,YAAY,QAAQ,IAAI,OAAO,QAAQ;;;;;;;AAQnE,SAAgB,YACd,SAC2E;CAC3E,OACE,OAAO,QAAQ,IACf,EAAE,OAAO,YAAY,YAAY,OAAO,YAAY;;;;;;;AASxD,SAAgB,SAAS,SAAwC;CAC/D,OAAO,OAAO,QAAQ,KAAK;;;;;;;AAQ7B,SAAgB,QAAQ,SAAuC;CAC7D,OAAO,MAAM,QAAQ,QAAQ;;;;;;;AAQ/B,SAAgB,WAAW,SAA0C;CACnE,OAAO,OAAO,YAAY;;;;;;;;;;;;;;AAe5B,SAAgB,gBAAgB,SAA+C;CAC7E,OAAO,WAAW,QAAQ,IAAI,QAAQ,YAAY,SAAS;;;;;;;AAQ7D,SAAgB,QAAQ,SAAoC;CAC1D,OAAO,mBAAmB;;;;;;;AAQ5B,SAAgB,UAAa,SAAyC;CACpE,OAAO,OAAO,QAAQ,KAAK;;;;;;;AAQ7B,SAAgB,OAAO,SAAmC;CACxD,OAAO,mBAAmB"}
package/dist/types.cjs CHANGED
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=types.cjs.map
package/dist/types.d.ts CHANGED
@@ -26,7 +26,7 @@ export type AnyArray = Array<unknown>;
26
26
  * // string | number | boolean | bigint | symbol | null | undefined | void | never
27
27
  * ```
28
28
  */
29
- export type PrimitiveValue = string | number | boolean | bigint | symbol | null | undefined | void | never;
29
+ export type PrimitiveValue = string | number | boolean | bigint | symbol | null | undefined | undefined | never;
30
30
  /**
31
31
  * 引用类型值
32
32
  * @description 表示所有非原始类型的值,即除了 PrimitiveValue 之外的所有类型
@@ -151,5 +151,5 @@ export type HasProperty<T, K> = K extends keyof T ? true : false;
151
151
  * type Result3 = Exact<{ a: 1 }, { a: 1; b: 2 }>; // never
152
152
  * ```
153
153
  */
154
- export type Exact<T, Shape> = T extends Shape ? (Exclude<keyof T, keyof Shape> extends never ? T : never) : never;
154
+ export type Exact<T, Shape> = T extends Shape ? Exclude<keyof T, keyof Shape> extends never ? T : never : never;
155
155
  export {};
package/dist/types.mjs CHANGED
@@ -1,2 +0,0 @@
1
-
2
- //# sourceMappingURL=types.mjs.map