@wener/utils 1.1.51 → 1.1.53

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 (499) hide show
  1. package/lib/arrays/MaybeArray.js +58 -8
  2. package/lib/arrays/arrayFromAsync.js +254 -6
  3. package/lib/asyncs/AsyncInterval.js +145 -9
  4. package/lib/asyncs/MaybePromise.js +0 -2
  5. package/lib/asyncs/Promises.js +95 -48
  6. package/lib/asyncs/createAsyncIterator.js +313 -23
  7. package/lib/asyncs/createLazyPromise.js +72 -31
  8. package/lib/asyncs/createLazyPromise.test.js +367 -0
  9. package/lib/asyncs/firstOfAsyncIterator.js +6 -6
  10. package/lib/asyncs/generatorOfStream.js +125 -14
  11. package/lib/asyncs/isIterator.js +1 -3
  12. package/lib/asyncs/isPromise.js +2 -4
  13. package/lib/asyncs/isThenable.js +0 -2
  14. package/lib/asyncs/nextOfAsyncIterator.js +15 -9
  15. package/lib/asyncs/promiseOfCallback.js +2 -4
  16. package/lib/asyncs/timeout.js +122 -13
  17. package/lib/browsers/copy.js +7 -8
  18. package/lib/browsers/download.js +215 -40
  19. package/lib/browsers/getFileFromDataTransfer.js +17 -14
  20. package/lib/browsers/loaders.js +251 -18
  21. package/lib/crypto/base.js +3 -3
  22. package/lib/crypto/getNodeCrypto.js +3 -5
  23. package/lib/crypto/hashing.js +236 -30
  24. package/lib/crypto/hashing.test.js +323 -0
  25. package/lib/crypto/md5.bench.js +11 -11
  26. package/lib/crypto/md5.d.js +0 -2
  27. package/lib/crypto/md5.js +0 -2
  28. package/lib/crypto/md5.test.js +7 -0
  29. package/lib/crypto/pem/pem.js +197 -35
  30. package/lib/crypto/pem/pem.test.js +104 -0
  31. package/lib/crypto/randomUUIDv7.js +0 -2
  32. package/lib/crypto/ulid.js +84 -48
  33. package/lib/crypto/ulid.test.js +115 -0
  34. package/lib/emitter/types.js +0 -2
  35. package/lib/errors/DetailError.js +297 -0
  36. package/lib/errors/Errors.js +2 -202
  37. package/lib/errors/Errors.mod.js +206 -0
  38. package/lib/errors/Errors.test.js +24 -0
  39. package/lib/fetch/HttpStatus.js +1 -3
  40. package/lib/fetch/createFetchWith.js +188 -19
  41. package/lib/fetch/createFetchWithLogging.js +17 -16
  42. package/lib/fetch/createFetchWithRetry.js +40 -24
  43. package/lib/fetch/dumpRequest.js +467 -41
  44. package/lib/fetch/dumpRequest.test.js +384 -0
  45. package/lib/fetch/dumpResponse.js +271 -16
  46. package/lib/fetch/dumpResponse.test.js +393 -0
  47. package/lib/fetch/http.types.js +0 -2
  48. package/lib/fetch/index.js +5 -7
  49. package/lib/fetch/isTextContentType.js +5 -0
  50. package/lib/fetch/resolveRequest.js +7 -0
  51. package/lib/fetch/types.js +0 -2
  52. package/lib/i18n/createTranslate.js +40 -20
  53. package/lib/i18n/createTranslate.test.js +177 -0
  54. package/lib/index.js +74 -76
  55. package/lib/io/AbstractEncoding.js +0 -2
  56. package/lib/io/ArrayBuffer.test-d.js +4 -6
  57. package/lib/io/ArrayBuffers.base64.test.js +60 -0
  58. package/lib/io/ArrayBuffers.js +2 -334
  59. package/lib/io/ArrayBuffers.mod.js +531 -0
  60. package/lib/io/ArrayBuffers.test.js +77 -0
  61. package/lib/io/Buffer.js +190 -20
  62. package/lib/io/Buffer.test.js +22 -0
  63. package/lib/io/ByteBuffer.js +752 -441
  64. package/lib/io/ByteBuffer.test.js +184 -0
  65. package/lib/io/base64.js +17 -19
  66. package/lib/io/dump.js +16 -16
  67. package/lib/io/isBuffer.js +2 -3
  68. package/lib/io/isBuffer.test.js +8 -0
  69. package/lib/io/isTransferable.js +16 -8
  70. package/lib/io/isTransferable.test.js +17 -0
  71. package/lib/io/parseDataUri.js +288 -40
  72. package/lib/io/parseDataUri.test.js +286 -0
  73. package/lib/io/types.js +1 -0
  74. package/lib/langs/AsyncCloser.js +270 -34
  75. package/lib/langs/Closer.js +95 -29
  76. package/lib/langs/MaybeFunction.js +38 -5
  77. package/lib/langs/classOf.js +0 -2
  78. package/lib/langs/deepEqual.js +82 -22
  79. package/lib/langs/deepEqual.test.js +11 -0
  80. package/lib/langs/deepFreeze.js +28 -9
  81. package/lib/langs/getGlobalStates.js +14 -10
  82. package/lib/langs/getObjectId.js +4 -6
  83. package/lib/langs/ifPresent.js +0 -2
  84. package/lib/langs/isClass.js +0 -2
  85. package/lib/langs/isDefined.js +0 -2
  86. package/lib/langs/isEmptyObject.js +1 -3
  87. package/lib/langs/isFunction.js +0 -2
  88. package/lib/langs/isNil.js +3 -0
  89. package/lib/langs/isPlainObject.js +2 -4
  90. package/lib/langs/langs.test.js +126 -0
  91. package/lib/langs/memoize.js +11 -7
  92. package/lib/langs/mixin.js +7 -4
  93. package/lib/langs/mixin.test.js +135 -0
  94. package/lib/langs/parseBoolean.js +11 -8
  95. package/lib/langs/shallowClone.js +5 -3
  96. package/lib/langs/shallowEqual.js +8 -6
  97. package/lib/libs/ms.js +28 -26
  98. package/lib/libs/ms.test.js +301 -0
  99. package/lib/logger/const.js +15 -0
  100. package/lib/logger/index.js +1 -0
  101. package/lib/logger/types.js +1 -0
  102. package/lib/maths/clamp.js +81 -12
  103. package/lib/maths/clamp.test.js +186 -0
  104. package/lib/maths/createRandom.test.js +36 -0
  105. package/lib/maths/random.js +162 -13
  106. package/lib/modules/isModule.js +0 -2
  107. package/lib/modules/parseModuleId.js +14 -15
  108. package/lib/modules/parseModuleId.test.js +153 -0
  109. package/lib/objects/computeIfAbsent.js +8 -3
  110. package/lib/objects/get.js +26 -8
  111. package/lib/objects/get.test-d.js +23 -25
  112. package/lib/objects/merge/index.js +1 -3
  113. package/lib/objects/merge/isMergeableObject.js +5 -3
  114. package/lib/objects/merge/merge.js +82 -26
  115. package/lib/objects/merge/merge.test.js +1397 -0
  116. package/lib/objects/parseObjectPath.js +47 -15
  117. package/lib/objects/parseObjectPath.test.js +138 -0
  118. package/lib/objects/set.js +25 -19
  119. package/lib/objects/set.test.js +522 -0
  120. package/lib/schema/typebox/index.js +2 -3
  121. package/lib/schema/typebox/typebox.js +6 -6
  122. package/lib/scripts/getGenerateContext.js +386 -77
  123. package/lib/server/crypto/md5.js +0 -2
  124. package/lib/server/fetch/createFetchWithProxy.js +2 -4
  125. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js +258 -31
  126. package/lib/server/fetch/createFetchWithProxyByUndici.js +307 -49
  127. package/lib/server/getPackageDir.js +2 -3
  128. package/lib/server/index.js +5 -7
  129. package/lib/server/jsdom.js +1 -3
  130. package/lib/server/node-fetch.js +2 -4
  131. package/lib/server/polyfill/polyfillBrowser.js +163 -9
  132. package/lib/server/polyfill/polyfillBrowser.test.js +164 -0
  133. package/lib/server/polyfill/polyfillCrypto.js +157 -9
  134. package/lib/server/polyfill/polyfillFetch.js +13 -13
  135. package/lib/server/polyfill/polyfillJsDom.js +264 -58
  136. package/lib/server/polyfill/polyfillWebSocket.js +11 -11
  137. package/lib/server/ws.js +1 -3
  138. package/lib/strings/bytes.test.js +327 -0
  139. package/lib/strings/camelCase.js +23 -14
  140. package/lib/strings/formatBytes.js +29 -20
  141. package/lib/strings/parseBytes.js +54 -0
  142. package/lib/strings/renderTemplate.js +17 -12
  143. package/lib/strings/renderTemplate.test.js +104 -0
  144. package/lib/typedoc.js +2 -4
  145. package/lib/types.d.js +0 -2
  146. package/lib/validations/asserts.js +0 -2
  147. package/lib/validations/isUUID.js +0 -2
  148. package/lib/validations/isUUID.test.js +87 -0
  149. package/lib/validations/parseTimestamp.js +12 -7
  150. package/lib/validations/parseTimestamp.test.js +6 -0
  151. package/lib/web/getGlobalThis.js +3 -4
  152. package/lib/web/getRandomValues.js +28 -20
  153. package/lib/web/randomUUID.js +7 -8
  154. package/lib/web/requestIdleCallback.js +13 -9
  155. package/lib/web/structuredClone.js +35 -28
  156. package/lib/web/structuredClone.test.js +81 -0
  157. package/package.json +9 -14
  158. package/src/arrays/MaybeArray.ts +22 -22
  159. package/src/arrays/arrayFromAsync.ts +3 -3
  160. package/src/asyncs/AsyncInterval.ts +8 -8
  161. package/src/asyncs/Promises.ts +51 -51
  162. package/src/asyncs/createAsyncIterator.ts +33 -33
  163. package/src/asyncs/createLazyPromise.test.ts +73 -73
  164. package/src/asyncs/createLazyPromise.ts +68 -73
  165. package/src/asyncs/firstOfAsyncIterator.ts +5 -5
  166. package/src/asyncs/generatorOfStream.ts +12 -12
  167. package/src/asyncs/isIterator.ts +1 -1
  168. package/src/asyncs/isThenable.ts +2 -2
  169. package/src/asyncs/nextOfAsyncIterator.ts +20 -20
  170. package/src/asyncs/promiseOfCallback.ts +13 -13
  171. package/src/asyncs/timeout.ts +23 -23
  172. package/src/browsers/copy.ts +48 -48
  173. package/src/browsers/download.ts +38 -36
  174. package/src/browsers/getFileFromDataTransfer.ts +35 -35
  175. package/src/browsers/loaders.ts +49 -49
  176. package/src/crypto/base.ts +3 -3
  177. package/src/crypto/getNodeCrypto.ts +2 -2
  178. package/src/crypto/hashing.test.ts +33 -47
  179. package/src/crypto/hashing.ts +67 -67
  180. package/src/crypto/md5.bench.ts +20 -24
  181. package/src/crypto/md5.test.ts +3 -3
  182. package/src/crypto/pem/pem.test.ts +26 -42
  183. package/src/crypto/pem/pem.ts +65 -65
  184. package/src/crypto/ulid.test.ts +31 -31
  185. package/src/crypto/ulid.ts +116 -116
  186. package/src/emitter/types.ts +6 -6
  187. package/src/errors/DetailError.ts +151 -0
  188. package/src/errors/Errors.mod.ts +104 -0
  189. package/src/errors/Errors.test.ts +15 -15
  190. package/src/errors/Errors.ts +1 -247
  191. package/src/fetch/HttpStatus.ts +77 -77
  192. package/src/fetch/createFetchWith.ts +25 -25
  193. package/src/fetch/createFetchWithLogging.ts +12 -15
  194. package/src/fetch/createFetchWithRetry.ts +79 -79
  195. package/src/fetch/dumpRequest.test.ts +176 -0
  196. package/src/fetch/dumpRequest.ts +149 -52
  197. package/src/fetch/dumpResponse.test.ts +160 -0
  198. package/src/fetch/dumpResponse.ts +48 -20
  199. package/src/fetch/http.types.ts +35 -35
  200. package/src/fetch/isTextContentType.ts +12 -0
  201. package/src/fetch/resolveRequest.ts +1 -0
  202. package/src/fetch/types.ts +2 -2
  203. package/src/i18n/createTranslate.test.ts +90 -113
  204. package/src/i18n/createTranslate.ts +55 -55
  205. package/src/index.ts +17 -19
  206. package/src/io/AbstractEncoding.ts +12 -12
  207. package/src/io/ArrayBuffer.test-d.ts +1 -1
  208. package/src/io/ArrayBuffers.base64.test.ts +52 -52
  209. package/src/io/ArrayBuffers.mod.ts +670 -0
  210. package/src/io/ArrayBuffers.test.ts +14 -14
  211. package/src/io/ArrayBuffers.ts +1 -446
  212. package/src/io/Buffer.test.ts +17 -17
  213. package/src/io/Buffer.ts +17 -17
  214. package/src/io/ByteBuffer.test.ts +37 -37
  215. package/src/io/ByteBuffer.ts +574 -566
  216. package/src/io/base64.ts +46 -44
  217. package/src/io/dump.ts +22 -22
  218. package/src/io/isBuffer.test.ts +2 -2
  219. package/src/io/isBuffer.ts +1 -1
  220. package/src/io/isTransferable.test.ts +4 -4
  221. package/src/io/isTransferable.ts +29 -29
  222. package/src/io/parseDataUri.test.ts +22 -27
  223. package/src/io/parseDataUri.ts +57 -57
  224. package/src/io/types.ts +13 -0
  225. package/src/langs/AsyncCloser.ts +34 -34
  226. package/src/langs/Closer.ts +28 -28
  227. package/src/langs/MaybeFunction.ts +5 -5
  228. package/src/langs/classOf.ts +1 -1
  229. package/src/langs/deepEqual.test.ts +1 -12
  230. package/src/langs/deepEqual.ts +82 -82
  231. package/src/langs/deepFreeze.ts +11 -11
  232. package/src/langs/getGlobalStates.ts +16 -16
  233. package/src/langs/getObjectId.ts +10 -13
  234. package/src/langs/ifPresent.ts +2 -2
  235. package/src/langs/isClass.ts +1 -1
  236. package/src/langs/isDefined.ts +1 -1
  237. package/src/langs/isEmptyObject.ts +1 -1
  238. package/src/langs/isFunction.ts +1 -1
  239. package/src/langs/isNil.ts +3 -0
  240. package/src/langs/isPlainObject.ts +4 -4
  241. package/src/langs/langs.test.ts +18 -18
  242. package/src/langs/memoize.ts +21 -21
  243. package/src/langs/mixin.test.ts +22 -26
  244. package/src/langs/mixin.ts +6 -9
  245. package/src/langs/parseBoolean.ts +30 -26
  246. package/src/langs/shallowClone.ts +11 -11
  247. package/src/langs/shallowEqual.ts +19 -19
  248. package/src/libs/ms.test.ts +274 -274
  249. package/src/libs/ms.ts +137 -137
  250. package/src/logger/const.ts +18 -0
  251. package/src/logger/index.ts +2 -0
  252. package/src/logger/types.ts +10 -0
  253. package/src/maths/clamp.test.ts +18 -18
  254. package/src/maths/clamp.ts +17 -17
  255. package/src/maths/createRandom.test.ts +12 -0
  256. package/src/maths/random.ts +50 -14
  257. package/src/modules/isModule.ts +4 -4
  258. package/src/modules/parseModuleId.test.ts +61 -68
  259. package/src/modules/parseModuleId.ts +29 -43
  260. package/src/objects/computeIfAbsent.ts +10 -10
  261. package/src/objects/get.test-d.ts +33 -51
  262. package/src/objects/get.ts +31 -31
  263. package/src/objects/merge/isMergeableObject.ts +5 -5
  264. package/src/objects/merge/merge.test.ts +658 -880
  265. package/src/objects/merge/merge.ts +84 -84
  266. package/src/objects/parseObjectPath.test.ts +13 -13
  267. package/src/objects/parseObjectPath.ts +25 -25
  268. package/src/objects/set.test.ts +271 -366
  269. package/src/objects/set.ts +36 -36
  270. package/src/schema/typebox/typebox.ts +20 -26
  271. package/src/scripts/getGenerateContext.ts +79 -79
  272. package/src/server/crypto/md5.ts +1 -1
  273. package/src/server/fetch/createFetchWithProxyByNodeFetch.ts +28 -31
  274. package/src/server/fetch/createFetchWithProxyByUndici.ts +63 -69
  275. package/src/server/getPackageDir.ts +7 -7
  276. package/src/server/polyfill/polyfillBrowser.test.ts +10 -10
  277. package/src/server/polyfill/polyfillBrowser.ts +3 -3
  278. package/src/server/polyfill/polyfillCrypto.ts +6 -6
  279. package/src/server/polyfill/polyfillFetch.ts +11 -21
  280. package/src/server/polyfill/polyfillJsDom.ts +59 -71
  281. package/src/server/polyfill/polyfillWebSocket.ts +14 -14
  282. package/src/strings/bytes.test.ts +69 -0
  283. package/src/strings/camelCase.ts +58 -63
  284. package/src/strings/formatBytes.ts +50 -29
  285. package/src/strings/parseBytes.ts +66 -0
  286. package/src/strings/renderTemplate.test.ts +10 -17
  287. package/src/strings/renderTemplate.ts +19 -22
  288. package/src/types.d.ts +9 -9
  289. package/src/validations/asserts.ts +8 -8
  290. package/src/validations/isUUID.test.ts +8 -8
  291. package/src/validations/isUUID.ts +1 -1
  292. package/src/validations/parseTimestamp.test.ts +2 -2
  293. package/src/validations/parseTimestamp.ts +21 -21
  294. package/src/web/getGlobalThis.ts +6 -6
  295. package/src/web/getRandomValues.ts +29 -29
  296. package/src/web/randomUUID.ts +5 -5
  297. package/src/web/requestIdleCallback.ts +7 -10
  298. package/src/web/structuredClone.test.ts +8 -8
  299. package/src/web/structuredClone.ts +62 -62
  300. package/tsconfig.json +35 -34
  301. package/lib/arrays/MaybeArray.js.map +0 -1
  302. package/lib/arrays/arrayFromAsync.js.map +0 -1
  303. package/lib/asyncs/AsyncInterval.js.map +0 -1
  304. package/lib/asyncs/MaybePromise.js.map +0 -1
  305. package/lib/asyncs/Promises.js.map +0 -1
  306. package/lib/asyncs/createAsyncIterator.js.map +0 -1
  307. package/lib/asyncs/createLazyPromise.js.map +0 -1
  308. package/lib/asyncs/firstOfAsyncIterator.js.map +0 -1
  309. package/lib/asyncs/generatorOfStream.js.map +0 -1
  310. package/lib/asyncs/isIterator.js.map +0 -1
  311. package/lib/asyncs/isPromise.js.map +0 -1
  312. package/lib/asyncs/isThenable.js.map +0 -1
  313. package/lib/asyncs/nextOfAsyncIterator.js.map +0 -1
  314. package/lib/asyncs/promiseOfCallback.js.map +0 -1
  315. package/lib/asyncs/timeout.js.map +0 -1
  316. package/lib/browsers/copy.js.map +0 -1
  317. package/lib/browsers/download.js.map +0 -1
  318. package/lib/browsers/getFileFromDataTransfer.js.map +0 -1
  319. package/lib/browsers/loaders.js.map +0 -1
  320. package/lib/cn/division/DivisionCode.js +0 -215
  321. package/lib/cn/division/DivisionCode.js.map +0 -1
  322. package/lib/cn/division/binarySearch.js +0 -27
  323. package/lib/cn/division/binarySearch.js.map +0 -1
  324. package/lib/cn/formatChineseAmount.js +0 -77
  325. package/lib/cn/formatChineseAmount.js.map +0 -1
  326. package/lib/cn/id/Mod11.js +0 -43
  327. package/lib/cn/id/Mod11.js.map +0 -1
  328. package/lib/cn/id/ResidentIdNumber.js +0 -98
  329. package/lib/cn/id/ResidentIdNumber.js.map +0 -1
  330. package/lib/cn/id/types.js +0 -8
  331. package/lib/cn/id/types.js.map +0 -1
  332. package/lib/cn/index.js +0 -14
  333. package/lib/cn/index.js.map +0 -1
  334. package/lib/cn/parseChineseNumber.js +0 -94
  335. package/lib/cn/parseChineseNumber.js.map +0 -1
  336. package/lib/cn/pinyin/cartesianProduct.js +0 -22
  337. package/lib/cn/pinyin/cartesianProduct.js.map +0 -1
  338. package/lib/cn/pinyin/data.json +0 -413
  339. package/lib/cn/pinyin/loader.js +0 -15
  340. package/lib/cn/pinyin/loader.js.map +0 -1
  341. package/lib/cn/pinyin/preload.js +0 -4
  342. package/lib/cn/pinyin/preload.js.map +0 -1
  343. package/lib/cn/pinyin/toPinyinPure.js +0 -32
  344. package/lib/cn/pinyin/toPinyinPure.js.map +0 -1
  345. package/lib/cn/pinyin/transform.js +0 -14
  346. package/lib/cn/pinyin/transform.js.map +0 -1
  347. package/lib/cn/types.js +0 -3
  348. package/lib/cn/types.js.map +0 -1
  349. package/lib/cn/uscc/Mod31.js +0 -49
  350. package/lib/cn/uscc/Mod31.js.map +0 -1
  351. package/lib/cn/uscc/USCC.js +0 -94
  352. package/lib/cn/uscc/USCC.js.map +0 -1
  353. package/lib/cn/uscc/isUSCC.js +0 -8
  354. package/lib/cn/uscc/isUSCC.js.map +0 -1
  355. package/lib/crypto/base.js.map +0 -1
  356. package/lib/crypto/getNodeCrypto.js.map +0 -1
  357. package/lib/crypto/hashing.js.map +0 -1
  358. package/lib/crypto/md5.bench.js.map +0 -1
  359. package/lib/crypto/md5.d.js.map +0 -1
  360. package/lib/crypto/md5.js.map +0 -1
  361. package/lib/crypto/pem/pem.js.map +0 -1
  362. package/lib/crypto/randomUUIDv7.js.map +0 -1
  363. package/lib/crypto/ulid.js.map +0 -1
  364. package/lib/emitter/types.js.map +0 -1
  365. package/lib/errors/Errors.js.map +0 -1
  366. package/lib/fetch/HttpStatus.js.map +0 -1
  367. package/lib/fetch/createFetchWith.js.map +0 -1
  368. package/lib/fetch/createFetchWithLogging.js.map +0 -1
  369. package/lib/fetch/createFetchWithRetry.js.map +0 -1
  370. package/lib/fetch/dumpRequest.js.map +0 -1
  371. package/lib/fetch/dumpResponse.js.map +0 -1
  372. package/lib/fetch/http.types.js.map +0 -1
  373. package/lib/fetch/index.js.map +0 -1
  374. package/lib/fetch/types.js.map +0 -1
  375. package/lib/i18n/createTranslate.js.map +0 -1
  376. package/lib/index.js.map +0 -1
  377. package/lib/io/AbstractEncoding.js.map +0 -1
  378. package/lib/io/ArrayBuffer.test-d.js.map +0 -1
  379. package/lib/io/ArrayBuffers.js.map +0 -1
  380. package/lib/io/Buffer.js.map +0 -1
  381. package/lib/io/ByteBuffer.js.map +0 -1
  382. package/lib/io/base64.js.map +0 -1
  383. package/lib/io/dump.js.map +0 -1
  384. package/lib/io/isBuffer.js.map +0 -1
  385. package/lib/io/isTransferable.js.map +0 -1
  386. package/lib/io/parseDataUri.js.map +0 -1
  387. package/lib/langs/AsyncCloser.js.map +0 -1
  388. package/lib/langs/Closer.js.map +0 -1
  389. package/lib/langs/MaybeFunction.js.map +0 -1
  390. package/lib/langs/classOf.js.map +0 -1
  391. package/lib/langs/deepEqual.js.map +0 -1
  392. package/lib/langs/deepFreeze.js.map +0 -1
  393. package/lib/langs/getGlobalStates.js.map +0 -1
  394. package/lib/langs/getObjectId.js.map +0 -1
  395. package/lib/langs/ifPresent.js.map +0 -1
  396. package/lib/langs/isClass.js.map +0 -1
  397. package/lib/langs/isDefined.js.map +0 -1
  398. package/lib/langs/isEmptyObject.js.map +0 -1
  399. package/lib/langs/isFunction.js.map +0 -1
  400. package/lib/langs/isNullish.js +0 -5
  401. package/lib/langs/isNullish.js.map +0 -1
  402. package/lib/langs/isPlainObject.js.map +0 -1
  403. package/lib/langs/memoize.js.map +0 -1
  404. package/lib/langs/mixin.js.map +0 -1
  405. package/lib/langs/parseBoolean.js.map +0 -1
  406. package/lib/langs/shallowClone.js.map +0 -1
  407. package/lib/langs/shallowEqual.js.map +0 -1
  408. package/lib/libs/ms.js.map +0 -1
  409. package/lib/logging/Logger.js +0 -5
  410. package/lib/logging/Logger.js.map +0 -1
  411. package/lib/logging/createChildLogger.js +0 -16
  412. package/lib/logging/createChildLogger.js.map +0 -1
  413. package/lib/logging/createLogger.js +0 -63
  414. package/lib/logging/createLogger.js.map +0 -1
  415. package/lib/logging/createNoopLogger.js +0 -13
  416. package/lib/logging/createNoopLogger.js.map +0 -1
  417. package/lib/logging/slog.js +0 -143
  418. package/lib/logging/slog.js.map +0 -1
  419. package/lib/maths/clamp.js.map +0 -1
  420. package/lib/maths/random.js.map +0 -1
  421. package/lib/mitt/index.js +0 -77
  422. package/lib/mitt/index.js.map +0 -1
  423. package/lib/modules/isModule.js.map +0 -1
  424. package/lib/modules/parseModuleId.js.map +0 -1
  425. package/lib/objects/computeIfAbsent.js.map +0 -1
  426. package/lib/objects/get.js.map +0 -1
  427. package/lib/objects/get.test-d.js.map +0 -1
  428. package/lib/objects/merge/index.js.map +0 -1
  429. package/lib/objects/merge/isMergeableObject.js.map +0 -1
  430. package/lib/objects/merge/merge.js.map +0 -1
  431. package/lib/objects/parseObjectPath.js.map +0 -1
  432. package/lib/objects/set.js.map +0 -1
  433. package/lib/schema/typebox/index.js.map +0 -1
  434. package/lib/schema/typebox/typebox.js.map +0 -1
  435. package/lib/scripts/getGenerateContext.js.map +0 -1
  436. package/lib/server/crypto/md5.js.map +0 -1
  437. package/lib/server/fetch/createFetchWithProxy.js.map +0 -1
  438. package/lib/server/fetch/createFetchWithProxyByNodeFetch.js.map +0 -1
  439. package/lib/server/fetch/createFetchWithProxyByUndici.js.map +0 -1
  440. package/lib/server/getPackageDir.js.map +0 -1
  441. package/lib/server/index.js.map +0 -1
  442. package/lib/server/jsdom.js.map +0 -1
  443. package/lib/server/node-fetch.js.map +0 -1
  444. package/lib/server/polyfill/polyfillBrowser.js.map +0 -1
  445. package/lib/server/polyfill/polyfillCrypto.js.map +0 -1
  446. package/lib/server/polyfill/polyfillFetch.js.map +0 -1
  447. package/lib/server/polyfill/polyfillJsDom.js.map +0 -1
  448. package/lib/server/polyfill/polyfillWebSocket.js.map +0 -1
  449. package/lib/server/ws.js.map +0 -1
  450. package/lib/strings/camelCase.js.map +0 -1
  451. package/lib/strings/formatBytes.js.map +0 -1
  452. package/lib/strings/renderTemplate.js.map +0 -1
  453. package/lib/typedoc.js.map +0 -1
  454. package/lib/types.d.js.map +0 -1
  455. package/lib/validations/asserts.js.map +0 -1
  456. package/lib/validations/isUUID.js.map +0 -1
  457. package/lib/validations/parseTimestamp.js.map +0 -1
  458. package/lib/web/getGlobalThis.js.map +0 -1
  459. package/lib/web/getRandomValues.js.map +0 -1
  460. package/lib/web/randomUUID.js.map +0 -1
  461. package/lib/web/requestIdleCallback.js.map +0 -1
  462. package/lib/web/structuredClone.js.map +0 -1
  463. package/src/cn/README.md +0 -3
  464. package/src/cn/division/DivisionCode.ts +0 -173
  465. package/src/cn/division/binarySearch.test.ts +0 -64
  466. package/src/cn/division/binarySearch.ts +0 -25
  467. package/src/cn/division/division.test.ts +0 -22
  468. package/src/cn/formatChineseAmount.ts +0 -61
  469. package/src/cn/id/Mod11.ts +0 -26
  470. package/src/cn/id/ResidentIdNumber.ts +0 -126
  471. package/src/cn/id/id.test.ts +0 -20
  472. package/src/cn/id/types.ts +0 -26
  473. package/src/cn/index.ts +0 -17
  474. package/src/cn/parseChineseNumber.test.ts +0 -159
  475. package/src/cn/parseChineseNumber.ts +0 -97
  476. package/src/cn/pinyin/cartesianProduct.test.ts +0 -64
  477. package/src/cn/pinyin/cartesianProduct.ts +0 -24
  478. package/src/cn/pinyin/data.json +0 -413
  479. package/src/cn/pinyin/loader.ts +0 -12
  480. package/src/cn/pinyin/preload.ts +0 -3
  481. package/src/cn/pinyin/toPinyin.test.ts +0 -12
  482. package/src/cn/pinyin/toPinyinPure.ts +0 -43
  483. package/src/cn/pinyin/transform.ts +0 -12
  484. package/src/cn/scripts/gen.test.ts +0 -131
  485. package/src/cn/types.ts +0 -11
  486. package/src/cn/uscc/Mod31.ts +0 -38
  487. package/src/cn/uscc/USCC.ts +0 -94
  488. package/src/cn/uscc/isUSCC.ts +0 -8
  489. package/src/cn/uscc/uscc.test.ts +0 -16
  490. package/src/langs/isNullish.ts +0 -3
  491. package/src/logging/Logger.ts +0 -25
  492. package/src/logging/createChildLogger.ts +0 -16
  493. package/src/logging/createLogger.ts +0 -50
  494. package/src/logging/createNoopLogger.ts +0 -13
  495. package/src/logging/logger.test.ts +0 -36
  496. package/src/logging/slog.test.ts +0 -8
  497. package/src/logging/slog.ts +0 -221
  498. package/src/mitt/README.md +0 -1
  499. package/src/mitt/index.ts +0 -114
