vivth 1.4.10 → 1.5.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 (379) hide show
  1. package/README.md +6060 -2037
  2. package/README.src.md +22 -14
  3. package/bun.lock +154 -194
  4. package/dev/auto/.src.ignore +25 -0
  5. package/dev/auto-doc.mjs +137 -0
  6. package/generated/types/generated/vivth/exports/all.d.mts +145 -0
  7. package/generated/types/generated/vivth/exports/neutral.d.mts +105 -0
  8. package/generated/types/generated/vivth/exports/node.d.mts +40 -0
  9. package/generated/types/src/bundler/CompileAS.d.mts +30 -0
  10. package/generated/types/src/bundler/CompileJS.d.mts +109 -0
  11. package/{types → generated/types}/src/bundler/CreateESPlugin.d.mts +1 -1
  12. package/{types → generated/types}/src/bundler/EsBundler.d.mts +9 -7
  13. package/generated/types/src/bundler/FSAnalyzer.d.mts +58 -0
  14. package/generated/types/src/bundler/FSasar.bundled.d.mts +28 -0
  15. package/generated/types/src/bundler/FSasar.d.mts +51 -0
  16. package/generated/types/src/bundler/FileSelfMapper.d.mts +137 -0
  17. package/generated/types/src/bundler/JSDirMapper.d.mts +128 -0
  18. package/generated/types/src/bundler/RunWatchThenCompileJSOnSafeExit.d.mts +63 -0
  19. package/generated/types/src/bundler/adds/BrowserExternals.d.mts +21 -0
  20. package/generated/types/src/bundler/adds/CreateTransform.d.mts +26 -0
  21. package/generated/types/src/bundler/adds/LastEditedUnix.d.mts +5 -0
  22. package/generated/types/src/bundler/adds/NodeModuleList.d.mts +15 -0
  23. package/generated/types/src/bundler/adds/PathFSBundles.bundled.d.mts +25 -0
  24. package/generated/types/src/bundler/adds/PathFSBundles.d.mts +48 -0
  25. package/generated/types/src/bundler/adds/PathFSDir.bundled.d.mts +30 -0
  26. package/generated/types/src/bundler/adds/PathFSDir.d.mts +48 -0
  27. package/generated/types/src/bundler/adds/PathFSFile.bundled.d.mts +25 -0
  28. package/generated/types/src/bundler/adds/PathFSFile.d.mts +40 -0
  29. package/{types → generated/types}/src/bundler/adds/ToBundledJSPlugin.d.mts +6 -6
  30. package/generated/types/src/bundler/adds/autoExternalize.d.mts +2 -0
  31. package/generated/types/src/bundler/adds/emptyBufferValue.d.mts +1 -0
  32. package/generated/types/src/bundler/adds/isModuleTheBundledVersion.d.mts +1 -0
  33. package/generated/types/src/bundler/adds/onEndEsBuildErrorLogger.d.mts +1 -0
  34. package/generated/types/src/bundler/adds/resolveJSDependencyPath.d.mts +1 -0
  35. package/generated/types/src/class/AwaitSignal.d.mts +48 -0
  36. package/generated/types/src/class/Console.d.mts +82 -0
  37. package/generated/types/src/class/DataLog.d.mts +25 -0
  38. package/generated/types/src/class/Derived.d.mts +74 -0
  39. package/generated/types/src/class/Effect.d.mts +213 -0
  40. package/{types → generated/types}/src/class/EnvSignal.d.mts +6 -2
  41. package/generated/types/src/class/EsWatcher.d.mts +36 -0
  42. package/{types → generated/types}/src/class/EventSignal.d.mts +39 -39
  43. package/generated/types/src/class/FSDirArchWatcher.d.mts +110 -0
  44. package/{types → generated/types}/src/class/FileSafe.d.mts +32 -16
  45. package/generated/types/src/class/ForEach.d.mts +57 -0
  46. package/generated/types/src/class/ForSignal.d.mts +63 -0
  47. package/generated/types/src/class/GetterSetter.d.mts +38 -0
  48. package/generated/types/src/class/JSONFileHandler.d.mts +50 -0
  49. package/{types → generated/types}/src/class/ListSignal.d.mts +49 -15
  50. package/{types → generated/types}/src/class/LitExp.d.mts +18 -18
  51. package/generated/types/src/class/ObjectSignal.d.mts +267 -0
  52. package/generated/types/src/class/Paths.d.mts +95 -0
  53. package/generated/types/src/class/Prettivy.d.mts +26 -0
  54. package/{types → generated/types}/src/class/QChannel.d.mts +24 -16
  55. package/generated/types/src/class/SafeExit.d.mts +69 -0
  56. package/{types → generated/types}/src/class/Setup.d.mts +29 -16
  57. package/{types → generated/types}/src/class/Signal.d.mts +29 -15
  58. package/generated/types/src/class/SignalCollection.d.mts +96 -0
  59. package/{types → generated/types}/src/class/WalkThrough.d.mts +4 -19
  60. package/generated/types/src/class/WorkerMainThread.bundled.d.mts +83 -0
  61. package/{types → generated/types}/src/class/WorkerMainThread.d.mts +33 -39
  62. package/{types → generated/types}/src/class/WorkerThread.d.mts +11 -5
  63. package/{types → generated/types}/src/common/Base64URL.d.mts +2 -1
  64. package/generated/types/src/common/Base64URLFromFile.d.mts +20 -0
  65. package/generated/types/src/common/BundledV.bundled.d.mts +3 -0
  66. package/generated/types/src/common/BundledV.d.mts +36 -0
  67. package/{types → generated/types}/src/common/CreateStringID.d.mts +5 -4
  68. package/generated/types/src/common/EnvMode.d.mts +79 -0
  69. package/generated/types/src/common/FactoryKey.d.mts +9 -0
  70. package/generated/types/src/common/Preferrence.d.mts +25 -0
  71. package/{types → generated/types}/src/common/Trace.d.mts +1 -1
  72. package/{types → generated/types}/src/common/TracePath.d.mts +1 -1
  73. package/generated/types/src/common/VivthUnBundledCodeBlock.d.mts +6 -0
  74. package/generated/types/src/doc/JSautoDOC.d.mts +172 -0
  75. package/generated/types/src/doc/cleanPreserveTypedef.d.mts +1 -0
  76. package/{types/src/doc/parsedFile.d.mts → generated/types/src/doc/parsedFileForDOC.d.mts} +56 -27
  77. package/generated/types/src/function/ClearRequireCache.d.mts +1 -0
  78. package/{types → generated/types}/src/function/CreateImmutable.d.mts +5 -4
  79. package/{types → generated/types}/src/function/EventCheck.d.mts +3 -1
  80. package/{types → generated/types}/src/function/EventObject.d.mts +2 -6
  81. package/generated/types/src/function/ForInAsync.d.mts +36 -0
  82. package/generated/types/src/function/ForInSync.d.mts +36 -0
  83. package/generated/types/src/function/ForOfAsync.d.mts +25 -0
  84. package/generated/types/src/function/ForOfSync.d.mts +36 -0
  85. package/generated/types/src/function/GetBufferFromRelativePath.d.mts +15 -0
  86. package/generated/types/src/function/GetFilesFromDir.d.mts +14 -0
  87. package/generated/types/src/function/GetMaxFilenameLength.d.mts +9 -0
  88. package/generated/types/src/function/GetModuleEsbuildPlatform.d.mts +13 -0
  89. package/{types → generated/types}/src/function/GetNamedImportAlias.d.mts +1 -1
  90. package/generated/types/src/function/GetRuntime.d.mts +2 -0
  91. package/generated/types/src/function/InstantiateAssemblyScript.d.mts +15 -0
  92. package/{types → generated/types}/src/function/IsAsync.d.mts +1 -1
  93. package/generated/types/src/function/IsInstanceOf.d.mts +25 -0
  94. package/generated/types/src/function/IsSameFile.d.mts +16 -0
  95. package/generated/types/src/function/IsStringLooksLikeAPath.d.mts +16 -0
  96. package/generated/types/src/function/IsTypeOf.d.mts +25 -0
  97. package/{types → generated/types}/src/function/LazyFactory.d.mts +9 -10
  98. package/generated/types/src/function/MonkeyPatch.d.mts +33 -0
  99. package/generated/types/src/function/NewAnimationTimeline.d.mts +24 -0
  100. package/generated/types/src/function/NewChainable.d.mts +35 -0
  101. package/generated/types/src/function/NewDynamicsExport.d.mts +49 -0
  102. package/generated/types/src/function/NewObjectWrapper.d.mts +10 -0
  103. package/generated/types/src/function/ObjectRegistrar.d.mts +17 -0
  104. package/generated/types/src/function/ParseSQLFile.d.mts +25 -0
  105. package/generated/types/src/function/PipeAsync.d.mts +19 -0
  106. package/generated/types/src/function/PipeSync.d.mts +17 -0
  107. package/generated/types/src/function/SafeImport.d.mts +21 -0
  108. package/generated/types/src/function/TemplateLiteral.d.mts +23 -0
  109. package/{types → generated/types}/src/function/Timeout.d.mts +1 -1
  110. package/{types → generated/types}/src/function/Tries.d.mts +4 -4
  111. package/{types → generated/types}/src/function/TryAsync.d.mts +2 -2
  112. package/{types → generated/types}/src/function/TryNew.d.mts +1 -1
  113. package/generated/types/src/function/TsToMjs.d.mts +27 -0
  114. package/generated/types/src/function/UniqueFSTempName.d.mts +9 -0
  115. package/generated/types/src/function/errorToMessage.d.mts +5 -0
  116. package/generated/types/src/neinth/VivthyNeinth.d.mts +202 -0
  117. package/generated/types/src/typehints/ArrayToKeys.d.mts +23 -0
  118. package/generated/types/src/typehints/AssemblyScriptExportsType.d.mts +4 -0
  119. package/generated/types/src/typehints/AssemblyScriptLoaderInstantiate.d.mts +4 -0
  120. package/generated/types/src/typehints/AutoDocASOptions.d.mts +15 -0
  121. package/generated/types/src/typehints/ChainableType.d.mts +3 -0
  122. package/generated/types/src/typehints/ComponentDecorator_Constructor.d.mts +3 -0
  123. package/generated/types/src/typehints/ConsoleAdditionalSettingType.d.mts +3 -0
  124. package/generated/types/src/typehints/Decorator.d.mts +11 -0
  125. package/generated/types/src/typehints/DecoratorMonkeyPatch.d.mts +15 -0
  126. package/{types/src/types → generated/types/src/typehints}/DevTestCB.d.mts +2 -2
  127. package/generated/types/src/typehints/EnvModeType.d.mts +4 -0
  128. package/generated/types/src/typehints/ListArg.d.mts +4 -0
  129. package/generated/types/src/typehints/MonkeyPatchedType.d.mts +1 -0
  130. package/generated/types/src/typehints/ParametersFollowingN.d.mts +13 -0
  131. package/generated/types/src/typehints/PrefixedKeysOf.d.mts +1 -0
  132. package/generated/types/src/typehints/Runtime.d.mts +4 -0
  133. package/generated/types/src/typehints/SafeImportReturnType.d.mts +1 -0
  134. package/generated/types/src/typehints/StylePropRefType.d.mts +2 -0
  135. package/generated/types/src/typehints/TemplateLiteralValueHandler.d.mts +10 -0
  136. package/generated/types/src/typehints/VLifecycleCallbacks.d.mts +6 -0
  137. package/generated/types/src/typehints/VivthCleanup.d.mts +12 -0
  138. package/generated/types/src/web/BrowserDirMapper.d.mts +70 -0
  139. package/generated/types/src/web/EnsureValidTag.d.mts +7 -0
  140. package/generated/types/src/web/ViteAddDynamics.d.mts +28 -0
  141. package/generated/types/src/web/ViteGetAllHTMLFile.d.mts +9 -0
  142. package/generated/types/src/web/WC_extendsA.d.mts +135 -0
  143. package/generated/types/src/web/WC_extendsB.d.mts +135 -0
  144. package/generated/types/src/web/bindings/WC_StyleProp_bind.d.mts +42 -0
  145. package/generated/types/src/web/bindings/WC_createElement_bind.d.mts +51 -0
  146. package/generated/types/src/web/bindings/WC_createNamedSlot.d.mts +26 -0
  147. package/generated/types/src/web/bindings/WC_litRender_bind.d.mts +20 -0
  148. package/generated/types/src/web/bindings/WC_litStyleMap.d.mts +7 -0
  149. package/generated/types/src/web/common/CSS.d.mts +23 -0
  150. package/generated/types/src/web/common/E.d.mts +41 -0
  151. package/generated/types/src/web/common/NewStyleSheetAsync.d.mts +15 -0
  152. package/generated/types/src/web/common/NewStyleSheetSync.d.mts +15 -0
  153. package/generated/types/src/web/common/WC_TagName_type.d.mts +15 -0
  154. package/generated/types/src/web/signals/IsInViewPortSignal.d.mts +52 -0
  155. package/generated/types/src/web/signals/ObserverSignal.d.mts +32 -0
  156. package/generated/types/src/web/signals/WC_litRef.d.mts +26 -0
  157. package/generated/types/src/web/signals/WC_loopedSiblingsRef.d.mts +44 -0
  158. package/generated/vivth/exports/all.mjs +233 -0
  159. package/generated/vivth/exports/neutral.mjs +193 -0
  160. package/generated/vivth/exports/node.mjs +46 -0
  161. package/package.json +50 -14
  162. package/src/bundler/CompileAS.mjs +36 -0
  163. package/src/bundler/CompileJS.mjs +98 -171
  164. package/src/bundler/CreateESPlugin.mjs +1 -1
  165. package/src/bundler/EsBundler.mjs +38 -13
  166. package/src/bundler/FSAnalyzer.mjs +253 -0
  167. package/src/bundler/FSasar.bundled.mjs +128 -0
  168. package/src/bundler/FSasar.mjs +96 -0
  169. package/src/bundler/FileSelfMapper.mjs +491 -0
  170. package/src/bundler/JSDirMapper.mjs +528 -0
  171. package/src/bundler/RunWatchThenCompileJSOnSafeExit.mjs +129 -0
  172. package/src/bundler/adds/BrowserExternals.mjs +37 -0
  173. package/src/bundler/adds/CreateTransform.mjs +36 -0
  174. package/src/bundler/adds/LastEditedUnix.mjs +12 -0
  175. package/src/bundler/adds/NodeModuleList.mjs +33 -0
  176. package/src/bundler/adds/PathFSBundles.bundled.mjs +41 -0
  177. package/src/bundler/adds/PathFSBundles.mjs +91 -0
  178. package/src/bundler/adds/PathFSDir.bundled.mjs +53 -0
  179. package/src/bundler/adds/PathFSDir.mjs +100 -0
  180. package/src/bundler/adds/PathFSFile.bundled.mjs +40 -0
  181. package/src/bundler/adds/PathFSFile.mjs +85 -0
  182. package/src/bundler/adds/ToBundledJSPlugin.mjs +116 -55
  183. package/src/bundler/adds/autoExternalize.mjs +81 -0
  184. package/src/bundler/adds/emptyBufferValue.mjs +5 -0
  185. package/src/bundler/adds/isModuleTheBundledVersion.mjs +10 -0
  186. package/src/bundler/adds/onEndEsBuildErrorLogger.mjs +34 -0
  187. package/src/bundler/adds/resolveJSDependencyPath.mjs +17 -0
  188. package/src/class/AwaitSignal.mjs +119 -0
  189. package/src/class/Console.mjs +36 -14
  190. package/src/class/DataLog.mjs +29 -0
  191. package/src/class/Derived.mjs +67 -55
  192. package/src/class/Effect.mjs +270 -84
  193. package/src/class/EnvSignal.mjs +11 -8
  194. package/src/class/EsWatcher.mjs +60 -0
  195. package/src/class/EventSignal.mjs +46 -58
  196. package/src/class/FSDirArchWatcher.mjs +246 -0
  197. package/src/class/FileSafe.mjs +72 -24
  198. package/src/class/ForEach.mjs +78 -0
  199. package/src/class/ForSignal.mjs +115 -0
  200. package/src/class/GetterSetter.mjs +40 -0
  201. package/src/class/JSONFileHandler.mjs +90 -0
  202. package/src/class/ListSignal.mjs +68 -26
  203. package/src/class/LitExp.mjs +59 -36
  204. package/src/class/ObjectSignal.mjs +225 -0
  205. package/src/class/Paths.mjs +56 -20
  206. package/src/class/Prettivy.mjs +51 -0
  207. package/src/class/QChannel.mjs +48 -26
  208. package/src/class/SafeExit.mjs +156 -99
  209. package/src/class/Setup.mjs +28 -16
  210. package/src/class/Signal.mjs +50 -27
  211. package/src/class/SignalCollection.mjs +130 -0
  212. package/src/class/WalkThrough.mjs +6 -23
  213. package/src/class/{WorkerMainThreadBundled.mjs → WorkerMainThread.bundled.mjs} +56 -77
  214. package/src/class/WorkerMainThread.mjs +98 -94
  215. package/src/class/WorkerThread.mjs +24 -17
  216. package/src/common/Base64URL.mjs +6 -3
  217. package/src/common/Base64URLFromFile.mjs +17 -4
  218. package/src/common/BundledV.bundled.mjs +7 -0
  219. package/src/common/BundledV.mjs +45 -0
  220. package/src/common/CreateStringID.mjs +8 -7
  221. package/src/common/EnvMode.mjs +172 -0
  222. package/src/common/FactoryKey.mjs +11 -0
  223. package/src/common/Preferrence.mjs +27 -0
  224. package/src/common/Trace.mjs +1 -1
  225. package/src/common/TracePath.mjs +53 -3
  226. package/src/common/VivthUnBundledCodeBlock.mjs +8 -0
  227. package/src/doc/JSautoDOC.mjs +673 -284
  228. package/src/doc/cleanPreserveTypedef.mjs +27 -0
  229. package/src/doc/correctBeforeParse.mjs +57 -48
  230. package/src/doc/{parsedFile.mjs → parsedFileForDOC.mjs} +133 -120
  231. package/src/function/ClearRequireCache.mjs +33 -0
  232. package/src/function/CreateImmutable.mjs +40 -37
  233. package/src/function/EventCheck.mjs +5 -2
  234. package/src/function/EventObject.mjs +2 -6
  235. package/src/function/ForInAsync.mjs +76 -0
  236. package/src/function/ForInSync.mjs +87 -0
  237. package/src/function/ForOfAsync.mjs +61 -0
  238. package/src/function/ForOfSync.mjs +70 -0
  239. package/src/function/GetBufferFromRelativePath.mjs +25 -0
  240. package/src/function/GetFilesFromDir.mjs +49 -0
  241. package/src/function/GetMaxFilenameLength.mjs +32 -0
  242. package/src/function/GetModuleEsbuildPlatform.mjs +118 -0
  243. package/src/function/GetNamedImportAlias.mjs +2 -2
  244. package/src/function/GetRuntime.mjs +10 -14
  245. package/src/function/InstantiateAssemblyScript.mjs +22 -0
  246. package/src/function/IsAsync.mjs +1 -1
  247. package/src/function/IsInstanceOf.mjs +29 -0
  248. package/src/function/IsSameFile.mjs +41 -0
  249. package/src/function/IsStringLooksLikeAPath.mjs +20 -0
  250. package/src/function/IsTypeOf.mjs +27 -0
  251. package/src/function/IsTypeOf.mts +31 -0
  252. package/src/function/LazyFactory.mjs +25 -23
  253. package/src/function/MonkeyPatch.mjs +38 -0
  254. package/src/function/NewAnimationTimeline.mjs +55 -0
  255. package/src/function/NewChainable.mjs +69 -0
  256. package/src/function/NewDynamicsExport.mjs +312 -0
  257. package/src/function/NewObjectWrapper.mjs +14 -0
  258. package/src/function/ObjectRegistrar.mjs +23 -0
  259. package/src/function/ParseSQLFile.mjs +129 -0
  260. package/src/function/PipeAsync.mjs +30 -0
  261. package/src/function/PipeSync.mjs +28 -0
  262. package/src/function/SafeImport.mjs +77 -0
  263. package/src/function/TemplateLiteral.mjs +42 -23
  264. package/src/function/Timeout.mjs +4 -4
  265. package/src/function/Tries.mjs +22 -16
  266. package/src/function/TryAsync.mjs +3 -2
  267. package/src/function/TryNew.mjs +1 -1
  268. package/src/function/TsToMjs.mjs +184 -21
  269. package/src/function/UniqueFSTempName.mjs +33 -0
  270. package/src/function/errorToMessage.mjs +21 -0
  271. package/src/function/resolveErrorArray.mjs +15 -1
  272. package/src/neinth/VivthyNeinth.mjs +487 -0
  273. package/src/typehints/ArrayToKeys.mjs +17 -0
  274. package/src/typehints/ArrayToKeys.mts +31 -0
  275. package/src/typehints/AssemblyScriptExportsType.mjs +7 -0
  276. package/src/typehints/AssemblyScriptLoaderInstantiate.mjs +7 -0
  277. package/src/typehints/AutoDocASOptions.mjs +14 -0
  278. package/src/typehints/ChainableType.mjs +11 -0
  279. package/src/typehints/ComponentDecorator_Constructor.mjs +10 -0
  280. package/src/typehints/ConsoleAdditionalSettingType.mjs +6 -0
  281. package/src/typehints/Decorator.mjs +9 -0
  282. package/src/typehints/Decorator.mts +31 -0
  283. package/src/typehints/DecoratorMonkeyPatch.mjs +10 -0
  284. package/src/typehints/DecoratorMonkeyPatch.mts +43 -0
  285. package/src/{types → typehints}/DevTestCB.mjs +2 -2
  286. package/src/typehints/EnvModeType.mjs +6 -0
  287. package/src/{types → typehints}/ListArg.mjs +1 -1
  288. package/src/{types → typehints}/LitExpResultType.mjs +1 -1
  289. package/src/typehints/MonkeyPatchedType.mjs +13 -0
  290. package/src/typehints/ParametersFollowingN.mjs +8 -0
  291. package/src/typehints/ParametersFollowingN.mts +17 -0
  292. package/src/typehints/PrefixedKeysOf.mjs +9 -0
  293. package/src/typehints/Runtime.mjs +6 -0
  294. package/src/typehints/SafeImportReturnType.mjs +6 -0
  295. package/src/typehints/StylePropRefType.mjs +12 -0
  296. package/src/typehints/TemplateLiteralValueHandler.mjs +14 -0
  297. package/src/typehints/VLifecycleCallbacks.mjs +10 -0
  298. package/src/typehints/VivthCleanup.mjs +14 -0
  299. package/src/web/BrowserDirMapper.mjs +255 -0
  300. package/src/web/EnsureValidTag.mjs +5 -0
  301. package/src/web/EnsureValidTag.mts +10 -0
  302. package/src/web/ViteAddDynamics.mjs +34 -0
  303. package/src/web/ViteGetAllHTMLFile.mjs +97 -0
  304. package/src/web/WC_extendsA.mjs +330 -0
  305. package/src/web/WC_extendsB.mjs +332 -0
  306. package/src/web/bindings/WC_StyleProp_bind.mjs +70 -0
  307. package/src/web/bindings/WC_createElement_bind.mjs +95 -0
  308. package/src/web/bindings/WC_createNamedSlot.mjs +29 -0
  309. package/src/web/bindings/WC_litRender_bind.mjs +26 -0
  310. package/src/web/bindings/WC_litStyleMap.mjs +14 -0
  311. package/src/web/common/CSS.mjs +35 -0
  312. package/src/web/common/E.mjs +126 -0
  313. package/src/web/common/NewStyleSheetAsync.mjs +21 -0
  314. package/src/web/common/NewStyleSheetSync.mjs +21 -0
  315. package/src/web/common/WC_TagName_type.mjs +10 -0
  316. package/src/web/common/WC_TagName_type.mts +36 -0
  317. package/src/web/signals/IsInViewPortSignal.mjs +140 -0
  318. package/src/web/signals/ObserverSignal.mjs +93 -0
  319. package/src/web/signals/WC_litRef.mjs +61 -0
  320. package/src/web/signals/WC_loopedSiblingsRef.mjs +100 -0
  321. package/tsconfig.json +44 -41
  322. package/index.mjs +0 -91
  323. package/src/bundler/FSInline.mjs +0 -67
  324. package/src/bundler/FSInlineAnalyzer.mjs +0 -228
  325. package/src/bundler/FSInlineBundled.mjs +0 -38
  326. package/src/bundler/adds/externals.mjs +0 -8
  327. package/src/class/ListDerived.mjs +0 -42
  328. package/src/common/Dev.mjs +0 -142
  329. package/src/common/DevBundled.mjs +0 -5
  330. package/src/common/lazie.mjs +0 -3
  331. package/src/types/IsListSignal.mjs +0 -6
  332. package/src/types/Runtime.mjs +0 -6
  333. package/src/types/VivthDevCodeBlockStringType.mjs +0 -6
  334. package/types/index.d.mts +0 -58
  335. package/types/src/bundler/CompileJS.d.mts +0 -119
  336. package/types/src/bundler/FSInline.d.mts +0 -50
  337. package/types/src/bundler/FSInlineAnalyzer.d.mts +0 -37
  338. package/types/src/bundler/FSInlineBundled.d.mts +0 -22
  339. package/types/src/bundler/adds/externals.d.mts +0 -1
  340. package/types/src/class/Console.d.mts +0 -71
  341. package/types/src/class/Derived.d.mts +0 -98
  342. package/types/src/class/Effect.d.mts +0 -216
  343. package/types/src/class/ListDerived.d.mts +0 -38
  344. package/types/src/class/Paths.d.mts +0 -69
  345. package/types/src/class/SafeExit.d.mts +0 -103
  346. package/types/src/class/WorkerMainThreadBundled.d.mts +0 -83
  347. package/types/src/common/Base64URLFromFile.d.mts +0 -16
  348. package/types/src/common/Dev.d.mts +0 -68
  349. package/types/src/common/DevBundled.d.mts +0 -3
  350. package/types/src/common/lazie.d.mts +0 -1
  351. package/types/src/doc/JSautoDOC.d.mts +0 -83
  352. package/types/src/function/GetRuntime.d.mts +0 -2
  353. package/types/src/function/TemplateLiteral.d.mts +0 -22
  354. package/types/src/function/TsToMjs.d.mts +0 -23
  355. package/types/src/types/IsListSignal.d.mts +0 -4
  356. package/types/src/types/ListArg.d.mts +0 -4
  357. package/types/src/types/Runtime.d.mts +0 -4
  358. package/types/src/types/VivthDevCodeBlockStringType.d.mts +0 -4
  359. /package/{types → generated/types}/src/bundler/adds/pluginVivthBundle.d.mts +0 -0
  360. /package/{types → generated/types}/src/class/WorkerResult.d.mts +0 -0
  361. /package/{types → generated/types}/src/common/EventNameSpace.d.mts +0 -0
  362. /package/{types → generated/types}/src/common/eventObjects.d.mts +0 -0
  363. /package/{types → generated/types}/src/common/keys.d.mts +0 -0
  364. /package/{types → generated/types}/src/doc/correctBeforeParse.d.mts +0 -0
  365. /package/{types → generated/types}/src/function/TrySync.d.mts +0 -0
  366. /package/{types → generated/types}/src/function/resolveErrorArray.d.mts +0 -0
  367. /package/{types/src/types → generated/types/src/typehints}/AnyButUndefined.d.mts +0 -0
  368. /package/{types/src/types → generated/types/src/typehints}/ExtnameType.d.mts +0 -0
  369. /package/{types/src/types → generated/types/src/typehints}/LitExpKeyType.d.mts +0 -0
  370. /package/{types/src/types → generated/types/src/typehints}/LitExpResultType.d.mts +0 -0
  371. /package/{types/src/types → generated/types/src/typehints}/MutationType.d.mts +0 -0
  372. /package/{types/src/types → generated/types/src/typehints}/QCBFIFOReturn.d.mts +0 -0
  373. /package/{types/src/types → generated/types/src/typehints}/QCBReturn.d.mts +0 -0
  374. /package/src/{types → typehints}/AnyButUndefined.mjs +0 -0
  375. /package/src/{types → typehints}/ExtnameType.mjs +0 -0
  376. /package/src/{types → typehints}/LitExpKeyType.mjs +0 -0
  377. /package/src/{types → typehints}/MutationType.mjs +0 -0
  378. /package/src/{types → typehints}/QCBFIFOReturn.mjs +0 -0
  379. /package/src/{types → typehints}/QCBReturn.mjs +0 -0
