@kirill.konshin/utils 0.0.19 → 0.0.20

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 (352) hide show
  1. package/.ctirc +19 -10
  2. package/.storybook/main.ts +1 -20
  3. package/.storybook/preview.ts +1 -16
  4. package/.turbo/turbo-build.log +9 -66
  5. package/CHANGELOG.md +21 -0
  6. package/README.md +6 -0
  7. package/dist/bootstrap/index.d.ts +1 -12
  8. package/dist/bootstrap/index.d.ts.map +1 -1
  9. package/dist/browser/index.d.ts +2 -0
  10. package/dist/browser/index.d.ts.map +1 -0
  11. package/dist/core/index.d.ts +1 -9
  12. package/dist/core/index.d.ts.map +1 -1
  13. package/dist/electron/index.d.ts +1 -2
  14. package/dist/electron/index.d.ts.map +1 -1
  15. package/dist/electron-builder/index.d.ts +1 -2
  16. package/dist/electron-builder/index.d.ts.map +1 -1
  17. package/dist/index.d.ts +13 -0
  18. package/dist/index.d.ts.map +1 -0
  19. package/dist/index.js +27 -0
  20. package/dist/mui/index.d.ts +1 -4
  21. package/dist/mui/index.d.ts.map +1 -1
  22. package/dist/next/index.d.ts +1 -5
  23. package/dist/next/index.d.ts.map +1 -1
  24. package/dist/node/index.d.ts +2 -0
  25. package/dist/node/index.d.ts.map +1 -0
  26. package/dist/react/index.d.ts +1 -5
  27. package/dist/react/index.d.ts.map +1 -1
  28. package/dist/react-native/index.d.ts +1 -3
  29. package/dist/react-native/index.d.ts.map +1 -1
  30. package/dist/tailwind/index.d.ts +1 -2
  31. package/dist/tailwind/index.d.ts.map +1 -1
  32. package/dist/worker/index.d.ts +2 -0
  33. package/dist/worker/index.d.ts.map +1 -0
  34. package/package.json +41 -99
  35. package/src/bootstrap/index.ts +2 -12
  36. package/src/browser/index.ts +2 -0
  37. package/src/core/index.ts +2 -9
  38. package/src/electron/index.ts +2 -2
  39. package/src/electron-builder/index.ts +2 -2
  40. package/src/index.ts +12 -0
  41. package/src/mui/index.ts +2 -4
  42. package/src/next/index.ts +2 -5
  43. package/src/node/index.ts +2 -0
  44. package/src/react/index.ts +2 -5
  45. package/src/react-native/index.ts +2 -3
  46. package/src/tailwind/index.ts +2 -2
  47. package/src/worker/index.ts +2 -0
  48. package/tsconfig.json +2 -15
  49. package/vite.config.ts +2 -56
  50. package/.turbo/turbo-test.log +0 -171
  51. package/builders/.swcrc +0 -18
  52. package/builders/build.config.ts +0 -11
  53. package/builders/bun.build.js +0 -23
  54. package/builders/package.json +0 -209
  55. package/builders/perf.mjs +0 -63
  56. package/builders/rollup.config.mjs +0 -50
  57. package/builders/rslib.config.ts +0 -26
  58. package/builders/tsconfig.json +0 -21
  59. package/builders/tsup.config.ts +0 -20
  60. package/builders/turbo.json +0 -24
  61. package/builders/vite.config.ts +0 -37
  62. package/demo/worker-demo.ts +0 -73
  63. package/dist/bootstrap/adaptiveContainer.d.ts +0 -4
  64. package/dist/bootstrap/adaptiveContainer.d.ts.map +0 -1
  65. package/dist/bootstrap/adaptiveContainer.js +0 -11
  66. package/dist/bootstrap/adaptiveContainer.js.map +0 -1
  67. package/dist/bootstrap/controls.d.ts +0 -38
  68. package/dist/bootstrap/controls.d.ts.map +0 -1
  69. package/dist/bootstrap/controls.js +0 -78
  70. package/dist/bootstrap/controls.js.map +0 -1
  71. package/dist/bootstrap/controls.stories.d.ts +0 -9
  72. package/dist/bootstrap/controls.stories.d.ts.map +0 -1
  73. package/dist/bootstrap/error.d.ts +0 -9
  74. package/dist/bootstrap/error.d.ts.map +0 -1
  75. package/dist/bootstrap/error.js +0 -27
  76. package/dist/bootstrap/error.js.map +0 -1
  77. package/dist/bootstrap/error.stories.d.ts +0 -8
  78. package/dist/bootstrap/error.stories.d.ts.map +0 -1
  79. package/dist/bootstrap/field.d.ts +0 -11
  80. package/dist/bootstrap/field.d.ts.map +0 -1
  81. package/dist/bootstrap/field.js +0 -29
  82. package/dist/bootstrap/field.js.map +0 -1
  83. package/dist/bootstrap/field.stories.d.ts +0 -8
  84. package/dist/bootstrap/field.stories.d.ts.map +0 -1
  85. package/dist/bootstrap/footer.d.ts +0 -10
  86. package/dist/bootstrap/footer.d.ts.map +0 -1
  87. package/dist/bootstrap/footer.js +0 -45
  88. package/dist/bootstrap/footer.js.map +0 -1
  89. package/dist/bootstrap/globalLoading.d.ts +0 -6
  90. package/dist/bootstrap/globalLoading.d.ts.map +0 -1
  91. package/dist/bootstrap/globalLoading.js +0 -10
  92. package/dist/bootstrap/globalLoading.js.map +0 -1
  93. package/dist/bootstrap/globalLoading.stories.d.ts +0 -7
  94. package/dist/bootstrap/globalLoading.stories.d.ts.map +0 -1
  95. package/dist/bootstrap/index.js +0 -35
  96. package/dist/bootstrap/loading.d.ts +0 -10
  97. package/dist/bootstrap/loading.d.ts.map +0 -1
  98. package/dist/bootstrap/loading.js +0 -19
  99. package/dist/bootstrap/loading.js.map +0 -1
  100. package/dist/bootstrap/loading.stories.d.ts +0 -9
  101. package/dist/bootstrap/loading.stories.d.ts.map +0 -1
  102. package/dist/bootstrap/responsiveHelper.d.ts +0 -8
  103. package/dist/bootstrap/responsiveHelper.d.ts.map +0 -1
  104. package/dist/bootstrap/responsiveHelper.js +0 -46
  105. package/dist/bootstrap/responsiveHelper.js.map +0 -1
  106. package/dist/bootstrap/screen.d.ts +0 -22
  107. package/dist/bootstrap/screen.d.ts.map +0 -1
  108. package/dist/bootstrap/screen.js +0 -80
  109. package/dist/bootstrap/screen.js.map +0 -1
  110. package/dist/bootstrap/screen.stories.d.ts +0 -14
  111. package/dist/bootstrap/screen.stories.d.ts.map +0 -1
  112. package/dist/bootstrap/toaster.d.ts +0 -11
  113. package/dist/bootstrap/toaster.d.ts.map +0 -1
  114. package/dist/bootstrap/toaster.js +0 -34
  115. package/dist/bootstrap/toaster.js.map +0 -1
  116. package/dist/bootstrap/toaster.stories.d.ts +0 -8
  117. package/dist/bootstrap/toaster.stories.d.ts.map +0 -1
  118. package/dist/bootstrap/useModal.d.ts +0 -23
  119. package/dist/bootstrap/useModal.d.ts.map +0 -1
  120. package/dist/bootstrap/useModal.js +0 -50
  121. package/dist/bootstrap/useModal.js.map +0 -1
  122. package/dist/bootstrap/useModal.stories.d.ts +0 -9
  123. package/dist/bootstrap/useModal.stories.d.ts.map +0 -1
  124. package/dist/bootstrap/useWrappedForm.d.ts +0 -14
  125. package/dist/bootstrap/useWrappedForm.d.ts.map +0 -1
  126. package/dist/bootstrap/useWrappedForm.js +0 -32
  127. package/dist/bootstrap/useWrappedForm.js.map +0 -1
  128. package/dist/core/cache.d.ts +0 -120
  129. package/dist/core/cache.d.ts.map +0 -1
  130. package/dist/core/cache.js +0 -107
  131. package/dist/core/cache.js.map +0 -1
  132. package/dist/core/cache.test.d.ts +0 -2
  133. package/dist/core/cache.test.d.ts.map +0 -1
  134. package/dist/core/errors.d.ts +0 -2
  135. package/dist/core/errors.d.ts.map +0 -1
  136. package/dist/core/errors.js +0 -15
  137. package/dist/core/errors.js.map +0 -1
  138. package/dist/core/files.d.ts +0 -4
  139. package/dist/core/files.d.ts.map +0 -1
  140. package/dist/core/files.js +0 -31
  141. package/dist/core/files.js.map +0 -1
  142. package/dist/core/index.js +0 -35
  143. package/dist/core/index.js.map +0 -1
  144. package/dist/core/ls.d.ts +0 -6
  145. package/dist/core/ls.d.ts.map +0 -1
  146. package/dist/core/ls.js +0 -12
  147. package/dist/core/ls.js.map +0 -1
  148. package/dist/core/measure.d.ts +0 -35
  149. package/dist/core/measure.d.ts.map +0 -1
  150. package/dist/core/measure.js +0 -60
  151. package/dist/core/measure.js.map +0 -1
  152. package/dist/core/mutex.d.ts +0 -6
  153. package/dist/core/mutex.d.ts.map +0 -1
  154. package/dist/core/mutex.js +0 -26
  155. package/dist/core/mutex.js.map +0 -1
  156. package/dist/core/worker.d.ts +0 -98
  157. package/dist/core/worker.d.ts.map +0 -1
  158. package/dist/core/worker.js +0 -240
  159. package/dist/core/worker.js.map +0 -1
  160. package/dist/core/worker.test.d.ts +0 -2
  161. package/dist/core/worker.test.d.ts.map +0 -1
  162. package/dist/core/workerUtils.d.ts +0 -3
  163. package/dist/core/workerUtils.d.ts.map +0 -1
  164. package/dist/core/workerUtils.js +0 -31
  165. package/dist/core/workerUtils.js.map +0 -1
  166. package/dist/core/wrpc.d.ts +0 -45
  167. package/dist/core/wrpc.d.ts.map +0 -1
  168. package/dist/core/wrpc.fixture.d.ts +0 -26
  169. package/dist/core/wrpc.fixture.d.ts.map +0 -1
  170. package/dist/core/wrpc.js +0 -242
  171. package/dist/core/wrpc.js.map +0 -1
  172. package/dist/core/wrpc.test.d.ts +0 -1
  173. package/dist/core/wrpc.test.d.ts.map +0 -1
  174. package/dist/electron/createWindow.d.ts +0 -23
  175. package/dist/electron/createWindow.d.ts.map +0 -1
  176. package/dist/electron/createWindow.js +0 -160
  177. package/dist/electron/createWindow.js.map +0 -1
  178. package/dist/electron/index.js +0 -9
  179. package/dist/electron/index.js.map +0 -1
  180. package/dist/electron/updater.d.ts +0 -2
  181. package/dist/electron/updater.d.ts.map +0 -1
  182. package/dist/electron/updater.js +0 -47
  183. package/dist/electron/updater.js.map +0 -1
  184. package/dist/electron-builder/builder.d.ts +0 -8
  185. package/dist/electron-builder/builder.d.ts.map +0 -1
  186. package/dist/electron-builder/builder.js +0 -130
  187. package/dist/electron-builder/builder.js.map +0 -1
  188. package/dist/electron-builder/images.d.ts +0 -7
  189. package/dist/electron-builder/images.d.ts.map +0 -1
  190. package/dist/electron-builder/images.js +0 -25
  191. package/dist/electron-builder/images.js.map +0 -1
  192. package/dist/electron-builder/index.js +0 -7
  193. package/dist/electron-builder/index.js.map +0 -1
  194. package/dist/mui/formControlFieldset.d.ts +0 -5
  195. package/dist/mui/formControlFieldset.d.ts.map +0 -1
  196. package/dist/mui/formControlFieldset.js +0 -28
  197. package/dist/mui/formControlFieldset.js.map +0 -1
  198. package/dist/mui/formControlFieldset.stories.d.ts +0 -7
  199. package/dist/mui/formControlFieldset.stories.d.ts.map +0 -1
  200. package/dist/mui/formLabelLegend.d.ts +0 -4
  201. package/dist/mui/formLabelLegend.d.ts.map +0 -1
  202. package/dist/mui/formLabelLegend.js +0 -12
  203. package/dist/mui/formLabelLegend.js.map +0 -1
  204. package/dist/mui/genericControl.d.ts +0 -7
  205. package/dist/mui/genericControl.d.ts.map +0 -1
  206. package/dist/mui/genericControl.js +0 -21
  207. package/dist/mui/genericControl.js.map +0 -1
  208. package/dist/mui/index.js +0 -11
  209. package/dist/mui/index.js.map +0 -1
  210. package/dist/mui/readOnly.d.ts +0 -6
  211. package/dist/mui/readOnly.d.ts.map +0 -1
  212. package/dist/mui/readOnly.js +0 -7
  213. package/dist/mui/readOnly.js.map +0 -1
  214. package/dist/next/appLink.d.ts +0 -8
  215. package/dist/next/appLink.d.ts.map +0 -1
  216. package/dist/next/appLink.js +0 -34
  217. package/dist/next/appLink.js.map +0 -1
  218. package/dist/next/index.js +0 -15
  219. package/dist/next/index.js.map +0 -1
  220. package/dist/next/measure.d.ts +0 -15
  221. package/dist/next/measure.d.ts.map +0 -1
  222. package/dist/next/measure.js +0 -9
  223. package/dist/next/measure.js.map +0 -1
  224. package/dist/next/noSSR.d.ts +0 -29
  225. package/dist/next/noSSR.d.ts.map +0 -1
  226. package/dist/next/noSSR.js +0 -13
  227. package/dist/next/noSSR.js.map +0 -1
  228. package/dist/next/redirect.d.ts +0 -6
  229. package/dist/next/redirect.d.ts.map +0 -1
  230. package/dist/next/useIsInner.d.ts +0 -3
  231. package/dist/next/useIsInner.d.ts.map +0 -1
  232. package/dist/next/useIsInner.js +0 -15
  233. package/dist/next/useIsInner.js.map +0 -1
  234. package/dist/react/apiCall.d.ts +0 -6
  235. package/dist/react/apiCall.d.ts.map +0 -1
  236. package/dist/react/apiCall.js +0 -24
  237. package/dist/react/apiCall.js.map +0 -1
  238. package/dist/react/form/client.d.ts +0 -7
  239. package/dist/react/form/client.d.ts.map +0 -1
  240. package/dist/react/form/client.js +0 -46
  241. package/dist/react/form/client.js.map +0 -1
  242. package/dist/react/form/form.d.ts +0 -59
  243. package/dist/react/form/form.d.ts.map +0 -1
  244. package/dist/react/form/form.js +0 -89
  245. package/dist/react/form/form.js.map +0 -1
  246. package/dist/react/form/index.d.ts +0 -3
  247. package/dist/react/form/index.d.ts.map +0 -1
  248. package/dist/react/index.js +0 -26
  249. package/dist/react/index.js.map +0 -1
  250. package/dist/react/keyboard.d.ts +0 -10
  251. package/dist/react/keyboard.d.ts.map +0 -1
  252. package/dist/react/keyboard.js +0 -38
  253. package/dist/react/keyboard.js.map +0 -1
  254. package/dist/react/useFetch.d.ts +0 -2
  255. package/dist/react/useFetch.d.ts.map +0 -1
  256. package/dist/react/useFetch.js +0 -20
  257. package/dist/react/useFetch.js.map +0 -1
  258. package/dist/react/useFetcher.d.ts +0 -10
  259. package/dist/react/useFetcher.d.ts.map +0 -1
  260. package/dist/react/useFetcher.js +0 -43
  261. package/dist/react/useFetcher.js.map +0 -1
  262. package/dist/react-native/index.js +0 -9
  263. package/dist/react-native/index.js.map +0 -1
  264. package/dist/react-native/share.d.ts +0 -9
  265. package/dist/react-native/share.d.ts.map +0 -1
  266. package/dist/react-native/share.js +0 -23
  267. package/dist/react-native/share.js.map +0 -1
  268. package/dist/react-native/update.d.ts +0 -3
  269. package/dist/react-native/update.d.ts.map +0 -1
  270. package/dist/react-native/update.js +0 -40
  271. package/dist/react-native/update.js.map +0 -1
  272. package/dist/react-native/useAppState.d.ts +0 -2
  273. package/dist/react-native/useAppState.d.ts.map +0 -1
  274. package/dist/react-native/useAppState.js +0 -18
  275. package/dist/react-native/useAppState.js.map +0 -1
  276. package/dist/tailwind/fullpage.d.ts +0 -3
  277. package/dist/tailwind/fullpage.d.ts.map +0 -1
  278. package/dist/tailwind/fullpage.js +0 -14
  279. package/dist/tailwind/fullpage.js.map +0 -1
  280. package/dist/tailwind/index.js +0 -7
  281. package/dist/tailwind/index.js.map +0 -1
  282. package/dist/tailwind/responsiveHelper.d.ts +0 -3
  283. package/dist/tailwind/responsiveHelper.d.ts.map +0 -1
  284. package/dist/tailwind/responsiveHelper.js +0 -16
  285. package/dist/tailwind/responsiveHelper.js.map +0 -1
  286. package/src/bootstrap/adaptiveContainer.tsx +0 -12
  287. package/src/bootstrap/controls.stories.tsx +0 -62
  288. package/src/bootstrap/controls.tsx +0 -119
  289. package/src/bootstrap/error.stories.tsx +0 -34
  290. package/src/bootstrap/error.tsx +0 -37
  291. package/src/bootstrap/field.stories.tsx +0 -42
  292. package/src/bootstrap/field.tsx +0 -37
  293. package/src/bootstrap/footer.tsx +0 -61
  294. package/src/bootstrap/globalLoading.stories.tsx +0 -25
  295. package/src/bootstrap/globalLoading.tsx +0 -19
  296. package/src/bootstrap/loading.stories.tsx +0 -35
  297. package/src/bootstrap/loading.tsx +0 -24
  298. package/src/bootstrap/main.scss +0 -86
  299. package/src/bootstrap/responsiveHelper.tsx +0 -55
  300. package/src/bootstrap/screen.stories.tsx +0 -160
  301. package/src/bootstrap/screen.tsx +0 -146
  302. package/src/bootstrap/toaster.stories.tsx +0 -32
  303. package/src/bootstrap/toaster.tsx +0 -40
  304. package/src/bootstrap/useModal.stories.tsx +0 -51
  305. package/src/bootstrap/useModal.tsx +0 -93
  306. package/src/bootstrap/useWrappedForm.ts +0 -42
  307. package/src/core/README.md +0 -91
  308. package/src/core/cache.test.ts +0 -121
  309. package/src/core/cache.ts +0 -246
  310. package/src/core/errors.ts +0 -17
  311. package/src/core/files.ts +0 -29
  312. package/src/core/ls.ts +0 -15
  313. package/src/core/measure.ts +0 -109
  314. package/src/core/mutex.ts +0 -22
  315. package/src/core/worker.test.ts +0 -197
  316. package/src/core/worker.ts +0 -347
  317. package/src/core/workerUtils.ts +0 -32
  318. package/src/core/wrpc.fixture.ts +0 -106
  319. package/src/core/wrpc.test.ts +0 -225
  320. package/src/core/wrpc.ts +0 -377
  321. package/src/electron/README.md +0 -13
  322. package/src/electron/createWindow.ts +0 -234
  323. package/src/electron/updater.ts +0 -54
  324. package/src/electron-builder/builder.ts +0 -150
  325. package/src/electron-builder/images.ts +0 -33
  326. package/src/mui/README.md +0 -3
  327. package/src/mui/formControlFieldset.stories.tsx +0 -71
  328. package/src/mui/formControlFieldset.tsx +0 -26
  329. package/src/mui/formLabelLegend.tsx +0 -11
  330. package/src/mui/genericControl.tsx +0 -20
  331. package/src/mui/readOnly.tsx +0 -6
  332. package/src/next/appLink.tsx +0 -40
  333. package/src/next/measure.ts +0 -24
  334. package/src/next/noSSR.tsx +0 -36
  335. package/src/next/redirect.tsx +0 -13
  336. package/src/next/useIsInner.ts +0 -13
  337. package/src/react/apiCall.ts +0 -25
  338. package/src/react/form/client.tsx +0 -73
  339. package/src/react/form/form.tsx +0 -178
  340. package/src/react/form/index.ts +0 -2
  341. package/src/react/keyboard.tsx +0 -54
  342. package/src/react/useFetch.ts +0 -29
  343. package/src/react/useFetcher.ts +0 -54
  344. package/src/react-native/share.ts +0 -31
  345. package/src/react-native/update.tsx +0 -40
  346. package/src/react-native/useAppState.ts +0 -18
  347. package/src/tailwind/README.md +0 -8
  348. package/src/tailwind/fullpage.tsx +0 -11
  349. package/src/tailwind/responsiveHelper.tsx +0 -16
  350. package/src-todo/auth0.tsx +0 -177
  351. package/vite.exports.ts +0 -121
  352. /package/dist/{bootstrap/index.js.map → index.js.map} +0 -0