@@ -2,9 +2,9 @@ const has = Object.prototype.hasOwnProperty;
2
2
  const hasElementType = typeof Element !== 'undefined';
3
3
 
4
4
  function find(iter: any, tar: any, key?: any) {
5
- for (key of iter.keys()) {
6
- if (deepEqual(key, tar)) return key;
7
- }
5
+ for (key of iter.keys()) {
6
+ if (deepEqual(key, tar)) return key;
7
+ }
8
8
  }
9
9
 
10
10
  /**
@@ -13,94 +13,94 @@ function find(iter: any, tar: any, key?: any) {
13
13
  * @see {@link https://github.com/FormidableLabs/react-fast-compare/blob/master/index.js react-fast-compare/index.js}
14
14
  */
15
15
  export function deepEqual(foo: any, bar: any) {
16
- let ctor, len, tmp;
17
- if (foo === bar) return true;
16
+ let ctor, len, tmp;
17
+ if (foo === bar) return true;
18
18
 
19
- if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
20
- if (ctor === Date) return foo.getTime() === bar.getTime();
21
- if (ctor === RegExp) return foo.toString() === bar.toString();
19
+ if (foo && bar && (ctor = foo.constructor) === bar.constructor) {
20
+ if (ctor === Date) return foo.getTime() === bar.getTime();
21
+ if (ctor === RegExp) return foo.toString() === bar.toString();
22
22
 
23
- if (ctor === Array) {
24
- if ((len = foo.length) === bar.length) {
25
- while (len-- && deepEqual(foo[len], bar[len]));
26
- }
27
- return len === -1;
28
- }
23
+ if (ctor === Array) {
24
+ if ((len = foo.length) === bar.length) {
25
+ while (len-- && deepEqual(foo[len], bar[len]));
26
+ }
27
+ return len === -1;
28
+ }
29
29
 
30
- if (ctor === Set) {
31
- if (foo.size !== bar.size) {
32
- return false;
33
- }
34
- for (len of foo) {
35
- tmp = len;
36
- if (tmp && typeof tmp === 'object') {
37
- tmp = find(bar, tmp);
38
- if (!tmp) return false;
39
- }
40
- if (!bar.has(tmp)) return false;
41
- }
42
- return true;
43
- }
30
+ if (ctor === Set) {
31
+ if (foo.size !== bar.size) {
32
+ return false;
33
+ }
34
+ for (len of foo) {
35
+ tmp = len;
36
+ if (tmp && typeof tmp === 'object') {
37
+ tmp = find(bar, tmp);
38
+ if (!tmp) return false;
39
+ }
40
+ if (!bar.has(tmp)) return false;
41
+ }
42
+ return true;
43
+ }
44
44
 
45
- if (ctor === Map) {
46
- if (foo.size !== bar.size) {
47
- return false;
48
- }
49
- for (len of foo) {
50
- tmp = len[0];
51
- if (tmp && typeof tmp === 'object') {
52
- tmp = find(bar, tmp);
53
- if (!tmp) return false;
54
- }
55
- if (!deepEqual(len[1], bar.get(tmp))) {
56
- return false;
57
- }
58
- }
59
- return true;
60
- }
45
+ if (ctor === Map) {
46
+ if (foo.size !== bar.size) {
47
+ return false;
48
+ }
49
+ for (len of foo) {
50
+ tmp = len[0];
51
+ if (tmp && typeof tmp === 'object') {
52
+ tmp = find(bar, tmp);
53
+ if (!tmp) return false;
54
+ }
55
+ if (!deepEqual(len[1], bar.get(tmp))) {
56
+ return false;
57
+ }
58
+ }
59
+ return true;
60
+ }
61
61
 
62
- if (ctor === ArrayBuffer) {
63
- foo = new Uint8Array(foo);
64
- bar = new Uint8Array(bar);
65
- } else if (ctor === DataView) {
66
- if ((len = foo.byteLength) === bar.byteLength) {
67
- while (len-- && foo.getInt8(len) === bar.getInt8(len));
68
- }
69
- return len === -1;
70
- }
62
+ if (ctor === ArrayBuffer) {
63
+ foo = new Uint8Array(foo);
64
+ bar = new Uint8Array(bar);
65
+ } else if (ctor === DataView) {
66
+ if ((len = foo.byteLength) === bar.byteLength) {
67
+ while (len-- && foo.getInt8(len) === bar.getInt8(len));
68
+ }
69
+ return len === -1;
70
+ }
71
71
 
72
- if (ArrayBuffer.isView(foo)) {
73
- if ((len = foo.byteLength) === bar.byteLength) {
74
- while (len-- && (foo as any)[len] === bar[len]);
75
- }
76
- return len === -1;
77
- }
72
+ if (ArrayBuffer.isView(foo)) {
73
+ if ((len = foo.byteLength) === bar.byteLength) {
74
+ while (len-- && (foo as any)[len] === bar[len]);
75
+ }
76
+ return len === -1;
77
+ }
78
78
 
79
- // react & dom
80
- if (hasElementType && foo instanceof Element) return false;
79
+ // react & dom
80
+ if (hasElementType && foo instanceof Element) return false;
81
81
 
82
- if (!ctor || typeof foo === 'object') {
83
- len = 0;
84
- for (ctor in foo) {
85
- if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {
86
- // React-specific: avoid traversing React elements' _owner
87
- // Preact-specific: avoid traversing Preact elements' __v and __o
88
- // __v = $_original / $_vnode
89
- // __o = $_owner
90
- // These properties contain circular references and are not needed when
91
- // comparing the actual elements (and not their owners)
92
- // .$$typeof and ._store on just reasonable markers of elements
82
+ if (!ctor || typeof foo === 'object') {
83
+ len = 0;
84
+ for (ctor in foo) {
85
+ if ((ctor === '_owner' || ctor === '__v' || ctor === '__o') && foo.$$typeof) {
86
+ // React-specific: avoid traversing React elements' _owner
87
+ // Preact-specific: avoid traversing Preact elements' __v and __o
88
+ // __v = $_original / $_vnode
89
+ // __o = $_owner
90
+ // These properties contain circular references and are not needed when
91
+ // comparing the actual elements (and not their owners)
92
+ // .$$typeof and ._store on just reasonable markers of elements
93
93
 
94
- continue;
95
- }
94
+ continue;
95
+ }
96
96
 
97
- if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
98
- if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;
99
- }
100
- return Object.keys(bar).length === len;
101
- }
102
- }
97
+ if (has.call(foo, ctor) && ++len && !has.call(bar, ctor)) return false;
98
+ if (!(ctor in bar) || !deepEqual(foo[ctor], bar[ctor])) return false;
99
+ }
100
+ return Object.keys(bar).length === len;
101
+ }
102
+ }
103
103
 