@@ -4,18 +4,19 @@ import { IsAsync } from './IsAsync.mjs';
4
4
 
5
5
  /**
6
6
  * @description
7
- * - function helper to create template literal with VALUEhandler to handle each values;
8
- * @template {(input:any)=>string|Promise<string>} VALUEHANDLER
9
- * @param {VALUEHANDLER} valueHandler
10
- * @param {(result:string)=>string} [postProcess]
7
+ * - function helper to create template literal with valueHandler to handle each values;
8
+ * @template {any} INPUTTYPE
9
+ * @template {string|Promise<string>} RET
10
+ * @param {import('../typehints/TemplateLiteralValueHandler.mjs').TemplateLiteralValueHandler<INPUTTYPE>} valueHandler
11
+ * @param {(result:string)=>(RET)} [postProcess]
11
12
  * @returns {(strings:TemplateStringsArray,
12
- * ...values:(Parameters<VALUEHANDLER>[0])[])=>
13
- * ReturnType<VALUEHANDLER>}
13
+ * ...values:(INPUTTYPE)[])=>
14
+ * RET}
14
15
  * @example
15
- * import { TemplateLiteral } form 'vivth';
16
+ * import { TemplateLiteral } from 'vivth/neutral';
16
17
  *
17
18
  * export const html = TemplateLiteral(
18
- * (val) => val,
19
+ * ({ ...datas }) => `my string`,
19
20
  * // optional
20
21
  * (res) => return window.body.innerHTML = res
21
22
  * );
@@ -26,36 +27,54 @@ import { IsAsync } from './IsAsync.mjs';
26
27
  export function TemplateLiteral(valueHandler, postProcess = undefined) {
27
28
  if (IsAsync(valueHandler)) {
28
29
  // @ts-expect-error
29
- return async (strings, ...values) => {
30
+ return async (templateStringsArray, ...valuesArrays) => {
30
31
  const result = [];
31
- for (let i = 0; i < strings.length; i++) {
32
- result.push(strings[i]);
33
- if (i < values.length) {
34
- const value = values[i];
35
- if (value === undefined) {
32
+ const inputLength = templateStringsArray.length;
33
+ for (let index = 0; index < templateStringsArray.length; index++) {
34
+ result.push(templateStringsArray[index]);
35
+ if (index < valuesArrays.length) {
36
+ const currentValue = valuesArrays[index];
37
+ if (currentValue === undefined) {
36
38
  continue;
37
39
  }
38
- result.push(await valueHandler(value));
40
+ result.push(
41
+ await valueHandler({
42
+ index,
43
+ currentValue,
44
+ valuesArrays,
45
+ templateStringsArray,
46
+ inputLength,
47
+ }),
48
+ );
39
49
  }
40
50
  }
41
51
  const resTrue = result.join('');
42
52
  if (!postProcess) {
43
53
  return resTrue;
44
54
  }
45
- return postProcess(resTrue);
55
+ return await postProcess(resTrue);
46
56
  };
47
57
  }
48
58
  // @ts-expect-error
49
- return (strings, ...values) => {
59
+ return (templateStringsArray, ...valuesArrays) => {
50
60
  const result = [];
51
- for (let i = 0; i < strings.length; i++) {
52
- result.push(strings[i]);
53
- if (i < values.length) {
54
- const value = values[i];
55
- if (value === undefined) {
61
+ const inputLength = templateStringsArray.length;
62
+ for (let index = 0; index < templateStringsArray.length; index++) {
63
+ result.push(templateStringsArray[index]);
64
+ if (index < valuesArrays.length) {
65
+ const currentValue = valuesArrays[index];
66
+ if (currentValue === undefined) {
56
67
  continue;
57
68
  }
58
- result.push(valueHandler(value));
69
+ result.push(
70
+ valueHandler({
71
+ index,
72
+ currentValue,
73
+ valuesArrays,
74
+ templateStringsArray,
75
+ inputLength,
76
+ }),
77
+ );
59
78
  }
60
79
  }
61
80
  const resTrue = result.join('');
@@ -7,7 +7,7 @@
7
7
  * - in miliseconds;
8
8
  * @returns {Promise<void>}
9
9
  * @example
10
- * import { Timeout } from 'vivth';
10
+ * import { Timeout } from 'vivth/neutral';
11
11
  *
12
12
  * const test = async () => {
13
13
  * // code0
@@ -17,7 +17,7 @@
17
17
  * test();
18
18
  */
