@mionjs/run-types 0.8.6 → 0.8.8

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 (362) hide show
  1. package/.dist/cjs/index.d.ts +1 -0
  2. package/.dist/cjs/index.d.ts.map +1 -0
  3. package/.dist/cjs/src/constants.d.ts +1 -0
  4. package/.dist/cjs/src/constants.d.ts.map +1 -0
  5. package/.dist/cjs/src/constants.functions.d.ts +1 -0
  6. package/.dist/cjs/src/constants.functions.d.ts.map +1 -0
  7. package/.dist/cjs/src/constants.kind.d.ts +1 -0
  8. package/.dist/cjs/src/constants.kind.d.ts.map +1 -0
  9. package/.dist/cjs/src/createRunType.d.ts +1 -0
  10. package/.dist/cjs/src/createRunType.d.ts.map +1 -0
  11. package/.dist/cjs/src/createRunTypeFunctions.d.ts +1 -0
  12. package/.dist/cjs/src/createRunTypeFunctions.d.ts.map +1 -0
  13. package/.dist/cjs/src/formats.runtype.d.ts +1 -0
  14. package/.dist/cjs/src/formats.runtype.d.ts.map +1 -0
  15. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +1 -0
  16. package/.dist/cjs/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +1 -0
  17. package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts +1 -0
  18. package/.dist/cjs/src/jitCompilers/binary/fromBinary.d.ts.map +1 -0
  19. package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts +1 -0
  20. package/.dist/cjs/src/jitCompilers/binary/toBinary.d.ts.map +1 -0
  21. package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts +1 -0
  22. package/.dist/cjs/src/jitCompilers/equalsHelpers.d.ts.map +1 -0
  23. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +1 -0
  24. package/.dist/cjs/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +1 -0
  25. package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts +1 -0
  26. package/.dist/cjs/src/jitCompilers/json/stringifyJson.d.ts.map +1 -0
  27. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +1 -0
  28. package/.dist/cjs/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +1 -0
  29. package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts +1 -0
  30. package/.dist/cjs/src/jitCompilers/json/toJsCode.d.ts.map +1 -0
  31. package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts +1 -0
  32. package/.dist/cjs/src/lib/baseRunTypeFormat.d.ts.map +1 -0
  33. package/.dist/cjs/src/lib/baseRunTypes.d.ts +1 -0
  34. package/.dist/cjs/src/lib/baseRunTypes.d.ts.map +1 -0
  35. package/.dist/cjs/src/lib/createJitFunction.d.ts +1 -0
  36. package/.dist/cjs/src/lib/createJitFunction.d.ts.map +1 -0
  37. package/.dist/cjs/src/lib/dkProxy.d.ts +1 -0
  38. package/.dist/cjs/src/lib/dkProxy.d.ts.map +1 -0
  39. package/.dist/cjs/src/lib/formats.d.ts +1 -0
  40. package/.dist/cjs/src/lib/formats.d.ts.map +1 -0
  41. package/.dist/cjs/src/lib/guards.d.ts +1 -0
  42. package/.dist/cjs/src/lib/guards.d.ts.map +1 -0
  43. package/.dist/cjs/src/lib/jitFnCompiler.d.ts +1 -0
  44. package/.dist/cjs/src/lib/jitFnCompiler.d.ts.map +1 -0
  45. package/.dist/cjs/src/lib/jitFnsRegistry.d.ts +1 -0
  46. package/.dist/cjs/src/lib/jitFnsRegistry.d.ts.map +1 -0
  47. package/.dist/cjs/src/lib/typeId.d.ts +1 -0
  48. package/.dist/cjs/src/lib/typeId.d.ts.map +1 -0
  49. package/.dist/cjs/src/lib/utils.d.ts +1 -0
  50. package/.dist/cjs/src/lib/utils.d.ts.map +1 -0
  51. package/.dist/cjs/src/mocking/constants.mock.d.ts +1 -0
  52. package/.dist/cjs/src/mocking/constants.mock.d.ts.map +1 -0
  53. package/.dist/cjs/src/mocking/mockRegistry.d.ts +1 -0
  54. package/.dist/cjs/src/mocking/mockRegistry.d.ts.map +1 -0
  55. package/.dist/cjs/src/mocking/mockType.d.ts +1 -0
  56. package/.dist/cjs/src/mocking/mockType.d.ts.map +1 -0
  57. package/.dist/cjs/src/mocking/mockUtils.d.ts +1 -0
  58. package/.dist/cjs/src/mocking/mockUtils.d.ts.map +1 -0
  59. package/.dist/cjs/src/nodes/atomic/any.d.ts +1 -0
  60. package/.dist/cjs/src/nodes/atomic/any.d.ts.map +1 -0
  61. package/.dist/cjs/src/nodes/atomic/bigInt.d.ts +1 -0
  62. package/.dist/cjs/src/nodes/atomic/bigInt.d.ts.map +1 -0
  63. package/.dist/cjs/src/nodes/atomic/boolean.d.ts +1 -0
  64. package/.dist/cjs/src/nodes/atomic/boolean.d.ts.map +1 -0
  65. package/.dist/cjs/src/nodes/atomic/date.d.ts +1 -0
  66. package/.dist/cjs/src/nodes/atomic/date.d.ts.map +1 -0
  67. package/.dist/cjs/src/nodes/atomic/enum.d.ts +1 -0
  68. package/.dist/cjs/src/nodes/atomic/enum.d.ts.map +1 -0
  69. package/.dist/cjs/src/nodes/atomic/enumMember.d.ts +1 -0
  70. package/.dist/cjs/src/nodes/atomic/enumMember.d.ts.map +1 -0
  71. package/.dist/cjs/src/nodes/atomic/literal.d.ts +1 -0
  72. package/.dist/cjs/src/nodes/atomic/literal.d.ts.map +1 -0
  73. package/.dist/cjs/src/nodes/atomic/never.d.ts +1 -0
  74. package/.dist/cjs/src/nodes/atomic/never.d.ts.map +1 -0
  75. package/.dist/cjs/src/nodes/atomic/null.d.ts +1 -0
  76. package/.dist/cjs/src/nodes/atomic/null.d.ts.map +1 -0
  77. package/.dist/cjs/src/nodes/atomic/number.d.ts +1 -0
  78. package/.dist/cjs/src/nodes/atomic/number.d.ts.map +1 -0
  79. package/.dist/cjs/src/nodes/atomic/object.d.ts +1 -0
  80. package/.dist/cjs/src/nodes/atomic/object.d.ts.map +1 -0
  81. package/.dist/cjs/src/nodes/atomic/regexp.d.ts +1 -0
  82. package/.dist/cjs/src/nodes/atomic/regexp.d.ts.map +1 -0
  83. package/.dist/cjs/src/nodes/atomic/string.d.ts +1 -0
  84. package/.dist/cjs/src/nodes/atomic/string.d.ts.map +1 -0
  85. package/.dist/cjs/src/nodes/atomic/symbol.d.ts +1 -0
  86. package/.dist/cjs/src/nodes/atomic/symbol.d.ts.map +1 -0
  87. package/.dist/cjs/src/nodes/atomic/undefined.d.ts +1 -0
  88. package/.dist/cjs/src/nodes/atomic/undefined.d.ts.map +1 -0
  89. package/.dist/cjs/src/nodes/atomic/unknown.d.ts +1 -0
  90. package/.dist/cjs/src/nodes/atomic/unknown.d.ts.map +1 -0
  91. package/.dist/cjs/src/nodes/atomic/void.d.ts +1 -0
  92. package/.dist/cjs/src/nodes/atomic/void.d.ts.map +1 -0
  93. package/.dist/cjs/src/nodes/collection/class.d.ts +1 -0
  94. package/.dist/cjs/src/nodes/collection/class.d.ts.map +1 -0
  95. package/.dist/cjs/src/nodes/collection/functionParams.d.ts +1 -0
  96. package/.dist/cjs/src/nodes/collection/functionParams.d.ts.map +1 -0
  97. package/.dist/cjs/src/nodes/collection/interface.d.ts +1 -0
  98. package/.dist/cjs/src/nodes/collection/interface.d.ts.map +1 -0
  99. package/.dist/cjs/src/nodes/collection/intersection.d.ts +1 -0
  100. package/.dist/cjs/src/nodes/collection/intersection.d.ts.map +1 -0
  101. package/.dist/cjs/src/nodes/collection/tuple.d.ts +1 -0
  102. package/.dist/cjs/src/nodes/collection/tuple.d.ts.map +1 -0
  103. package/.dist/cjs/src/nodes/collection/union.d.ts +1 -0
  104. package/.dist/cjs/src/nodes/collection/union.d.ts.map +1 -0
  105. package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts +1 -0
  106. package/.dist/cjs/src/nodes/collection/unionDiscriminator.d.ts.map +1 -0
  107. package/.dist/cjs/src/nodes/function/function.d.ts +1 -0
  108. package/.dist/cjs/src/nodes/function/function.d.ts.map +1 -0
  109. package/.dist/cjs/src/nodes/member/array.d.ts +1 -0
  110. package/.dist/cjs/src/nodes/member/array.d.ts.map +1 -0
  111. package/.dist/cjs/src/nodes/member/callSignature.d.ts +1 -0
  112. package/.dist/cjs/src/nodes/member/callSignature.d.ts.map +1 -0
  113. package/.dist/cjs/src/nodes/member/genericMember.d.ts +1 -0
  114. package/.dist/cjs/src/nodes/member/genericMember.d.ts.map +1 -0
  115. package/.dist/cjs/src/nodes/member/indexProperty.d.ts +1 -0
  116. package/.dist/cjs/src/nodes/member/indexProperty.d.ts.map +1 -0
  117. package/.dist/cjs/src/nodes/member/method.d.ts +1 -0
  118. package/.dist/cjs/src/nodes/member/method.d.ts.map +1 -0
  119. package/.dist/cjs/src/nodes/member/methodSignature.d.ts +1 -0
  120. package/.dist/cjs/src/nodes/member/methodSignature.d.ts.map +1 -0
  121. package/.dist/cjs/src/nodes/member/param.d.ts +1 -0
  122. package/.dist/cjs/src/nodes/member/param.d.ts.map +1 -0
  123. package/.dist/cjs/src/nodes/member/property.d.ts +1 -0
  124. package/.dist/cjs/src/nodes/member/property.d.ts.map +1 -0
  125. package/.dist/cjs/src/nodes/member/restParams.d.ts +1 -0
  126. package/.dist/cjs/src/nodes/member/restParams.d.ts.map +1 -0
  127. package/.dist/cjs/src/nodes/member/tupleMember.d.ts +1 -0
  128. package/.dist/cjs/src/nodes/member/tupleMember.d.ts.map +1 -0
  129. package/.dist/cjs/src/nodes/native/Iterable.d.ts +1 -0
  130. package/.dist/cjs/src/nodes/native/Iterable.d.ts.map +1 -0
  131. package/.dist/cjs/src/nodes/native/map.d.ts +1 -0
  132. package/.dist/cjs/src/nodes/native/map.d.ts.map +1 -0
  133. package/.dist/cjs/src/nodes/native/nonSerializable.d.ts +1 -0
  134. package/.dist/cjs/src/nodes/native/nonSerializable.d.ts.map +1 -0
  135. package/.dist/cjs/src/nodes/native/promise.d.ts +1 -0
  136. package/.dist/cjs/src/nodes/native/promise.d.ts.map +1 -0
  137. package/.dist/cjs/src/nodes/native/set.d.ts +1 -0
  138. package/.dist/cjs/src/nodes/native/set.d.ts.map +1 -0
  139. package/.dist/cjs/src/run-types-pure-fns.d.ts +1 -0
  140. package/.dist/cjs/src/run-types-pure-fns.d.ts.map +1 -0
  141. package/.dist/cjs/src/types.d.ts +1 -0
  142. package/.dist/cjs/src/types.d.ts.map +1 -0
  143. package/.dist/esm/index.d.ts +1 -0
  144. package/.dist/esm/index.d.ts.map +1 -0
  145. package/.dist/esm/src/constants.d.ts +1 -0
  146. package/.dist/esm/src/constants.d.ts.map +1 -0
  147. package/.dist/esm/src/constants.functions.d.ts +1 -0
  148. package/.dist/esm/src/constants.functions.d.ts.map +1 -0
  149. package/.dist/esm/src/constants.kind.d.ts +1 -0
  150. package/.dist/esm/src/constants.kind.d.ts.map +1 -0
  151. package/.dist/esm/src/createRunType.d.ts +1 -0
  152. package/.dist/esm/src/createRunType.d.ts.map +1 -0
  153. package/.dist/esm/src/createRunTypeFunctions.d.ts +1 -0
  154. package/.dist/esm/src/createRunTypeFunctions.d.ts.map +1 -0
  155. package/.dist/esm/src/formats.runtype.d.ts +1 -0
  156. package/.dist/esm/src/formats.runtype.d.ts.map +1 -0
  157. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts +1 -0
  158. package/.dist/esm/src/jitCompilers/binary/binarySpec/binaryHelpers.d.ts.map +1 -0
  159. package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts +1 -0
  160. package/.dist/esm/src/jitCompilers/binary/fromBinary.d.ts.map +1 -0
  161. package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts +1 -0
  162. package/.dist/esm/src/jitCompilers/binary/toBinary.d.ts.map +1 -0
  163. package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts +1 -0
  164. package/.dist/esm/src/jitCompilers/equalsHelpers.d.ts.map +1 -0
  165. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts +1 -0
  166. package/.dist/esm/src/jitCompilers/json/jsonSpec/jsonHelpers.d.ts.map +1 -0
  167. package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts +1 -0
  168. package/.dist/esm/src/jitCompilers/json/stringifyJson.d.ts.map +1 -0
  169. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts +1 -0
  170. package/.dist/esm/src/jitCompilers/json/stringifySpec/stringifyHelpers.d.ts.map +1 -0
  171. package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts +1 -0
  172. package/.dist/esm/src/jitCompilers/json/toJsCode.d.ts.map +1 -0
  173. package/.dist/esm/src/lib/baseRunTypeFormat.d.ts +1 -0
  174. package/.dist/esm/src/lib/baseRunTypeFormat.d.ts.map +1 -0
  175. package/.dist/esm/src/lib/baseRunTypes.d.ts +1 -0
  176. package/.dist/esm/src/lib/baseRunTypes.d.ts.map +1 -0
  177. package/.dist/esm/src/lib/createJitFunction.d.ts +1 -0
  178. package/.dist/esm/src/lib/createJitFunction.d.ts.map +1 -0
  179. package/.dist/esm/src/lib/dkProxy.d.ts +1 -0
  180. package/.dist/esm/src/lib/dkProxy.d.ts.map +1 -0
  181. package/.dist/esm/src/lib/formats.d.ts +1 -0
  182. package/.dist/esm/src/lib/formats.d.ts.map +1 -0
  183. package/.dist/esm/src/lib/guards.d.ts +1 -0
  184. package/.dist/esm/src/lib/guards.d.ts.map +1 -0
  185. package/.dist/esm/src/lib/jitFnCompiler.d.ts +1 -0
  186. package/.dist/esm/src/lib/jitFnCompiler.d.ts.map +1 -0
  187. package/.dist/esm/src/lib/jitFnsRegistry.d.ts +1 -0
  188. package/.dist/esm/src/lib/jitFnsRegistry.d.ts.map +1 -0
  189. package/.dist/esm/src/lib/typeId.d.ts +1 -0
  190. package/.dist/esm/src/lib/typeId.d.ts.map +1 -0
  191. package/.dist/esm/src/lib/utils.d.ts +1 -0
  192. package/.dist/esm/src/lib/utils.d.ts.map +1 -0
  193. package/.dist/esm/src/mocking/constants.mock.d.ts +1 -0
  194. package/.dist/esm/src/mocking/constants.mock.d.ts.map +1 -0
  195. package/.dist/esm/src/mocking/mockRegistry.d.ts +1 -0
  196. package/.dist/esm/src/mocking/mockRegistry.d.ts.map +1 -0
  197. package/.dist/esm/src/mocking/mockType.d.ts +1 -0
  198. package/.dist/esm/src/mocking/mockType.d.ts.map +1 -0
  199. package/.dist/esm/src/mocking/mockUtils.d.ts +1 -0
  200. package/.dist/esm/src/mocking/mockUtils.d.ts.map +1 -0
  201. package/.dist/esm/src/nodes/atomic/any.d.ts +1 -0
  202. package/.dist/esm/src/nodes/atomic/any.d.ts.map +1 -0
  203. package/.dist/esm/src/nodes/atomic/bigInt.d.ts +1 -0
  204. package/.dist/esm/src/nodes/atomic/bigInt.d.ts.map +1 -0
  205. package/.dist/esm/src/nodes/atomic/boolean.d.ts +1 -0
  206. package/.dist/esm/src/nodes/atomic/boolean.d.ts.map +1 -0
  207. package/.dist/esm/src/nodes/atomic/date.d.ts +1 -0
  208. package/.dist/esm/src/nodes/atomic/date.d.ts.map +1 -0
  209. package/.dist/esm/src/nodes/atomic/enum.d.ts +1 -0
  210. package/.dist/esm/src/nodes/atomic/enum.d.ts.map +1 -0
  211. package/.dist/esm/src/nodes/atomic/enumMember.d.ts +1 -0
  212. package/.dist/esm/src/nodes/atomic/enumMember.d.ts.map +1 -0
  213. package/.dist/esm/src/nodes/atomic/literal.d.ts +1 -0
  214. package/.dist/esm/src/nodes/atomic/literal.d.ts.map +1 -0
  215. package/.dist/esm/src/nodes/atomic/never.d.ts +1 -0
  216. package/.dist/esm/src/nodes/atomic/never.d.ts.map +1 -0
  217. package/.dist/esm/src/nodes/atomic/null.d.ts +1 -0
  218. package/.dist/esm/src/nodes/atomic/null.d.ts.map +1 -0
  219. package/.dist/esm/src/nodes/atomic/number.d.ts +1 -0
  220. package/.dist/esm/src/nodes/atomic/number.d.ts.map +1 -0
  221. package/.dist/esm/src/nodes/atomic/object.d.ts +1 -0
  222. package/.dist/esm/src/nodes/atomic/object.d.ts.map +1 -0
  223. package/.dist/esm/src/nodes/atomic/regexp.d.ts +1 -0
  224. package/.dist/esm/src/nodes/atomic/regexp.d.ts.map +1 -0
  225. package/.dist/esm/src/nodes/atomic/string.d.ts +1 -0
  226. package/.dist/esm/src/nodes/atomic/string.d.ts.map +1 -0
  227. package/.dist/esm/src/nodes/atomic/symbol.d.ts +1 -0
  228. package/.dist/esm/src/nodes/atomic/symbol.d.ts.map +1 -0
  229. package/.dist/esm/src/nodes/atomic/undefined.d.ts +1 -0
  230. package/.dist/esm/src/nodes/atomic/undefined.d.ts.map +1 -0
  231. package/.dist/esm/src/nodes/atomic/unknown.d.ts +1 -0
  232. package/.dist/esm/src/nodes/atomic/unknown.d.ts.map +1 -0
  233. package/.dist/esm/src/nodes/atomic/void.d.ts +1 -0
  234. package/.dist/esm/src/nodes/atomic/void.d.ts.map +1 -0
  235. package/.dist/esm/src/nodes/collection/class.d.ts +1 -0
  236. package/.dist/esm/src/nodes/collection/class.d.ts.map +1 -0
  237. package/.dist/esm/src/nodes/collection/functionParams.d.ts +1 -0
  238. package/.dist/esm/src/nodes/collection/functionParams.d.ts.map +1 -0
  239. package/.dist/esm/src/nodes/collection/interface.d.ts +1 -0
  240. package/.dist/esm/src/nodes/collection/interface.d.ts.map +1 -0
  241. package/.dist/esm/src/nodes/collection/intersection.d.ts +1 -0
  242. package/.dist/esm/src/nodes/collection/intersection.d.ts.map +1 -0
  243. package/.dist/esm/src/nodes/collection/tuple.d.ts +1 -0
  244. package/.dist/esm/src/nodes/collection/tuple.d.ts.map +1 -0
  245. package/.dist/esm/src/nodes/collection/union.d.ts +1 -0
  246. package/.dist/esm/src/nodes/collection/union.d.ts.map +1 -0
  247. package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts +1 -0
  248. package/.dist/esm/src/nodes/collection/unionDiscriminator.d.ts.map +1 -0
  249. package/.dist/esm/src/nodes/function/function.d.ts +1 -0
  250. package/.dist/esm/src/nodes/function/function.d.ts.map +1 -0
  251. package/.dist/esm/src/nodes/member/array.d.ts +1 -0
  252. package/.dist/esm/src/nodes/member/array.d.ts.map +1 -0
  253. package/.dist/esm/src/nodes/member/callSignature.d.ts +1 -0
  254. package/.dist/esm/src/nodes/member/callSignature.d.ts.map +1 -0
  255. package/.dist/esm/src/nodes/member/genericMember.d.ts +1 -0
  256. package/.dist/esm/src/nodes/member/genericMember.d.ts.map +1 -0
  257. package/.dist/esm/src/nodes/member/indexProperty.d.ts +1 -0
  258. package/.dist/esm/src/nodes/member/indexProperty.d.ts.map +1 -0
  259. package/.dist/esm/src/nodes/member/method.d.ts +1 -0
  260. package/.dist/esm/src/nodes/member/method.d.ts.map +1 -0
  261. package/.dist/esm/src/nodes/member/methodSignature.d.ts +1 -0
  262. package/.dist/esm/src/nodes/member/methodSignature.d.ts.map +1 -0
  263. package/.dist/esm/src/nodes/member/param.d.ts +1 -0
  264. package/.dist/esm/src/nodes/member/param.d.ts.map +1 -0
  265. package/.dist/esm/src/nodes/member/property.d.ts +1 -0
  266. package/.dist/esm/src/nodes/member/property.d.ts.map +1 -0
  267. package/.dist/esm/src/nodes/member/restParams.d.ts +1 -0
  268. package/.dist/esm/src/nodes/member/restParams.d.ts.map +1 -0
  269. package/.dist/esm/src/nodes/member/tupleMember.d.ts +1 -0
  270. package/.dist/esm/src/nodes/member/tupleMember.d.ts.map +1 -0
  271. package/.dist/esm/src/nodes/native/Iterable.d.ts +1 -0
  272. package/.dist/esm/src/nodes/native/Iterable.d.ts.map +1 -0
  273. package/.dist/esm/src/nodes/native/map.d.ts +1 -0
  274. package/.dist/esm/src/nodes/native/map.d.ts.map +1 -0
  275. package/.dist/esm/src/nodes/native/nonSerializable.d.ts +1 -0
  276. package/.dist/esm/src/nodes/native/nonSerializable.d.ts.map +1 -0
  277. package/.dist/esm/src/nodes/native/promise.d.ts +1 -0
  278. package/.dist/esm/src/nodes/native/promise.d.ts.map +1 -0
  279. package/.dist/esm/src/nodes/native/set.d.ts +1 -0
  280. package/.dist/esm/src/nodes/native/set.d.ts.map +1 -0
  281. package/.dist/esm/src/run-types-pure-fns.d.ts +1 -0
  282. package/.dist/esm/src/run-types-pure-fns.d.ts.map +1 -0
  283. package/.dist/esm/src/types.d.ts +1 -0
  284. package/.dist/esm/src/types.d.ts.map +1 -0
  285. package/index.ts +70 -0
  286. package/package.json +11 -4
  287. package/src/constants.functions.ts +196 -0
  288. package/src/constants.kind.ts +76 -0
  289. package/src/constants.ts +85 -0
  290. package/src/createRunType.ts +323 -0
  291. package/src/createRunTypeFunctions.ts +93 -0
  292. package/src/formats.runtype.ts +35 -0
  293. package/src/jitCompilers/binary/binarySPEC.md +138 -0
  294. package/src/jitCompilers/binary/binarySpec/binaryHelpers.ts +118 -0
  295. package/src/jitCompilers/binary/fromBinary.ts +492 -0
  296. package/src/jitCompilers/binary/toBinary.ts +435 -0
  297. package/src/jitCompilers/equalsHelpers.ts +62 -0
  298. package/src/jitCompilers/json/jsonSpec/jsonHelpers.ts +64 -0
  299. package/src/jitCompilers/json/stringifyJson.ts +475 -0
  300. package/src/jitCompilers/json/stringifySpec/stringifyHelpers.ts +59 -0
  301. package/src/jitCompilers/json/toJsCode.ts +182 -0
  302. package/src/jitCompilers/serialization-suite.ts +1637 -0
  303. package/src/jitCompilers/xyz-Template/fromXYZ.ts +211 -0
  304. package/src/jitCompilers/xyz-Template/toXYZ.ts +216 -0
  305. package/src/jitCompilers/xyz-Template/xyzReadme.md +6 -0
  306. package/src/jitCompilers/xyz-Template/xyzSpec/xyzHelpers.ts +66 -0
  307. package/src/lib/baseRunTypeFormat.ts +320 -0
  308. package/src/lib/baseRunTypes.ts +367 -0
  309. package/src/lib/createJitFunction.ts +87 -0
  310. package/src/lib/dkProxy.ts +47 -0
  311. package/src/lib/formats.ts +144 -0
  312. package/src/lib/guards.ts +290 -0
  313. package/src/lib/jitFnCompiler.ts +783 -0
  314. package/src/lib/jitFnsRegistry.ts +53 -0
  315. package/src/lib/typeId.ts +225 -0
  316. package/src/lib/utils.ts +402 -0
  317. package/src/mocking/constants.mock.ts +87 -0
  318. package/src/mocking/mockRegistry.ts +20 -0
  319. package/src/mocking/mockType.ts +354 -0
  320. package/src/mocking/mockUtils.ts +82 -0
  321. package/src/nodes/atomic/any.ts +22 -0
  322. package/src/nodes/atomic/bigInt.ts +26 -0
  323. package/src/nodes/atomic/boolean.ts +26 -0
  324. package/src/nodes/atomic/date.ts +26 -0
  325. package/src/nodes/atomic/enum.ts +23 -0
  326. package/src/nodes/atomic/enumMember.ts +29 -0
  327. package/src/nodes/atomic/literal.ts +125 -0
  328. package/src/nodes/atomic/never.ts +26 -0
  329. package/src/nodes/atomic/null.ts +26 -0
  330. package/src/nodes/atomic/number.ts +26 -0
  331. package/src/nodes/atomic/object.ts +20 -0
  332. package/src/nodes/atomic/regexp.ts +29 -0
  333. package/src/nodes/atomic/string.ts +20 -0
  334. package/src/nodes/atomic/symbol.ts +31 -0
  335. package/src/nodes/atomic/undefined.ts +23 -0
  336. package/src/nodes/atomic/unknown.ts +10 -0
  337. package/src/nodes/atomic/void.ts +26 -0
  338. package/src/nodes/collection/class.ts +36 -0
  339. package/src/nodes/collection/functionParams.ts +42 -0
  340. package/src/nodes/collection/interface.ts +300 -0
  341. package/src/nodes/collection/intersection.ts +30 -0
  342. package/src/nodes/collection/tuple.ts +80 -0
  343. package/src/nodes/collection/union.ts +205 -0
  344. package/src/nodes/collection/unionDiscriminator.ts +259 -0
  345. package/src/nodes/function/function.ts +166 -0
  346. package/src/nodes/member/array.ts +150 -0
  347. package/src/nodes/member/callSignature.ts +34 -0
  348. package/src/nodes/member/genericMember.ts +63 -0
  349. package/src/nodes/member/indexProperty.ts +125 -0
  350. package/src/nodes/member/method.ts +30 -0
  351. package/src/nodes/member/methodSignature.ts +31 -0
  352. package/src/nodes/member/param.ts +22 -0
  353. package/src/nodes/member/property.ts +75 -0
  354. package/src/nodes/member/restParams.ts +22 -0
  355. package/src/nodes/member/tupleMember.ts +93 -0
  356. package/src/nodes/native/Iterable.ts +153 -0
  357. package/src/nodes/native/map.ts +91 -0
  358. package/src/nodes/native/nonSerializable.ts +42 -0
  359. package/src/nodes/native/promise.ts +43 -0
  360. package/src/nodes/native/set.ts +56 -0
  361. package/src/run-types-pure-fns.ts +116 -0
  362. package/src/types.ts +206 -0