104
- // eslint-disable-next-line no-self-compare
105
- return foo !== foo && bar !== bar;
104
+ // eslint-disable-next-line no-self-compare
105
+ return foo !== foo && bar !== bar;
106
106
  }
@@ -5,15 +5,15 @@
5
5
  * @returns {T} - The frozen object.
6
6
  */
7
7
  export function deepFreeze<T>(obj: T): T {
8
- if (obj === null || typeof obj !== 'object') {
9
- return obj;
10
- }
11
- const props = Object.getOwnPropertyNames(obj);
12
- for (const prop of props) {
13
- const value = (obj as any)[prop];
14
- if (value && typeof value === 'object') {
15
- deepFreeze(value);
16
- }
17
- }
18
- return Object.freeze(obj);
8
+ if (obj === null || typeof obj !== 'object') {
9
+ return obj;
10
+ }
11
+ const props = Object.getOwnPropertyNames(obj);
12
+ for (const prop of props) {
13
+ const value = (obj as any)[prop];
14
+ if (value && typeof value === 'object') {
15
+ deepFreeze(value);
16
+ }
17
+ }
18
+ return Object.freeze(obj);
19
19
  }
@@ -6,26 +6,26 @@ let _holder: any;
6
6
  export function setGlobalStates(states: Record<string, any>): Record<string, any>;