19
19
  export function Timeout(timeMS) {
20
- return new Promise((resolve) => {
21
- setTimeout(resolve, timeMS);
22
- });
20
+ const { promise, resolve } = Promise.withResolvers();
21
+ setTimeout(resolve, timeMS);
22
+ return promise;
23
23
  }
@@ -1,6 +1,6 @@
1
1
  // @ts-check
2
2
 
3
- import { TryAsync } from './TryAsync.mjs';
3
+ import { ForInAsync } from './ForInAsync.mjs';
4
4
 
5
5
  /**
6
6
  * @description
@@ -18,12 +18,12 @@ import { TryAsync } from './TryAsync.mjs';
18
18
  * @param {RecordTryType} tryRecord
19
19
  * @returns {Promise<
20
20
  * [[keyof RecordTryType, RETURNTYPE], undefined]
21
- * | [[undefined, undefined], Error|undefined]
21
+ * | [[undefined, undefined], Set<Error>]
22
22
  * >}
23
23
  * @example
24
- * import { Tries } from 'vivth';
24
+ * import { Tries } from 'vivth/neutral';
25
25
  *
26
- * const [[key, result], error] = await Tries({
26
+ * const [[key, result], setOfError] = await Tries({
27
27
  * someRuntime: async ({ prevError }) => {
28
28
  * // asuming on this one doesn't naturally throw error,
29
29
  * // yet you need to continue to next key,
@@ -53,19 +53,25 @@ import { TryAsync } from './TryAsync.mjs';
53
53
  */