@@ -1,2 +1,2 @@
1
- export * from './builder';
2
- export * from './images';
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as electronBuilder from '@kirill.konshin/electron-builder';
package/src/index.ts ADDED
@@ -0,0 +1,12 @@
1
+ export * from './bootstrap';
2
+ export * from './browser';
3
+ export * from './core';
4
+ export * from './electron';
5
+ export * from './electron-builder';
6
+ export * from './mui';
7
+ export * from './next';
8
+ export * from './node';
9
+ export * from './react';
10
+ export * from './react-native';
11
+ export * from './tailwind';
12
+ export * from './worker';
package/src/mui/index.ts CHANGED
@@ -1,4 +1,2 @@
1
- export * from './formControlFieldset';
2
- export * from './formLabelLegend';
3
- export * from './genericControl';
4
- export * from './readOnly';
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as mui from '@kirill.konshin/mui';
package/src/next/index.ts CHANGED
@@ -1,5 +1,2 @@
1
- export * from './appLink';
2
- export * from './measure';
3
- export * from './noSSR';
4
- export * from './redirect';
5
- export * from './useIsInner';
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as next from '@kirill.konshin/next';
@@ -0,0 +1,2 @@
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as node from '@kirill.konshin/node';
@@ -1,5 +1,2 @@
1
- export * from './form';
2
- export * from './apiCall';
3
- export * from './keyboard';
4
- export * from './useFetch';
5
- export * from './useFetcher';
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as react from '@kirill.konshin/react';
@@ -1,3 +1,2 @@
1
- export * from './share';
2
- export * from './update';
3
- export * from './useAppState';
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as reactNative from '@kirill.konshin/react-native';
@@ -1,2 +1,2 @@
1
- export * from './fullpage';
2
- export * from './responsiveHelper';
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as tailwind from '@kirill.konshin/tailwind';
@@ -0,0 +1,2 @@
1
+ // THIS FILE WAS GENERATED, DO NOT EDIT
2
+ export * as worker from '@kirill.konshin/worker';
package/tsconfig.json CHANGED
@@ -1,22 +1,9 @@
1
1
  {
2
- "extends": "../../tsconfig.json",
2
+ "extends": "../utils-private/tsconfig.json",
3
3
  "compilerOptions": {
4
4
  "rootDir": "src",
5
5
  "outDir": "dist",
6
- "declaration": true,
7
- "declarationMap": true,
8
- "declarationDir": "dist",
9
- "incremental": false,
10
- "allowJs": true,
11
- /* Build-specific options */
12
- "module": "esnext",
13
- "moduleResolution": "bundler",
14
- "allowImportingTsExtensions": true,
15
- "isolatedModules": true,
16
- "isolatedDeclarations": true,
17
- "moduleDetection": "force",
18
- "noEmit": true,
19
- "jsx": "react-jsx"
6
+ "declarationDir": "dist"
20
7
  },
21
8
  "include": ["src"],
22
9
  "exclude": []
package/vite.config.ts CHANGED
@@ -1,56 +1,2 @@
1
- import { defineConfig, type Plugin } from 'vitest/config';
2
- import react from '@vitejs/plugin-react';
3
- import dts from 'vite-plugin-dts';
4
- import preserveDirectives from 'rollup-preserve-directives';
5
- import { fixExports, formats, entry, external, distDir, generateIndex } from './vite.exports';
6
-
7
- // https://rbardini.com/how-to-build-ts-library-with-vite/
8
- // https://dev.to/receter/how-to-create-a-react-component-library-using-vites-library-mode-4lma
9
-
10
- const isWatch = process.argv.includes('--watch'); // https://github.com/vitejs/vite/discussions/7565#discussioncomment-2939256
11
-
12
- export default defineConfig({
13
- build: {
14
- ssr: true,
15
- sourcemap: true,
16
- outDir: distDir,
17
- emptyOutDir: !isWatch,
18
- // target: 'esnext',
19
- lib: {
20
- entry,
21
- formats: Object.keys(formats) as any,
22
- },
23
- rollupOptions: {
24
- external,
25
- output: {
26
- preserveModules: true,
27
- preserveModulesRoot: 'src',
28
- },
29
- },
30
- },
31
- test: {
32
- coverage: {
33
- reporter: ['text', 'html', 'cobertura'],
34
- } as any,
35
- },
36
- resolve: { extensions: ['.ts', '.tsx', '.js', '.jsx', '.json'] }, // https://vite.dev/guide/performance#reduce-resolve-operations
37
- plugins: [
38
- react(),
39
- preserveDirectives() as Plugin, // https://github.com/vitejs/vite/discussions/15721#discussioncomment-10572828
40
- dts(), //TODO Check https://github.com/alloc/vite-dts
41
- {
42
- name: 'Generate Index & Exports',
43
- async buildStart() {
44
- if (!isWatch) await generateIndex();
45
- },
46
- async closeBundle() {
47
- if (!isWatch) await fixExports();
48
- },
49
- },
50
- ],
51
- server: {
52
- watch: {
53
- ignored: ['**/package.json', '**/index.ts'],
54
- },
55
- },
56
- });
1
+ import config from '../utils-private/vite.config';
2
+ export default config;
@@ -1,171 +0,0 @@
1
- [?25lcreate succeeded: /home/runner/work/utils/utils/packages/utils/src/bootstrap
2
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron
3
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/electron-builder
4
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/next
5
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/core
6
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/mui
7
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/react-native
8
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/tailwind
9
- create succeeded: /home/runner/work/utils/utils/packages/utils/src/react
10
-
11
-  RUN  v3.0.4 /home/runner/work/utils/utils/packages/utils
12
- Coverage enabled with v8
13
-
14
- stdout | src/core/cache.test.ts > TransformerMap > key transform
15
- CLEAR cache test
16
-
17
- ✓ src/core/worker.test.ts (8 tests) 16ms
18
- ✓ src/core/cache.test.ts (4 tests) 14ms
19
- stderr | src/core/wrpc.test.ts
20
- Using an object as a third argument is deprecated. Vitest 4 will throw an error if the third argument is not a timeout number. Please use the second argument for options. See more at https://vitest.dev/guide/migration
21
-
22
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
23
- DATA 1
24
-
25
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
26
- DATA 2
27
-
28
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
29
- DATA 3
30
-
31
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
32
- DATA { value: 1, done: false }
33
-
34
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
35
- DATA { value: 2, done: false }
36
-
37
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
38
- DATA { value: 3, done: false }
39
-
40
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of return yield
41
- DATA { value: undefined, done: true }
42
-
43
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of separate return & yield
44
- DATA { progress: 0 }
45
-
46
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of separate return & yield
47
- DATA { progress: 0.5 }
48
-
49
- stdout | src/core/wrpc.test.ts > WRPC > for await ... of separate return & yield
50
- DATA { progress: 1, aborted: false }
51
-
52
- stdout | src/core/wrpc.test.ts > WRPC > do ... while
53
- DATA { value: { progress: 0 }, done: false }
54
-
55
- stdout | src/core/wrpc.test.ts > WRPC > do ... while
56
- DATA { value: { progress: 0.5 }, done: false }
57
-
58
- stdout | src/core/wrpc.test.ts > WRPC > do ... while
59
- DATA { value: { progress: 1, aborted: false }, done: false }
60
-
61
- stdout | src/core/wrpc.test.ts > WRPC > do ... while
62
- DATA { value: 'foo', done: true }
63
-
64
- stdout | src/core/wrpc.test.ts > WRPC > break
65
- DATA { progress: 0 }
66
-
67
- stdout | src/core/wrpc.test.ts > WRPC > abort
68
- DATA { progress: 0 }
69
-
70
- ✓ src/core/wrpc.test.ts (13 tests | 1 skipped) 706ms
71
- ✓ WRPC > stop 503ms
72
-
73
-  Test Files  3 passed (3)
74
-  Tests  24 passed | 1 skipped (25)
75
-  Start at  01:00:13
76
-  Duration  1.80s (transform 220ms, setup 0ms, collect 318ms, tests 736ms, environment 1ms, prepare 344ms)
77
-
78
-  % Coverage report from v8
79
- -------------------|---------|----------|---------|---------|-------------------
80
- File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s
81
- -------------------|---------|----------|---------|---------|-------------------
82
- All files | 22.28 | 81.26 | 65.13 | 22.28 |
83
- utils | 0 | 0 | 0 | 0 |
84
- vite.exports.ts | 0 | 0 | 0 | 0 | 1-121
85
- utils/builders | 0 | 0 | 0 | 0 |
86
- bun.build.js | 0 | 0 | 0 | 0 | 1-23
87
- perf.mjs | 0 | 0 | 0 | 0 | 1-63
88
- rslib.config.ts | 0 | 0 | 0 | 0 | 1-26
89
- utils/demo | 0 | 0 | 0 | 0 |
90
- worker-demo.ts | 0 | 0 | 0 | 0 | 1-73
91
- utils/src-todo | 0 | 0 | 0 | 0 |
92
- auth0.tsx | 0 | 0 | 0 | 0 |
93
- .../src/bootstrap | 0 | 66.66 | 66.66 | 0 |
94
- ...Container.tsx | 0 | 100 | 100 | 0 | 2-12
95
- ...s.stories.tsx | 0 | 0 | 0 | 0 | 1-62
96
- controls.tsx | 0 | 0 | 0 | 0 | 1-119
97
- ...r.stories.tsx | 0 | 100 | 100 | 0 | 2-34
98
- error.tsx | 0 | 100 | 100 | 0 | 4-37
99
- ...d.stories.tsx | 0 | 100 | 100 | 0 | 3-42
100
- field.tsx | 0 | 100 | 100 | 0 | 2-37
101
- footer.tsx | 0 | 100 | 100 | 0 | 2-61
102
- ...g.stories.tsx | 0 | 100 | 100 | 0 | 3-25
103
- ...alLoading.tsx | 0 | 100 | 100 | 0 | 3-19
104
- index.ts | 0 | 0 | 0 | 0 | 1-12
105
- ...g.stories.tsx | 0 | 100 | 100 | 0 | 3-35
106
- loading.tsx | 0 | 0 | 0 | 0 | 1-24
107
- ...iveHelper.tsx | 0 | 100 | 100 | 0 | 3-55
108
- ...n.stories.tsx | 0 | 100 | 100 | 0 | 3-160
109
- screen.tsx | 0 | 0 | 0 | 0 | 1-146
110
- ...r.stories.tsx | 0 | 100 | 100 | 0 | 2-32
111
- toaster.tsx | 0 | 100 | 100 | 0 | 3-40
112
- ...l.stories.tsx | 0 | 100 | 100 | 0 | 3-51
113
- useModal.tsx | 0 | 0 | 0 | 0 | 1-93
114
- ...rappedForm.ts | 0 | 0 | 0 | 0 | 1-42
115
- utils/src/core | 77 | 88.23 | 73.91 | 77 |
116
- cache.ts | 81.25 | 89.65 | 56.25 | 81.25 | ...01-202,225-226
117
- errors.ts | 0 | 100 | 100 | 0 | 2-17
118
- files.ts | 0 | 0 | 0 | 0 | 1-29
119
- index.ts | 0 | 0 | 0 | 0 | 1-9
120
- ls.ts | 0 | 0 | 0 | 0 | 1-15
121
- measure.ts | 0 | 0 | 0 | 0 | 1-109
122
- mutex.ts | 0 | 100 | 100 | 0 | 3-22
123
- worker.ts | 100 | 98.71 | 100 | 100 | 57
124
- workerUtils.ts | 100 | 83.33 | 100 | 100 | 26-27
125
- wrpc.fixture.ts | 80 | 77.77 | 66.66 | 80 | 60,96-97,99-106
126
- wrpc.ts | 97.17 | 85.12 | 66.66 | 97.17 | ...97-198,243-244
127
- ...s/src/electron | 0 | 33.33 | 33.33 | 0 |
128
- createWindow.ts | 0 | 0 | 0 | 0 | 1-234
129
- index.ts | 0 | 0 | 0 | 0 | 1-2
130
- updater.ts | 0 | 100 | 100 | 0 | 2-54
131
- ...ectron-builder | 0 | 33.33 | 33.33 | 0 |
132
- builder.ts | 0 | 100 | 100 | 0 | 4-150
133
- images.ts | 0 | 0 | 0 | 0 | 1-33
134
- index.ts | 0 | 0 | 0 | 0 | 1-2
135
- utils/src/mui | 0 | 83.33 | 83.33 | 0 |
136
- ...t.stories.tsx | 0 | 100 | 100 | 0 | 4-71
137
- ...lFieldset.tsx | 0 | 100 | 100 | 0 | 2-26
138
- ...belLegend.tsx | 0 | 100 | 100 | 0 | 2-11
139
- ...icControl.tsx | 0 | 100 | 100 | 0 | 2-19
140
- index.ts | 0 | 0 | 0 | 0 | 1-4
141
- readOnly.tsx | 0 | 100 | 100 | 0 | 2-5
142
- utils/src/next | 0 | 66.66 | 66.66 | 0 |
143
- appLink.tsx | 0 | 100 | 100 | 0 | 4-40
144
- index.ts | 0 | 0 | 0 | 0 | 1-5
145
- measure.ts | 0 | 0 | 0 | 0 | 1-24
146
- noSSR.tsx | 0 | 100 | 100 | 0 | 3-36
147
- redirect.tsx | 0 | 100 | 100 | 0 | 3-13
148
- useIsInner.ts | 0 | 100 | 100 | 0 | 3-13
149
- utils/src/react | 0 | 40 | 40 | 0 |
150
- apiCall.ts | 0 | 0 | 0 | 0 | 1-25
151
- index.ts | 0 | 0 | 0 | 0 | 1-5
152
- keyboard.tsx | 0 | 100 | 100 | 0 | 3-54
153
- useFetch.ts | 0 | 100 | 100 | 0 | 3-29
154
- useFetcher.ts | 0 | 0 | 0 | 0 | 1-54
155
- ...c/react-native | 0 | 0 | 0 | 0 |
156
- index.ts | 0 | 0 | 0 | 0 | 1-3
157
- share.ts | 0 | 0 | 0 | 0 | 1-31
158
- update.tsx | 0 | 0 | 0 | 0 | 1-40
159
- useAppState.ts | 0 | 0 | 0 | 0 | 1-18
160
- ...src/react/form | 0 | 33.33 | 33.33 | 0 |
161
- client.tsx | 0 | 100 | 100 | 0 | 3-73
162
- form.tsx | 0 | 0 | 0 | 0 | 1-178
163
- index.ts | 0 | 0 | 0 | 0 | 1-2
164
- ...s/src/tailwind | 0 | 66.66 | 66.66 | 0 |
165
- fullpage.tsx | 0 | 100 | 100 | 0 | 3-10
166
- index.ts | 0 | 0 | 0 | 0 | 1-2
167
- ...iveHelper.tsx | 0 | 100 | 100 | 0 | 5-16
168
- -------------------|---------|----------|---------|---------|-------------------
169
- Updated package.json with exports
170
- Updated package.json with exports
171
- [?25h
package/builders/.swcrc DELETED
@@ -1,18 +0,0 @@
1
- {
2
- "$schema": "https://swc.rs/schema.json",
3
- "jsc": {
4
- "parser": {
5
- "syntax": "typescript",
6
- "tsx": true
7
- },
8
- "target": "es2020",
9
- "keepClassNames": true
10
- },
11
- "module": {
12
- "type": "es6",
13
- "strict": true,
14
- "preserveImportMeta": true
15
- },
16
- "sourceMaps": true,
17
- "exclude": [".*\\.stories\\.ts$", ".*\\.stories\\.tsx$", ".*\\.test\\.ts$"]
18
- }
@@ -1,11 +0,0 @@
1
- import { BuildConfig } from 'unbuild';
2
- import { entry, entryGlob, external, fixExports, formats, includeGlob } from './exports.mjs';
3
-
4
- export default {
5
- entries: entry,
6
- declaration: true,
7
- clean: true,
8
- outDir: 'dist-unbuild',
9
- externals: external,
10
- failOnWarn: false,
11
- } satisfies BuildConfig;
@@ -1,23 +0,0 @@
1
- import { Glob, build } from 'bun';
2
- import dts from 'bun-plugin-dts';
3
- import { entry, external } from './exports.mjs';
4
-
5
- const results = await build({
6
- entrypoints: entry,
7
- publicPath: '',
8
- sourcemap: 'linked',
9
- outdir: 'dist-bun',
10
- plugins: [dts({})],
11
- target: 'node',
12
- external,
13
- format: 'esm',
14
- });
15
-
16
- if (results.success == false) {
17
- console.error('Build failed');
18
- for (const message of results.logs) {
19
- console.error(message);
20
- }
21
- } else {
22
- console.log('Compiled ' + results.outputs.length + ' javascript files...');
23
- }
@@ -1,209 +0,0 @@
1
- {
2
- "name": "@kirill.konshin/utils",
3
- "description": "Utilities",
4
- "version": "0.0.8",
5
- "type": "module",
6
- "scripts": {
7
- "clean": "rm -rf dist .tscache tsconfig.tsbuildinfo",
8
- "----- BUILD -----": "",
9
- "build": "echo Done",
10
- "build:tsup": "tsup",
11
- "build:vite": "vite build",
12
- "build:rollup": "rollup --config rollup.config.mjs",
13
- "build:unbuild": "unbuild",
14
- "build:bare": "yarn clean && yarn build:swc && yarn build:tsc",
15
- "build:swc": "swc src --out-dir dist-bare --strip-leading-paths",
16
- "build:tsc": "tsc --declaration --emitDeclarationOnly --outDir dist-bare",
17
- "build:rslib": "rslib build",
18
- "build:check-types": "attw --pack .",
19
- "build:index": "cti create ./src/*",
20
- "build:exports": "FIX=true node exports.mjs",
21
- "----- TURBO -----": "",
22
- "x-start": "yarn build --watch",
23
- "start": "turbo run start:swc start:tsc",
24
- "start:swc": "yarn build:swc --watch",
25
- "start:tsc": "yarn build:tsc --watch --preserveWatchOutput",
26
- "----- TEST & UTILS -----": "",
27
- "wait": "wait-on ./dist/core/index.mjs",
28
- "test": "vitest run --coverage",
29
- "test:watch": "vitest watch --coverage",
30
- "storybook:start": "storybook dev -p 6006",
31
- "storybook:build": "storybook build"
32
- },
33
- "dependencies": {
34
- "clsx": "^2.1.1",
35
- "colors": "^1.4.0",
36
- "expo-file-system": "^18.0.7",
37
- "expo-sharing": "^13.0.1",
38
- "expo-updates": "^0.26.13",
39
- "many-keys-map": "^2.0.1",
40
- "psd": "^3.4.0",
41
- "react-hook-form": "^7.54.2",
42
- "sharp": "^0.33.5"
43
- },
44
- "devDependencies": {
45
- "@arethetypeswrong/cli": "^0.17.3",
46
- "@chromatic-com/storybook": "^3.2.4",
47
- "@emotion/react": "^11.14.0",
48
- "@emotion/styled": "^11.14.0",
49
- "@microsoft/api-extractor": "^7.49.2",
50
- "@mui/material": "^6.4.2",
51
- "@mui/styled-engine": "^6.4.2",
52
- "@rollup/plugin-commonjs": "^28.0.2",
53
- "@rollup/plugin-multi-entry": "^6.0.1",
54
- "@rollup/plugin-node-resolve": "^16.0.0",
55
- "@rollup/plugin-swc": "^0.4.0",
56
- "@rslib/core": "^0.4.0",
57
- "@storybook/addon-essentials": "^8.5.2",
58
- "@storybook/addon-interactions": "^8.5.2",
59
- "@storybook/addon-onboarding": "^8.5.2",
60
- "@storybook/blocks": "^8.5.2",
61
- "@storybook/react": "^8.5.2",
62
- "@storybook/react-vite": "^8.5.2",
63
- "@storybook/test": "^8.5.2",
64
- "@swc/cli": "^0.6.0",
65
- "@swc/core": "^1.10.11",
66
- "@types/bun": "^1.2.1",
67
- "@types/psd": "^3.4.3",
68
- "@vitest/coverage-v8": "^3.0.4",
69
- "bootstrap": "^5.3.3",
70
- "bootstrap-icons": "^1.11.3",
71
- "bun": "^1.2.1",
72
- "bun-plugin-dts": "^0.3.0",
73
- "chokidar": "^4.0.3",
74
- "create-ts-index": "^1.14.0",
75
- "electron": "^34.0.1",
76
- "electron-builder": "^25.1.8",
77
- "electron-default-menu": "^1.0.2",
78
- "electron-store": "^10.0.1",
79
- "electron-updater": "^6.4.0",
80
- "glob": "^11.0.1",
81
- "next": "^15.1.6",
82
- "react-bootstrap": "^2.10.8",
83
- "react-native": "^0.77.0",
84
- "rollup": "^4.32.1",
85
- "rollup-plugin-delete": "^2.1.0",
86
- "sass-embedded": "^1.83.4",
87
- "storybook": "^8.5.2",
88
- "tailwindcss": "^4.0.1",
89
- "tsup": "^8.3.6",
90
- "unbuild": "^3.3.1",
91
- "vite": "^6.0.11",
92
- "vitest": "^3.0.4",
93
- "zod": "^3.24.1"
94
- },
95
- "peerDependencies": {
96
- "@mui/material": "^6",
97
- "bootstrap": "^5",
98
- "bootstrap-icons": "^1",
99
- "electron": "^34",
100
- "next": "^15",
101
- "react": "^19",
102
- "react-bootstrap": "^2",
103
- "react-native": "^0.77",
104
- "tailwindcss": "^4.0.0",
105
- "zod": "^3"
106
- },
107
- "peerDependenciesMeta": {
108
- "@mui/material": {
109
- "optional": true
110
- },
111
- "bootstrap": {
112
- "optional": true
113
- },
114
- "bootstrap-icons": {
115
- "optional": true
116
- },
117
- "electron": {
118
- "optional": true
119
- },
120
- "next": {
121
- "optional": true
122
- },
123
- "react": {
124
- "optional": true
125
- },
126
- "react-bootstrap": {
127
- "optional": true
128
- },
129
- "react-native": {
130
- "optional": true
131
- },
132
- "tailwind": {
133
- "optional": true
134
- },
135
- "zod": {
136
- "optional": true
137
- }
138
- },
139
- "publishConfig": {
140
- "access": "public"
141
- },
142
- "author": "Kirill Konshin <kirill@konshin.org> (https://konshin.org)",
143
- "license": "MIT",
144
- "exports": {
145
- "./tailwind": {
146
- "import": {
147
- "import": "./dist/tailwind/index.mjs",
148
- "types": "./dist/tailwind/index.d.ts"
149
- }
150
- },
151
- "./react-native": {
152
- "import": {
153
- "import": "./dist/react-native/index.mjs",
154
- "types": "./dist/react-native/index.d.ts"
155
- }
156
- },
157
- "./react": {
158
- "import": {
159
- "import": "./dist/react/index.mjs",
160
- "types": "./dist/react/index.d.ts"
161
- }
162
- },
163
- "./next": {
164
- "import": {
165
- "import": "./dist/next/index.mjs",
166
- "types": "./dist/next/index.d.ts"
167
- }
168
- },
169
- "./mui": {
170
- "import": {
171
- "import": "./dist/mui/index.mjs",
172
- "types": "./dist/mui/index.d.ts"
173
- }
174
- },
175
- "./electron-builder": {
176
- "import": {
177
- "import": "./dist/electron-builder/index.mjs",
178
- "types": "./dist/electron-builder/index.d.ts"
179
- }
180
- },
181
- "./electron": {
182
- "import": {
183
- "import": "./dist/electron/index.mjs",
184
- "types": "./dist/electron/index.d.ts"
185
- }
186
- },
187
- "./core": {
188
- "import": {
189
- "import": "./dist/core/index.mjs",
190
- "types": "./dist/core/index.d.ts"
191
- }
192
- },
193
- "./bootstrap": {
194
- "import": {
195
- "import": "./dist/bootstrap/index.mjs",
196
- "types": "./dist/bootstrap/index.d.ts"
197
- }
198
- },
199
- ".": {
200
- "import": {
201
- "import": "./dist/core/index.mjs",
202
- "types": "./dist/core/index.d.ts"
203
- }
204
- }
205
- },
206
- "main": "./dist/core/index.mjs",
207
- "module": "./dist/core/index.mjs",
208
- "types": "./dist/core/index.d.ts"
209
- }
package/builders/perf.mjs DELETED
@@ -1,63 +0,0 @@
1
- import { execSync } from 'child_process';
2
-
3
- const toSeconds = (ms) => (ms / 1000).toFixed(1);
4
-
5
- function run(cmd) {
6
- const t1 = performance.now();
7
- execSync(`time (${cmd})`, { stdio: 'ignore' }); // inherit
8
- return performance.now() - t1;
9
- }
10
-
11
- function sleep(s) {
12
- const waitTill = performance.now() + s * 1000;
13
- while (waitTill > performance.now()) {
14
- // do nothing
15
- }
16
- }
17
-
18
- const mean = (arr) => arr.reduce((sum, num) => sum + num, 0) / arr.length;
19
-
20
- const geometricMean = (arr) =>
21
- Math.pow(
22
- arr.reduce((prod, num) => prod * num, 1),
23
- 1 / arr.length,
24
- );
25
-
26
- const harmonicMean = (arr) => arr.length / arr.reduce((sum, num) => sum + 1 / num, 0);
27
-
28
- const quadraticMean = (arr) => Math.sqrt(arr.reduce((sum, num) => sum + num ** 2, 0) / arr.length);
29
-
30
- function perf(cmd, n = 5) {
31
- const res = [];
32
- for (let i = 0; i < n; i++) {
33
- res.push(run(cmd));
34
- console.log('Iteration', i, toSeconds(res.at(-1)), cmd);
35
- sleep(1);
36
- }
37
- const avg = toSeconds(harmonicMean(res));
38
- console.log();
39
- console.log('Average', avg, cmd);
40
- console.log();
41
- return avg;
42
- }
43
-
44
- const cmds = [
45
- // 'yarn build:index && yarn build:bare && yarn build:exports',
46
- // 'yarn build:index && yarn build:vite && yarn build:exports',
47
- // 'yarn build:index && yarn build:rollup && yarn build:exports',
48
- // 'yarn build:index && yarn build:tsup && yarn build:exports',
49
- // 'yarn build:bare',
50
- // 'yarn build:vite',
51
- // 'yarn build:rollup',
52
- // 'yarn build:tsup',
53
- // 'yarn build:unbuild',
54
- 'yarn build:rslib',
55
- ];
56
-
57
- let results = {};
58
-
59
- for (const cmd of cmds) {
60
- results[cmd] = perf(cmd, 3);
61
- }
62
-
63
- console.log(results);