7
7
  export function setGlobalStates<V = any>(key: string, value: V): V | undefined;
8
8
  export function setGlobalStates(a: any, b?: any) {
9
- if (typeof a === 'string') {
10
- let s = getGlobalStates();
11
- const last = s[a];
12
- s[a] = b;
13
- return last;
14
- } else if (typeof a === 'object') {
15
- _holder = a;
16
- }
9
+ if (typeof a === 'string') {
10
+ let s = getGlobalStates();
11
+ const last = s[a];
12
+ s[a] = b;
13
+ return last;
14
+ } else if (typeof a === 'object') {
15
+ _holder = a;
16
+ }
17
17
  }
18
18
 
19
19
  export function getGlobalStates(): Record<string, any>;
20
20
  export function getGlobalStates<T>(key: string, create: () => T): T;
21
21
  export function getGlobalStates<T>(key: string): T | undefined;
22
22
  export function getGlobalStates(key?: string, create?: () => any): any {
23
- _holder ||= (getGlobalThis() as any).__GLOBAL_STATES__ ||= {};
24
- if (key) {
25
- if (!create) {
26
- return _holder[key];
27
- }
28
- return computeIfAbsent(_holder, key, create);
29
- }
30
- return _holder;
23
+ _holder ||= (getGlobalThis() as any).__GLOBAL_STATES__ ||= {};
24
+ if (key) {
25
+ if (!create) {
26
+ return _holder[key];
27
+ }
28
+ return computeIfAbsent(_holder, key, create);
29
+ }
30
+ return _holder;
31
31
  }