54
54
  export async function Tries(tryRecord) {
55
55
  /**
56
- * @type {Error|undefined}
56
+ * @type {undefined|keyof RecordTryType}
57
57
  */
58
- let prevError = undefined;
59
- for (const key in tryRecord) {
60
- const callback = tryRecord[key];
61
- const [result, error] = await TryAsync(async () => {
62
- return await callback({ prevError });
63
- });
64
- if (error) {
65
- prevError = error;
66
- continue;
67
- }
58
+ let key;
59
+ /**
60
+ * @type {undefined|RETURNTYPE}
61
+ */
62
+ let result;
63
+ const [, setOfError] = await ForInAsync(
64
+ tryRecord,
65
+ async (key_, callback, { prevError, breakEarly }) => {
66
+ const result_ = await callback({ prevError });
67
+ breakEarly(); // when not error, it will break after return;
68
+ key = key_;
69
+ result = result_;
70
+ },
71
+ );
72
+ if (key) {
73
+ // @ts-expect-error
68
74
  return [[key, result], undefined];
69
75
  }
70
- return [[undefined, undefined], prevError];
76
+ return [[undefined, undefined], setOfError];
71
77
  }
@@ -10,7 +10,7 @@ import { resolveErrorArray } from './resolveErrorArray.mjs';
10
10
  * @param {()=>Promise<RESULT>} asyncFunction_
11
11
  * @returns {Promise<[RESULT,undefined]|[undefined,Error]>}
12
12
  * @example
13
- * import { TryAsync } from 'vivth';
13
+ * import { TryAsync } from 'vivth/neutral';
14
14
  *
15
15
  * let [res, error] = await TryAsync(async () => {
16
16
  * return await fetch('./someAPI/Path');
@@ -18,11 +18,12 @@ import { resolveErrorArray } from './resolveErrorArray.mjs';
18
18
  *
19
19
  * [res, error] = await TryAsync(async () => {
20
20
  * if(!res.ok) {
21
- * throw new Error(404);
21
+ * throw 404;
22
22
  * }
23
23
  * return await res.json();
24
24
  * })
25
25
  */
26
+
26
27
  export async function TryAsync(asyncFunction_) {
27
28
  try {
28
29
  const result = await asyncFunction_();
@@ -12,7 +12,7 @@ import { resolveErrorArray } from './resolveErrorArray.mjs';
12
12
  * @returns {[InstanceType<CLASSREF>, undefined]|
13
13
  * [undefined, Error]}
14
14
  * @example
15
- * import { TryNew } from 'vivth';
15
+ * import { TryNew } from 'vivth/neutral';
16
16
  *
17
17
  * const [instance, error] = TryNew(ClassReference, ...classConstructorParameters)
18
18
  * if(!error) {
@@ -1,7 +1,7 @@
1
1
  // @ts-check
2
2
 
3
3
  import { readFile } from 'node:fs/promises';
4
- import { basename, dirname, extname, join } from 'node:path';
4
+ import { basename, dirname, extname, join, relative } from 'node:path';
5
5
 
6
6
  import { transform } from 'esbuild';
7
7
 
@@ -9,43 +9,206 @@ import { Console } from '../class/Console.mjs';
9
9
  import { Paths } from '../class/Paths.mjs';
10
10
  import { TryAsync } from './TryAsync.mjs';
11
11
  import { FileSafe } from '../class/FileSafe.mjs';
12
+ import { Preferrence } from '../common/Preferrence.mjs';
13
+ import { CompileAS } from '../bundler/CompileAS.mjs';
14
+ import { ForOfSync } from './ForOfSync.mjs';
15
+ import { PipeSync } from './PipeSync.mjs';
16
+
17
+ const suffixFor_asar = '_ASasar';
18
+ const suffixForUniversal = '_ASUniversal';
12
19
 
13
20
  /**
14
21
  * @description
15
22
  * - turn `.mts`||`.ts` file into `.mjs`, no bundling, just traspilation;
16
23
  * - on certain circumstance where `.mjs` result needed to be typed, you need to manually add `jsdoc`;
17
24
  * >- uses `"at"preserve` to register `jsdoc`;
18
- * @param {string} path_
19
- * - path from `Paths.root`;
25
+ * >- at [at]\[blank\]typedef, import itself.mts pointing to the same exported object to fully type it in mjs(which `vivth` used to generate exports);
26
+ * - auto compile and typehint `.as.ts` to `.wasm`;
27
+ * @param {string} path
28
+ * - `relative`(to `Paths.root`) OR `absolute`, both are accepted;
20
29
  * @param {Object} [options]
21
- * @param {string} [options.overrideDir]
30
+ * @param {string} [options.overrideOutputDir]
22
31
  * - default: write conversion to same directory;
23
32
  * - path are relative to project root;
24
33
  * @param {BufferEncoding} [options.encoding]
25
34
  * - default: `utf-8`;
35
+ * @param {import('../typehints/AutoDocASOptions.mjs').AutoDocASOptions} [options.assemblyScriptOptions]
26
36
  * @returns {Promise<void>}
27
37
  * @example
28
- * import { TsToMjs } from 'vivth';
38
+ * import { TsToMjs } from 'vivth/node';
29
39
  *
30
- * await TsToMjs('./myFile.mts', { encoding: 'utf-8', overrideDir: './other/dir' });
40
+ * await TsToMjs('./myFile.mts', { encoding: 'utf-8', overrideOutputDir: './other/dir' });
41
+ */
42
+ export async function TsToMjs(
43
+ path,
44
+ {
45
+ overrideOutputDir = undefined,
46
+ encoding = Preferrence.encoding,
47
+ assemblyScriptOptions = undefined,
48
+ } = {},
49
+ ) {
50
+ path = Paths.diskAbsolute(path);
51
+ if (path.endsWith('.as.ts')) {
52
+ if (basename(path).startsWith('-') || !assemblyScriptOptions) {
53
+ return;
54
+ }
55
+
56
+ const [, errorCompilingAssemblyScript] = await TryAsync(async () => {
57
+ let {
58
+ ASArgv = [],
59
+ ASAPIOptions = undefined,
60
+ generateFSasarImporter = false,
61
+ } = assemblyScriptOptions;
62
+ path = Paths.normalize(path);
63
+ const pathNoExt = path.replace(/.as.ts$/, '');
64
+ const wasmPath = `${pathNoExt}.wasm`;
65
+ const { error: errorCompileAS } = await CompileAS(
66
+ [path, '--outFile', wasmPath, '--bindings', 'esm', ...ASArgv],
67
+ ASAPIOptions,
68
+ );
69
+ if (errorCompileAS) {
70
+ throw { errorCompileAS };
71
+ }
72
+ if (generateFSasarImporter) {
73
+ const handler = [
74
+ /**
75
+ * @param {string} path
76
+ * @returns {string}
77
+ */
78
+ (path) => relative(dirname(path), path),
79
+ /**
80
+ * @param {string} path
81
+ * @returns {string}
82
+ */
83
+ (path) => {
84
+ if (!pathNoExt.includes('/vivth/src/')) {
85
+ return 'vivth/all';
86
+ }
87
+ if (path.startsWith('.')) {
88
+ return Paths.normalize(path);
89
+ }
90
+ return Paths.normalize(`./${path}`);
91
+ },
92
+ ];
93
+ const paths__ = [
94
+ '/src/function/InstantiateAssemblyScript.mjs',
95
+ '/src/bundler/adds/PathFSFile.mjs',
96
+ ];
97
+ const res = [];
98
+ for (let i = 0; i < paths__.length; i++) {
99
+ const path_ = paths__[i];
100
+ if (!path_) {
101
+ continue;
102
+ }
103
+ res.push(PipeSync(join(Paths.root, path_), ...handler));
104
+ }
105
+ const [importInstantiateAssemblyScriptFrom = '', importPathFSFrom = ''] = res;
106
+ const baseNameNoExt = basename(pathNoExt);
107
+ const mjsNoExt = `${baseNameNoExt}${suffixFor_asar}`;
108
+ const mjsPath = `${mjsNoExt}.mjs`;
109
+ const [, errorWrite] = await FileSafe.write(
110
+ `${pathNoExt}${suffixFor_asar}.mjs`,
111
+ `// @ts-check
112
+ import { InstantiateAssemblyScript } from '${Paths.normalize(importInstantiateAssemblyScriptFrom)}';
113
+ import { PathFSFile } from '${Paths.normalize(importPathFSFrom)}';
114
+
115
+ /**
116
+ * @-description-
117
+ * - \`typehinted\` WASM of AssemblyScript binding;
118
+ * >- can only be used for \`nodeJS\` compatible runtime;
119
+ * >- DO NOT USE ON BROWSER RUNTIME;
120
+ * - used for integration with \`vivth.FSasar\`;
121
+ * >- able to be bundled inline;
122
+ * @param {Parameters<typeof InstantiateAssemblyScript<import('./fib.js')>>[1]} [import_]
123
+ * @returns {ReturnType<typeof InstantiateAssemblyScript<import('./fib.js')>>}
31
124
  */
32
- export async function TsToMjs(path_, { overrideDir = undefined, encoding = 'utf-8' } = {}) {
33
- if (Paths.root === undefined) {
125
+ export const ${mjsNoExt} = ( import_ = {} ) => InstantiateAssemblyScript(PathFSFile.vivthFile('./${baseNameNoExt}.wasm'), import_);
126
+ `.replace('-description-', 'description'),
127
+ { encoding: Preferrence.encoding },
128
+ );
129
+ if (errorWrite) {
130
+ Console.error(
131
+ {
132
+ [TsToMjs.name]: `❌error generate FSInline Importer '${mjsPath}'`,
133
+ errorWrite,
134
+ },
135
+ {
136
+ now: true,
137
+ },
138
+ );
139
+ return;
140
+ }
141
+ Console.info(
142
+ {
143
+ [TsToMjs.name]: `✅successfully generate FSInline Importer '${mjsPath}'`,
144
+ },
145
+ {
146
+ now: true,
147
+ },
148
+ );
149
+ }
150
+ Console.info(
151
+ {
152
+ [TsToMjs.name]: `✅successfully compiles '${path}'`,
153
+ },
154
+ {
155
+ now: true,
156
+ },
157
+ );
158
+ });
159
+ if (errorCompilingAssemblyScript) {
160
+ Console.error({ errorCompilingAssemblyScript }, { now: true });
161
+ }
34
162
  return;
35
163
  }
36
- const rootPath = Paths.normalize(Paths.root);
37
- if (Paths.normalize(path_).startsWith(rootPath) === false) {
38
- path_ = Paths.normalize(join(rootPath, path_));
164
+ const ext = extname(path);
165
+ if (
166
+ /** */
167
+ ext === '.js' &&
168
+ (await FileSafe.exist(path.replace(/.js$/, '.as.ts')))
169
+ ) {
170
+ const [content, errorReadFile] = await TryAsync(async () => {
171
+ return (await readFile(path)).toString(Preferrence.encoding);
172
+ });
173
+ if (errorReadFile) {
174
+ Console.error({ errorReadFile }, { now: true });
175
+ return;
176
+ }
177
+ const regex = /export\s+const\s+({[\s\S]*?})\s*=\s*await/g;
178
+ const matches = content.matchAll(regex).toArray();
179
+ await Promise.all(
180
+ ForOfSync(matches, async (match) => {
181
+ const match1 = match[1];
182
+ const trueContent = `// @ts-check
183
+
184
+ import ${match1} from './${basename(path)}';
185
+
186
+ /**
187
+ * @-description-
188
+ * - \`typehinted\` WASM of AssemblyScript binding, can be used for:
189
+ * >- \`browser\` runtime;
190
+ * >- \`nodeJS\` compatible runtime;
191
+ */
192
+ export const ${basename(path.replace(/.js$/, suffixForUniversal))} = ${match1};
193
+ `.replace('-description-', 'description');
194
+ await FileSafe.write(path.replace(/.js$/, `${suffixForUniversal}.mjs`), trueContent, {
195
+ encoding: Preferrence.encoding,
196
+ });
197
+ })[0],
198
+ );
199
+ return;
39
200
  }
40
- const ext = extname(path_);
41
- if (ext !== '.ts' && ext !== '.mts') {
201
+ if (
202
+ (ext === '.ts' && (await FileSafe.exist(path.replace(/.ts$/, '.as.ts')))) ||
203
+ (ext !== '.ts' && ext !== '.mts')
204
+ ) {
42
205
  return;
43
206
  }
44
- const [content, error] = await TryAsync(async () => {
45
- return await readFile(path_, { encoding });
207
+ const [content, errorReadFile] = await TryAsync(async () => {
208
+ return await readFile(path, { encoding });
46
209
  });
47
- if (error) {
48
- Console.error(error);
210
+ if (errorReadFile) {
211
+ Console.error({ errorReadFile }, { now: true });
49
212
  return;
50
213
  }
51
214
  const [result, transformError] = await TryAsync(async () => {
@@ -58,14 +221,14 @@ export async function TsToMjs(path_, { overrideDir = undefined, encoding = 'utf-
58
221
  });
59
222
  });
60
223
  if (transformError || result === undefined) {
61
- Console.error(transformError);
224
+ Console.error({ transformError }, { now: true });
62
225
  return;
63
226
  }
64
- const outputDir = overrideDir ? join(rootPath, overrideDir) : dirname(path_);
65
- const outputPath = join(outputDir, basename(path_).replace(ext, '.mjs'));
227
+ const outputDir = !!overrideOutputDir ? Paths.diskAbsolute(overrideOutputDir) : dirname(path);
228
+ const outputPath = join(outputDir, basename(path).replace(new RegExp(`${ext}$`), '.mjs'));
66
229
  const [, writeError] = await FileSafe.write(outputPath, result.code, { encoding });
67
230
  if (writeError === undefined) {
68
231
  return;
69
232
  }
70
- Console.error(writeError);
233
+ Console.error({ writeError }, { now: true });
71
234
  }
@@ -0,0 +1,33 @@
1
+ // @ts-check
2
+
3
+ import { join } from 'node:path';
4
+ import { tmpdir } from 'node:os';
5
+ import { createHash } from 'node:crypto';
6
+
7
+ import { Paths } from '../class/Paths.mjs';
8
+ import { GetMaxFilenameLength } from './GetMaxFilenameLength.mjs';
9
+
10
+ /**
11
+ * @description
12
+ * - generate unique full path name to temp directory + 'vivth/${uniqueName}.tmp';
13
+ * - filename length already calibrated for each os;
14
+ * @param {string} path
15
+ * @param {string} [fileExtention]
16
+ * @returns {string}
17
+ */
18
+ export function UniqueFSTempName(path, fileExtention = '.tmp') {
19
+ if (!fileExtention.startsWith('.')) {
20
+ fileExtention = `.${fileExtention}`;
21
+ }
22
+ if (fileExtention !== '.tmp') {
23
+ fileExtention = `.tmp${fileExtention}`;
24
+ }
25
+ const hash = createHash('sha256').update(Paths.normalize(path)).digest('hex');
26
+ let tempPath = Paths.normalize(join(tmpdir(), 'vivth', `${hash}`));
27
+ const maxlen = GetMaxFilenameLength() - fileExtention.length;
28
+ if (maxlen < tempPath.length) {
29
+ tempPath = tempPath.slice(0, maxlen);
30
+ }
31
+ tempPath = `${tempPath}${fileExtention}`;
32
+ return tempPath;
33
+ }
@@ -0,0 +1,21 @@
1
+ // @ts-check
2
+
3
+ /**
4
+ * @param {Error} err
5
+ * @returns {import('esbuild').Message}
6
+ */
7
+ export function errorToMessage(err) {
8
+ return {
9
+ id: '', // Add this line to satisfy the interface requirement
10
+ text: err.message,
11
+ location: null,
12
+ notes: [
13
+ {
14
+ text: err.stack || '',
15
+ location: null,
16
+ },
17
+ ],
18
+ pluginName: 'my-plugin',
19
+ detail: err,
20
+ };
21
+ }
@@ -5,5 +5,19 @@
5
5
  * @returns {[undefined, Error]}
6
6
  */
7
7
  export const resolveErrorArray = (unknown) => {
8
- return [undefined, unknown instanceof Error ? unknown : new Error(String(unknown))];
8
+ if (unknown instanceof Error) {
9
+ return [undefined, unknown];
10
+ }
11
+ let message;
12
+ try {
13
+ message = JSON.stringify(unknown);
14
+ } catch {
15
+ try {
16
+ message = String(unknown);
17
+ } catch {
18
+ message = '[Unstringifiable value]';
19
+ }
20
+ }
21
+ const err = new Error(message);
22
+ return [undefined, err];
9
23
  };