@@ -0,0 +1,29 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import {type TypeEnum} from '@deepkit/type';
9
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
10
+ import {JitCode} from '../../types.ts';
11
+
12
+ // TODO: not sure when run type will be generated but doesn't seem to be used when using reflection on enums
13
+ export class EnumMemberRunType extends AtomicRunType<TypeEnum> {
14
+ skipJit() {
15
+ return true;
16
+ }
17
+ emitIsType(): JitCode {
18
+ throw new Error('Enum member operations are not supported');
19
+ }
20
+ emitTypeErrors(): JitCode {
21
+ throw new Error('Enum member operations are not supported');
22
+ }
23
+ emitPrepareForJson(): JitCode {
24
+ throw new Error('Enum member operations are not supported');
25
+ }
26
+ emitRestoreFromJson(): JitCode {
27
+ throw new Error('Enum member operations are not supported');
28
+ }
29
+ }
@@ -0,0 +1,125 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import {ReflectionKind, type TypeLiteral} from '@deepkit/type';
9
+ import type {JitCode, RunType} from '../../types.ts';
10
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
11
+ import type {Mutable} from '@mionjs/core';
12
+ import {toLiteral} from '../../lib/utils.ts';
13
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
14
+ import {BigIntRunType} from './bigInt.ts';
15
+ import {RegexpRunType} from './regexp.ts';
16
+ import {SymbolRunType} from './symbol.ts';
17
+ import {AnyKindName} from '../../constants.kind.ts';
18
+ import {StringRunType} from './string.ts';
19
+ import {NumberRunType} from './number.ts';
20
+ import {BooleanRunType} from './boolean.ts';
21
+
22
+ const stringRt = new StringRunType();
23
+ const numberRt = new NumberRunType();
24
+ const booleanRt = new BooleanRunType();
25
+ const symbolRt = new SymbolRunType();
26
+ const regexpRt = new RegexpRunType();
27
+ const bigIntRt = new BigIntRunType();
28
+
29
+ type AnyLiteralRunType = StringRunType | NumberRunType | BooleanRunType | SymbolRunType | RegexpRunType | BigIntRunType;
30
+
31
+ export class LiteralRunType extends AtomicRunType<TypeLiteral> {
32
+ getRunTypeForLiteral(comp: JitFnCompiler): AnyLiteralRunType {
33
+ const noLiterals = comp.opts.noLiterals;
34
+ const lit = this.src.literal;
35
+ let rt: AnyLiteralRunType;
36
+ if (lit instanceof RegExp) {
37
+ rt = regexpRt;
38
+ (rt as Mutable<RunType>).src = this.src;
39
+ if (noLiterals) (this.src as any).kind = ReflectionKind.regexp;
40
+ return rt;
41
+ }
42
+ switch (typeof lit) {
43
+ case 'string':
44
+ rt = stringRt;
45
+ if (noLiterals) (this.src as any).kind = ReflectionKind.string;
46
+ break;
47
+ case 'number':
48
+ rt = numberRt;
49
+ if (noLiterals) (this.src as any).kind = ReflectionKind.number;
50
+ break;
51
+ case 'boolean':
52
+ rt = booleanRt;
53
+ if (noLiterals) (this.src as any).kind = ReflectionKind.boolean;
54
+ break;
55
+ case 'bigint':
56
+ rt = bigIntRt;
57
+ if (noLiterals) (this.src as any).kind = ReflectionKind.bigint;
58
+ break;
59
+ case 'symbol':
60
+ rt = symbolRt;
61
+ if (noLiterals) (this.src as any).kind = ReflectionKind.symbol;
62
+ break;
63
+ default:
64
+ throw new Error(`Unsupported literal type ${typeof lit}`);
65
+ }
66
+ (rt as Mutable<RunType>).src = this.src;
67
+ return rt;
68
+ }
69
+ emitIsType(comp: JitFnCompiler): JitCode {
70
+ if (comp.opts.noLiterals) return this.getRunTypeForLiteral(comp).emitIsType(comp);
71
+ return {code: compileIsLiteral(comp, this.src.literal), type: 'E'};
72
+ }
73
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
74
+ if (comp.opts.noLiterals) return this.getRunTypeForLiteral(comp).emitTypeErrors(comp);
75
+ return {code: compileTypeErrorsLiteral(comp, this.src.literal, this.getKindName()), type: 'S'};
76
+ }
77
+ emitPrepareForJson(comp: JitFnCompiler): JitCode {
78
+ return this.getRunTypeForLiteral(comp).emitPrepareForJson(comp);
79
+ }
80
+ emitRestoreFromJson(comp: JitFnCompiler): JitCode {
81
+ return this.getRunTypeForLiteral(comp).emitRestoreFromJson(comp);
82
+ }
83
+ getLiteralValue() {
84
+ return this.src.literal;
85
+ }
86
+ }
87
+
88
+ function compileIsLiteral(comp: JitFnCompiler, lit: TypeLiteral['literal']): string {
89
+ const literalType = typeof lit;
90
+ if (lit instanceof RegExp) return `${comp.vλl} instanceof RegExp && String(${comp.vλl}) === String(${lit})`;
91
+ switch (literalType) {
92
+ case 'string':
93
+ return `${comp.vλl} === ${toLiteral(lit)}`;
94
+ case 'number':
95
+ return `${comp.vλl} === ${toLiteral(lit)}`;
96
+ case 'boolean':
97
+ return `${comp.vλl} === ${toLiteral(lit)}`;
98
+ case 'bigint':
99
+ return `${comp.vλl} === ${toLiteral(lit)}`;
100
+ case 'symbol':
101
+ return `typeof ${comp.vλl} === 'symbol' && ${comp.vλl}.description === ${toLiteral((lit as symbol).description)}`;
102
+ default:
103
+ throw new Error(`Unsupported literal type ${literalType}`);
104
+ }
105
+ }
106
+
107
+ function compileTypeErrorsLiteral(comp: JitErrorsFnCompiler, lit: TypeLiteral['literal'], name: AnyKindName): string {
108
+ const literalType = typeof lit;
109
+ if (lit instanceof RegExp)
110
+ return `if (!(${comp.vλl} instanceof RegExp) || String(${comp.vλl}) !== String(${lit})) ${comp.callJitErr(name)}`;
111
+ switch (literalType) {
112
+ case 'string':
113
+ return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
114
+ case 'number':
115
+ return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
116
+ case 'boolean':
117
+ return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
118
+ case 'bigint':
119
+ return `if (${comp.vλl} !== ${toLiteral(lit)}) ${comp.callJitErr(name)}`;
120
+ case 'symbol':
121
+ return `if (typeof ${comp.vλl} !== 'symbol' || ${comp.vλl}.description !== ${toLiteral((lit as symbol).description)}) {${comp.callJitErr(name)}}`;
122
+ default:
123
+ throw new Error(`Unsupported literal type ${literalType}`);
124
+ }
125
+ }
@@ -0,0 +1,26 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeNever} from '@deepkit/type';
9
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
10
+ import {JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
11
+ import {JitCode} from '../../types.ts';
12
+
13
+ export class NeverRunType extends AtomicRunType<TypeNever> {
14
+ emitIsType(): JitCode {
15
+ return {code: 'false', type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ emitPrepareForJson(): JitCode {
21
+ throw new Error('Never type cannot be encoded to JSON.');
22
+ }
23
+ emitRestoreFromJson(): JitCode {
24
+ throw new Error('Never type cannot be decoded from JSON.');
25
+ }
26
+ }
@@ -0,0 +1,26 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeNull} from '@deepkit/type';
9
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
10
+ import type {JitCode} from '../../types.ts';
11
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
12
+
13
+ export class NullRunType extends AtomicRunType<TypeNull> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `${comp.vλl} === null`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if (${comp.vλl} !== null) ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ emitPrepareForJson(): JitCode {
21
+ return {code: undefined, type: 'S'};
22
+ }
23
+ emitRestoreFromJson(): JitCode {
24
+ return {code: undefined, type: 'S'};
25
+ }
26
+ }
@@ -0,0 +1,26 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeNumber} from '@deepkit/type';
9
+ import type {JitCode} from '../../types.ts';
10
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
11
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
12
+
13
+ export class NumberRunType extends AtomicRunType<TypeNumber> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `Number.isFinite(${comp.vλl})`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if(!(Number.isFinite(${comp.vλl}))) ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ emitPrepareForJson(): JitCode {
21
+ return {code: undefined, type: 'S'};
22
+ }
23
+ emitRestoreFromJson(): JitCode {
24
+ return {code: undefined, type: 'S'};
25
+ }
26
+ }
@@ -0,0 +1,20 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeAny, TypeUnknown} from '@deepkit/type';
9
+ import type {JitCode} from '../../types.ts';
10
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
11
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
12
+
13
+ export class ObjectRunType extends AtomicRunType<TypeAny | TypeUnknown> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `(typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null)`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if (!(typeof ${comp.vλl} === 'object' && ${comp.vλl} !== null)) ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ }
@@ -0,0 +1,29 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeRegexp} from '@deepkit/type';
9
+ import type {JitCode} from '../../types.ts';
10
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
11
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
12
+
13
+ export class RegexpRunType extends AtomicRunType<TypeRegexp> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `(${comp.vλl} instanceof RegExp)`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if (!(${comp.vλl} instanceof RegExp)) ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ emitPrepareForJson(comp: JitFnCompiler): JitCode {
21
+ return {code: `${comp.vλl}.toString()`, type: 'E'};
22
+ }
23
+ emitRestoreFromJson(comp: JitFnCompiler): JitCode {
24
+ return {
25
+ code: `(function(){const parts = ${comp.vλl}.match(/\\/(.*)\\/(.*)?/) ;return new RegExp(parts[1], parts[2] || '')})()`,
26
+ type: 'E',
27
+ };
28
+ }
29
+ }
@@ -0,0 +1,20 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeString} from '@deepkit/type';
9
+ import type {JitCode} from '../../types.ts';
10
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
11
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
12
+
13
+ export class StringRunType extends AtomicRunType<TypeString> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `typeof ${comp.vλl} === 'string'`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if (typeof ${comp.vλl} !== 'string') ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ }
@@ -0,0 +1,31 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeSymbol} from '@deepkit/type';
9
+ import type {JitCode} from '../../types.ts';
10
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
11
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
12
+ import {JitFunctions} from '../../constants.functions.ts';
13
+
14
+ export class SymbolRunType extends AtomicRunType<TypeSymbol> {
15
+ skipJit(comp: JitFnCompiler): boolean {
16
+ if (!comp) return true;
17
+ return comp.fnID !== JitFunctions.toJSCode.id;
18
+ }
19
+ emitIsType(comp: JitFnCompiler): JitCode {
20
+ return {code: `typeof ${comp.vλl} === 'symbol'`, type: 'E'};
21
+ }
22
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
23
+ return {code: `if (typeof ${comp.vλl} !== 'symbol') ${comp.callJitErr(this)}`, type: 'S'};
24
+ }
25
+ emitPrepareForJson(comp: JitFnCompiler): JitCode {
26
+ return {code: `'Symbol:' + (${comp.vλl}.description || '')`, type: 'E'};
27
+ }
28
+ emitRestoreFromJson(comp: JitFnCompiler): JitCode {
29
+ return {code: `Symbol(${comp.vλl}.substring(7))`, type: 'E'};
30
+ }
31
+ }
@@ -0,0 +1,23 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeUndefined} from '@deepkit/type';
9
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
10
+ import type {JitCode} from '../../types.ts';
11
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
12
+
13
+ export class UndefinedRunType extends AtomicRunType<TypeUndefined> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `typeof ${comp.vλl} === 'undefined'`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if (typeof ${comp.vλl} !== 'undefined') ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ emitRestoreFromJson(): JitCode {
21
+ return {code: `undefined`, type: 'E'};
22
+ }
23
+ }
@@ -0,0 +1,10 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import {AnyRunType} from './any.ts';
9
+
10
+ export class UnknownRunType extends AnyRunType {}
@@ -0,0 +1,26 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeVoid} from '@deepkit/type';
9
+ import type {JitCode} from '../../types.ts';
10
+ import {AtomicRunType} from '../../lib/baseRunTypes.ts';
11
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
12
+
13
+ export class VoidRunType extends AtomicRunType<TypeVoid> {
14
+ emitIsType(comp: JitFnCompiler): JitCode {
15
+ return {code: `${comp.vλl} === undefined`, type: 'E'};
16
+ }
17
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
18
+ return {code: `if (${comp.vλl} !== undefined) ${comp.callJitErr(this)}`, type: 'S'};
19
+ }
20
+ emitPrepareForJson(comp: JitFnCompiler): JitCode {
21
+ return {code: `${comp.vλl} = undefined`, type: 'E'};
22
+ }
23
+ emitRestoreFromJson(comp: JitFnCompiler): JitCode {
24
+ return {code: `${comp.vλl} = undefined`, type: 'E'};
25
+ }
26
+ }
@@ -0,0 +1,36 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+ import {TypeClass} from '@deepkit/type';
8
+ import {InterfaceMember, InterfaceRunType} from './interface.ts';
9
+ import {JitFnCompiler} from '../../lib/jitFnCompiler.ts';
10
+ import {getJitUtils} from '@mionjs/core';
11
+ import {toLiteral} from '../../lib/utils.ts';
12
+ import {isConstructor} from '../../lib/guards.ts';
13
+ import {JitCode} from '../../types.ts';
14
+
15
+ export class ClassRunType extends InterfaceRunType<TypeClass> {
16
+ getClassName(): string {
17
+ return this.src.classType.name;
18
+ }
19
+ isClassWithEmptyConstructor(): boolean {
20
+ const children = this.getChildRunTypes() as InterfaceMember[];
21
+ const isEmpty = children.every((prop) => !isConstructor(prop) || prop.getParameters().getChildRunTypes().length === 0);
22
+ return isEmpty;
23
+ }
24
+ emitRestoreFromJson(comp: JitFnCompiler): JitCode {
25
+ const objJit = super.emitRestoreFromJson(comp);
26
+ const desFnVarName = comp.getLocalVarName('desFn', this);
27
+ const classLiteral = toLiteral(this.getClassName());
28
+ const code = `
29
+ ${objJit.code};
30
+ let ${desFnVarName} = utl.${getJitUtils().getDeserializeFn.name}(${classLiteral});
31
+ if (${desFnVarName}) {${comp.vλl} = ${desFnVarName}(${comp.vλl})}
32
+ else if (${desFnVarName} = utl.${getJitUtils().getSerializeClass.name}(${classLiteral})) {${comp.vλl} = new ${desFnVarName}(${comp.vλl})}
33
+ `;
34
+ return {code, type: 'S'};
35
+ }
36
+ }
@@ -0,0 +1,42 @@
1
+ /* ########
2
+ * 2024 mion
3
+ * Author: Ma-jerez
4
+ * License: MIT
5
+ * The software is provided "as is", without warranty of any kind.
6
+ * ######## */
7
+
8
+ import type {TypeFunction} from '@deepkit/type';
9
+ import type {JitFnCompiler, JitErrorsFnCompiler} from '../../lib/jitFnCompiler.ts';
10
+ import type {AnyParameterListRunType, JitCode} from '../../types.ts';
11
+ import {TupleRunType} from './tuple.ts';
12
+ import {ParameterRunType} from '../member/param.ts';
13
+
14
+ export class FunctionParamsRunType<ParamList extends AnyParameterListRunType = TypeFunction> extends TupleRunType<
15
+ ParamList,
16
+ ParameterRunType
17
+ > {
18
+ emitIsType(comp: JitFnCompiler): JitCode {
19
+ const children = this.getParamRunTypes(comp);
20
+ if (children.length === 0) return {code: `${comp.vλl}.length === 0`, type: 'E'};
21
+ const lengthCode = this.hasRestParameter(comp) ? '' : `${comp.vλl}.length <= ${children.length}`;
22
+ // Only include parameters that require validation
23
+ const paramsCode = children.map((p) => comp.compileIsType(p, 'E').code).filter(Boolean);
24
+ if (paramsCode.length === 0) return lengthCode ? {code: `(${lengthCode})`, type: 'E'} : {code: undefined, type: 'E'};
25
+ return lengthCode
26
+ ? {code: `(${lengthCode} && ${paramsCode.join(' && ')})`, type: 'E'}
27
+ : {code: `(${paramsCode.join(' && ')})`, type: 'E'};
28
+ }
29
+ emitTypeErrors(comp: JitErrorsFnCompiler): JitCode {
30
+ const children = this.getParamRunTypes(comp);
31
+ if (children.length === 0) return {code: `if (${comp.vλl}.length !== 0) ${comp.callJitErr(this)}`, type: 'S'};
32
+ const lengthCode = this.hasRestParameter(comp) ? '' : `${comp.vλl}.length > ${children.length}`;
33
+
34
+ // Only include parameters that require validation
35
+ const paramsCode = children.map((p) => comp.compileTypeErrors(p, 'S').code).filter(Boolean);
36
+ if (paramsCode.length === 0)
37
+ return lengthCode ? {code: `if (${lengthCode}) ${comp.callJitErr(this)}`, type: 'S'} : {code: undefined, type: 'S'};
38
+ return lengthCode
39
+ ? {code: `if (${lengthCode}) ${comp.callJitErr(this)}; else {${paramsCode.join(';')}}`, type: 'S'}
40
+ : {code: paramsCode.join(';'), type: 'S'};
41
+ }
42
+ }