@@ -1,20 +1,17 @@
1
1
  import { getGlobalStates } from './getGlobalStates';
2
2
 
3
3
  export function getObjectId(k: any): number {
4
- const state = getGlobalStates('ObjectId', () => {
5
- return {
6
- id: 1,
7
- map: new WeakMap(),
8
- };
9
- });
4
+ const state = getGlobalStates('ObjectId', () => {
5
+ return { id: 1, map: new WeakMap() };
6
+ });
10
7
 
11
- const { map } = state;
8
+ const { map } = state;
12
9
 
13
- if (map.has(k)) {
14
- return map.get(k);
15
- }
10
+ if (map.has(k)) {
11
+ return map.get(k);
12
+ }
16
13
 
17
- const id = state.id++;
18
- map.set(k, id);
19
- return id;
14
+ const id = state.id++;
15
+ map.set(k, id);
16
+ return id;
20
17
  }
@@ -1,3 +1,3 @@
1
- export function ifPresent<T, R>(value: T, fn: (v: T) => R): R | undefined {
2
- return value ? fn(value) : undefined;
1
+ export function ifPresent<T, R>(value: T, fn: (v: NonNullable<T>) => R): R | undefined {
2
+ return value ? fn(value) : undefined;
3
3
  }
@@ -1,3 +1,3 @@
1
1
  export function isClass(func: any) {
2
- return typeof func === 'function' && /^class\s/.test(Function.prototype.toString.call(func));
2
+ return typeof func === 'function' && /^class\s/.test(Function.prototype.toString.call(func));
3
3
  }
@@ -1,3 +1,3 @@
1
1
  export function isDefined<T = any>(v: T): v is NonNullable<T> {
2
- return v !== null && v !== undefined;
2
+ return v !== null && v !== undefined;
3
3
  }
@@ -1,5 +1,5 @@
1
1
  import { isPlainObject } from './isPlainObject';
2
2
 
3
3
  export function isEmptyObject(o: any) {
4
- return isPlainObject(o) && Object.keys(o).length === 0;
4
+ return isPlainObject(o) && Object.keys(o).length === 0;
5
5
  }
@@ -1,3 +1,3 @@
1
1
  export function isFunction(value: any): value is Function {
2
- return typeof value === 'function';
2
+ return typeof value === 'function';
3
3
  }
@@ -0,0 +1,3 @@
1
+ export function isNil(value: any): value is null | undefined {
2
+ return value === null || value === undefined;
3
+ }
@@ -3,8 +3,8 @@ import { classOf } from './classOf';
3
3
  // see: https://github.com/mesqueeb/is-what/blob/88d6e4ca92fb2baab6003c54e02eedf4e729e5ab/src/index.ts
4
4
 
5
5
  export function isPlainObject(value: any): value is Record<string, any> {
6
- if (classOf(value) !== 'Object') {
7
- return false;
8
- }
9
- return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
6
+ if (classOf(value) !== 'Object') {
7
+ return false;
8
+ }
9
+ return value.constructor === Object && Object.getPrototypeOf(value) === Object.prototype;
10
10
  }
@@ -2,22 +2,22 @@ import { expect, test } from 'vitest';
2
2
  import { classOf } from './classOf';
3
3
 
4
4
  test('classOf', () => {
5
- for (const [k, v] of [
6
- [0, 'Number'],
7
- ['', 'String'],
8
- [true, 'Boolean'],
9
- [null, 'Null'],
10
- [undefined, 'Undefined'],
11
- [{}, 'Object'],
12
- [[], 'Array'],
13
- [new ArrayBuffer(0), 'ArrayBuffer'],
14
- [new Map(), 'Map'],
15
- [new Set(), 'Set'],
16
- [new Date(), 'Date'],
17
- [new RegExp(''), 'RegExp'],
18
- [new DataView(new ArrayBuffer(0)), 'DataView'],
19
- [new Int8Array(0), 'Int8Array'],
20
- ]) {
21
- expect(classOf(k)).toBe(v);
22
- }
5
+ for (const [k, v] of [
6
+ [0, 'Number'],
7
+ ['', 'String'],
8
+ [true, 'Boolean'],
9
+ [null, 'Null'],
10
+ [undefined, 'Undefined'],
11
+ [{}, 'Object'],
12
+ [[], 'Array'],
13
+ [new ArrayBuffer(0), 'ArrayBuffer'],
14
+ [new Map(), 'Map'],
15
+ [new Set(), 'Set'],
16
+ [new Date(), 'Date'],
17
+ [new RegExp(''), 'RegExp'],
18
+ [new DataView(new ArrayBuffer(0)), 'DataView'],
19
+ [new Int8Array(0), 'Int8Array'],
20
+ ]) {
21
+ expect(classOf(k)).toBe(v);
22
+ }
23
23
  });
@@ -2,31 +2,31 @@
2
2
  type func = (...args: any) => any;
3
3
 
4
4
  export function memoize<T extends func>(
5
- callback: T,
6
- {
7
- resolver = (...args: Parameters<T>) => JSON.stringify(args),
8
- }: { resolver?: (...args: Parameters<T>) => string } = {},
5
+ callback: T,
6
+ {
7
+ resolver = (...args: Parameters<T>) => JSON.stringify(args),
8
+ }: { resolver?: (...args: Parameters<T>) => string } = {},
9
9
  ): T {
10
- if (typeof callback !== 'function') {
11
- throw new Error('`callback` should be a function');
12
- }
10
+ if (typeof callback !== 'function') {
11
+ throw new Error('`callback` should be a function');
12
+ }
13
13
 
14
- if (resolver !== undefined && typeof resolver !== 'function') {
15
- throw new Error('`resolver` should be a function');
16
- }
14
+ if (resolver !== undefined && typeof resolver !== 'function') {
15
+ throw new Error('`resolver` should be a function');
16
+ }
17
17
 
18
- const cache: Record<string, any> = {};
18
+ const cache: Record<string, any> = {};
19
19
 
20
- const memoized = function (this: any) {
21
- const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify
22
- const key = resolver.apply(this, args as Parameters<T>);
20
+ const memoized = function (this: any) {
21
+ const args = Array.prototype.slice.call(arguments); // to simplify JSON.stringify
22
+ const key = resolver.apply(this, args as Parameters<T>);
23
23
 
24
- if (!(key in cache)) {
25
- cache[key] = callback.apply(this, args);
26
- }
24
+ if (!(key in cache)) {
25
+ cache[key] = callback.apply(this, args);
26
+ }
27
27
 
28
- return cache[key];
29
- };
30
- memoized.cache = cache;
31
- return memoized as func as T;
28
+ return cache[key];
29
+ };
30
+ memoized.cache = cache;
31
+ return memoized as func as T;
32
32
  }
@@ -4,40 +4,36 @@ import { mixin } from './mixin';
4
4
  export type Constructor<T = {}> = new (...args: any[]) => T;
5
5
 
6
6
  test('mixin', () => {
7
- // @ts-ignore
8
- class User extends mixin(BaseResource, createBarFields()) {}
9
-
10
- let usr = new User();
11
- // type not working
12
- // @ts-ignore
13
- expect(usr.foo, 'foo');
14
- expect(usr).toEqual({
15
- foo: 'foo',
16
- bar: 'bar',
17
- id: '',
18
- });
7
+ // @ts-ignore
8
+ class User extends mixin(BaseResource, createBarFields()) {}
9
+
10
+ let usr = new User();
11
+ // type not working
12
+ // @ts-ignore
13
+ expect(usr.foo, 'foo');
14
+ expect(usr).toEqual({ foo: 'foo', bar: 'bar', id: '' });
19
15
  });
20
16
 
21
17
  class BaseResource {
22
- id?: string = '';
18
+ id?: string = '';
23
19
  }
24
20
 
25
21
  function createBarFields() {
26
- return <TBase extends Constructor>(Base: TBase) => {
27
- // nested type not working
28
- // @ts-ignore
29
- class HasBarMixin extends mixin(Base, withFooFields) {
30
- bar?: string = 'bar';
31
- }
32
-
33
- return HasBarMixin;
34
- };
22
+ return <TBase extends Constructor>(Base: TBase) => {
23
+ // nested type not working
24
+ // @ts-ignore
25
+ class HasBarMixin extends mixin(Base, withFooFields) {
26
+ bar?: string = 'bar';
27
+ }
28
+
29
+ return HasBarMixin;
30
+ };
35
31
  }
36
32
 
37
33
  function withFooFields<TBase extends Constructor>(Base: TBase) {
38
- class HasFieldFooMixin extends Base {
39
- foo?: string = 'foo';
40
- }
34
+ class HasFieldFooMixin extends Base {
35
+ foo?: string = 'foo';
36
+ }
41
37
 
42
- return HasFieldFooMixin;
38
+ return HasFieldFooMixin;
43
39
  }
@@ -34,7 +34,7 @@ export type MixinConstructor<T = {}> = new (...args: any[]) => T;
34
34
  * @typeParam R The type of the returned class.
35
35
  */
36
36
  export type MixinFunction<T extends MixinConstructor = MixinConstructor, R extends T = T & MixinConstructor> = (
37
- Base: T,
37
+ Base: T,
38
38
  ) => R;
39
39
 
40
40
  /**
@@ -44,10 +44,7 @@ export type MixinFunction<T extends MixinConstructor = MixinConstructor, R exten
44
44
  * @typeParam M The type of the mixin functions.
45
45
  */
46
46
  export type MixinReturnValue<T extends MixinConstructor, M extends MixinFunction<T, any>[]> = UnionToIntersection<
47
- | T
48
- | {
49
- [K in keyof M]: M[K] extends MixinFunction<any, infer U> ? U : never;
50
- }[number]
47
+ T | { [K in keyof M]: M[K] extends MixinFunction<any, infer U> ? U : never }[number]
51
48
  >;
52
49
 
53
50
  /**
@@ -56,7 +53,7 @@ export type MixinReturnValue<T extends MixinConstructor, M extends MixinFunction
56
53
  * @typeParam F The type of the mixin function.
57
54
  */
58
55
  export type MixinInstance<F extends MixinFunction<any>> =
59
- F extends MixinFunction<MixinConstructor<any>, infer R> ? InstanceType<R> : never;
56
+ F extends MixinFunction<MixinConstructor<any>, infer R> ? InstanceType<R> : never;
60
57
 
61
58
  /**
62
59
  * Applies the given mixins to the a common base class.
@@ -73,10 +70,10 @@ export type MixinInstance<F extends MixinFunction<any>> =
73
70
  * ```
74
71
  */
75
72
  export function mixin<T extends MixinConstructor, M extends MixinFunction<T, any>[]>(
76
- Base: T,
77
- ...mixins: M
73
+ Base: T,
74
+ ...mixins: M
78
75
  ): MixinReturnValue<T, M> {
79
- return mixins.reduce((mix, applyMixin) => applyMixin(mix), Base) as MixinReturnValue<T, M>;
76
+ return mixins.reduce((mix, applyMixin) => applyMixin(mix), Base) as MixinReturnValue<T, M>;
80
77
  }
81
78
 
82
79
  // https://github.com/1nVitr0/lib-ts-mixin-extended
@@ -1,30 +1,34 @@
1
1
  export function parseBoolean(s: string | boolean | number | null | undefined, strict: true): boolean | undefined;
2
2
  export function parseBoolean(s: string | boolean | number | null | undefined | any): boolean;
3
3
  export function parseBoolean(s?: string | boolean | number | null, strict = false): boolean | undefined {
4
- if (typeof s === 'boolean') {
5
- return s;
6
- }
7
- if (typeof s === 'string') {
8
- switch (s.toLowerCase()) {
9
- case 'f':
10
- case 'false':
11
- case '0':
12
- return false;
13
- case '1':
14
- case 't':
15
- case 'true':
16
- return true;
17
- }
18
- } else if (typeof s === 'number') {
19
- switch (s) {
20
- case 0:
21
- return false;
22
- case 1:
23
- return true;
24
- }
25
- }
26
- if (strict) {
27
- return undefined;
28
- }
29
- return Boolean(s);
4
+ if (typeof s === 'boolean') {
5
+ return s;
6
+ }
7
+ if (typeof s === 'string') {
8
+ switch (s.toLowerCase()) {
9
+ case 'yes':
10
+ case 'y':
11
+ case 'true':
12
+ case 't':
13
+ case '1':
14
+ return true;
15
+ case 'no':
16
+ case 'n':
17
+ case 'false':
18
+ case 'f':
19
+ case '0':
20
+ return false;
21
+ }
22
+ } else if (typeof s === 'number') {
23
+ switch (s) {
24
+ case 0:
25
+ return false;
26
+ case 1:
27
+ return true;
28
+ }
29
+ }
30
+ if (strict) {
31
+ return undefined;
32
+ }
33
+ return Boolean(s);
30
34
  }
@@ -1,13 +1,13 @@
1
1
  export function shallowClone<T>(obj: T): T {
2
- if (!obj) {
3
- return obj;
4
- }
5
- if (Array.isArray(obj)) {
6
- return obj.slice() as T;
7
- }
8
- if (typeof obj === 'object') {
9
- return Object.assign({}, obj);
10
- }
11
- // skip Map, Set, WeakMap, WeakSet, Date, RegExp, etc.
12
- return obj;
2
+ if (!obj) {
3
+ return obj;
4
+ }
5
+ if (Array.isArray(obj)) {
6
+ return obj.slice() as T;
7
+ }
8
+ if (typeof obj === 'object') {
9
+ return Object.assign({}, obj);
10
+ }
11
+ // skip Map, Set, WeakMap, WeakSet, Date, RegExp, etc.
12
+ return obj;
13
13
  }