@routier/core 0.0.1-alpha.1 → 0.0.1-alpha.2

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 (331) hide show
  1. package/dist/assertions/index.d.ts +5 -0
  2. package/dist/assertions/index.js +131 -0
  3. package/dist/assertions/index.js.map +1 -0
  4. package/dist/codegen/SlotPath.d.ts +7 -0
  5. package/dist/codegen/blocks.d.ts +130 -0
  6. package/dist/codegen/handlers/CloneHandlerBuilder.d.ts +4 -0
  7. package/dist/codegen/handlers/CompareHandlerBuilder.d.ts +4 -0
  8. package/dist/codegen/handlers/DeserializeHandlerBuilder.d.ts +4 -0
  9. package/dist/codegen/handlers/EnableChangeTrackingHandlerBuilder.d.ts +4 -0
  10. package/dist/codegen/handlers/EnrichmentHandlerBuilder.d.ts +4 -0
  11. package/dist/codegen/handlers/FreezeHandlerBuilder.d.ts +4 -0
  12. package/dist/codegen/handlers/HashHandlerBuilder.d.ts +4 -0
  13. package/dist/codegen/handlers/HashTypeHandlerBuilder.d.ts +4 -0
  14. package/dist/codegen/handlers/IdSelectorHandlerBuilder.d.ts +4 -0
  15. package/dist/codegen/handlers/MergeHandlerBuilder.d.ts +4 -0
  16. package/dist/codegen/handlers/PrepareHandlerBuilder.d.ts +4 -0
  17. package/dist/codegen/handlers/SerializeHandlerBuilder.d.ts +4 -0
  18. package/dist/codegen/handlers/StripHandlerBuilder.d.ts +4 -0
  19. package/dist/codegen/handlers/clone/CloneObjectHandler.d.ts +6 -0
  20. package/dist/codegen/handlers/clone/CloneValueHandler.d.ts +6 -0
  21. package/dist/codegen/handlers/compare/CompareObjectHandler.d.ts +6 -0
  22. package/dist/codegen/handlers/compare/CompareValueHandler.d.ts +6 -0
  23. package/dist/codegen/handlers/deserialize/DeserializeComputedValueHandler.d.ts +6 -0
  24. package/dist/codegen/handlers/deserialize/DeserializeDateHandler.d.ts +9 -0
  25. package/dist/codegen/handlers/deserialize/DeserializeFunctionHandler.d.ts +6 -0
  26. package/dist/codegen/handlers/deserialize/DeserializeObjectHandler.d.ts +6 -0
  27. package/dist/codegen/handlers/deserialize/DeserializeValueHandler.d.ts +6 -0
  28. package/dist/codegen/handlers/enableChangeTracking/EnableChangeTrackingObjectHandler.d.ts +6 -0
  29. package/dist/codegen/handlers/enableChangeTracking/EnableChangeTrackingPrimitiveValueHandler.d.ts +6 -0
  30. package/dist/codegen/handlers/enrichment/EnrichmentComputedValueHandler.d.ts +6 -0
  31. package/dist/codegen/handlers/enrichment/EnrichmentDefaultFunctionHandler.d.ts +6 -0
  32. package/dist/codegen/handlers/enrichment/EnrichmentDefaultValueHandler.d.ts +6 -0
  33. package/dist/codegen/handlers/enrichment/EnrichmentFunctionHandler.d.ts +6 -0
  34. package/dist/codegen/handlers/enrichment/EnrichmentNullableObjectHandler.d.ts +6 -0
  35. package/dist/codegen/handlers/enrichment/EnrichmentObjectHandler.d.ts +6 -0
  36. package/dist/codegen/handlers/enrichment/EnrichmentObjectIdentityHandler.d.ts +6 -0
  37. package/dist/codegen/handlers/enrichment/EnrichmentPrimitiveHandler.d.ts +6 -0
  38. package/dist/codegen/handlers/enrichment/EnrichmentPrimitiveIdentityHandler.d.ts +6 -0
  39. package/dist/codegen/handlers/freeze/FreezeObjectHandler.d.ts +6 -0
  40. package/dist/codegen/handlers/freeze/FreezePrimitiveValueHandler.d.ts +6 -0
  41. package/dist/codegen/handlers/hash/HashComputedValueHandler.d.ts +6 -0
  42. package/dist/codegen/handlers/hash/HashDateHandler.d.ts +6 -0
  43. package/dist/codegen/handlers/hash/HashFunctionHandler.d.ts +6 -0
  44. package/dist/codegen/handlers/hash/HashIdentityHandler.d.ts +6 -0
  45. package/dist/codegen/handlers/hash/HashKeyHandler.d.ts +6 -0
  46. package/dist/codegen/handlers/hash/HashValueHandler.d.ts +6 -0
  47. package/dist/codegen/handlers/hashType/HashTypeValueHandler.d.ts +6 -0
  48. package/dist/codegen/handlers/idSelector/IdSelectorValueHandler.d.ts +6 -0
  49. package/{src/codegen/handlers/index.ts → dist/codegen/handlers/index.d.ts} +1 -1
  50. package/dist/codegen/handlers/merge/MergeComputedValueHandler.d.ts +6 -0
  51. package/dist/codegen/handlers/merge/MergeDefaultFunctionHandler.d.ts +6 -0
  52. package/dist/codegen/handlers/merge/MergeDefaultValueHandler.d.ts +6 -0
  53. package/dist/codegen/handlers/merge/MergeFunctionHandler.d.ts +6 -0
  54. package/dist/codegen/handlers/merge/MergePrimitiveHandler.d.ts +6 -0
  55. package/dist/codegen/handlers/prepare/PrepareComputedValueHandler.d.ts +6 -0
  56. package/dist/codegen/handlers/prepare/PrepareFunctionHandler.d.ts +6 -0
  57. package/dist/codegen/handlers/prepare/PrepareIdentityHandler.d.ts +6 -0
  58. package/dist/codegen/handlers/prepare/PrepareKeyHandler.d.ts +6 -0
  59. package/dist/codegen/handlers/prepare/PrepareObjectHandler.d.ts +6 -0
  60. package/dist/codegen/handlers/prepare/PrepareValueHandler.d.ts +6 -0
  61. package/dist/codegen/handlers/serialize/SerializeDateHandler.d.ts +9 -0
  62. package/dist/codegen/handlers/serialize/SerializeObjectHandler.d.ts +6 -0
  63. package/dist/codegen/handlers/serialize/SerializeValueHandler.d.ts +6 -0
  64. package/dist/codegen/handlers/strip/StripIdentityHandler.d.ts +6 -0
  65. package/dist/codegen/handlers/strip/StripKeyHandler.d.ts +6 -0
  66. package/dist/codegen/handlers/strip/StripObjectHandler.d.ts +6 -0
  67. package/dist/codegen/handlers/strip/StripValueHandler.d.ts +6 -0
  68. package/dist/codegen/handlers/types.d.ts +18 -0
  69. package/{src/codegen/index.ts → dist/codegen/index.d.ts} +1 -1
  70. package/dist/codegen/types.d.ts +9 -0
  71. package/dist/codegen/utils.d.ts +22 -0
  72. package/dist/collections/Changes.d.ts +51 -0
  73. package/dist/collections/Changes.test.d.ts +1 -0
  74. package/dist/collections/IdSet.d.ts +7 -0
  75. package/dist/collections/MemoryDataCollection.d.ts +22 -0
  76. package/dist/collections/MemoryDataCollection.test.d.ts +1 -0
  77. package/dist/collections/SchemaCollection.d.ts +8 -0
  78. package/dist/collections/TagCollection.d.ts +15 -0
  79. package/dist/collections/TagCollection.test.d.ts +1 -0
  80. package/{src/collections/index.ts → dist/collections/index.d.ts} +1 -1
  81. package/dist/collections/index.js +659 -0
  82. package/dist/collections/index.js.map +1 -0
  83. package/dist/errors/SchemaError.d.ts +3 -0
  84. package/dist/errors/index.d.ts +1 -0
  85. package/dist/errors/index.js +90 -0
  86. package/dist/errors/index.js.map +1 -0
  87. package/{src/expressions/index.ts → dist/expressions/index.d.ts} +1 -1
  88. package/{src/expressions/parser.ts → dist/expressions/index.js} +387 -205
  89. package/dist/expressions/index.js.map +1 -0
  90. package/dist/expressions/parser.d.ts +4 -0
  91. package/dist/expressions/parser.test.d.ts +1 -0
  92. package/{src/expressions/types.ts → dist/expressions/types.d.ts} +42 -99
  93. package/dist/expressions/utils.d.ts +10 -0
  94. package/dist/expressions/utils.test.d.ts +1 -0
  95. package/{src/index.ts → dist/index.d.ts} +1 -1
  96. package/dist/index.js +8434 -0
  97. package/dist/index.js.map +1 -0
  98. package/dist/performance/index.d.ts +5 -0
  99. package/dist/performance/index.js +65 -0
  100. package/dist/performance/index.js.map +1 -0
  101. package/dist/pipeline/SyncronousQueue.d.ts +7 -0
  102. package/dist/pipeline/SyncronousQueue.test.d.ts +1 -0
  103. package/dist/pipeline/TrampolinePipeline.d.ts +36 -0
  104. package/dist/pipeline/TrampolinePipeline.test.d.ts +1 -0
  105. package/dist/pipeline/index.d.ts +2 -0
  106. package/{src/pipeline/TrampolinePipeline.ts → dist/pipeline/index.js} +297 -140
  107. package/dist/pipeline/index.js.map +1 -0
  108. package/dist/plugins/EphemeralDataPlugin.d.ts +13 -0
  109. package/dist/plugins/capabilities/DbPluginCapability.d.ts +23 -0
  110. package/{src/plugins/capabilities/index.ts → dist/plugins/capabilities/index.d.ts} +1 -1
  111. package/dist/plugins/capabilities/logging/DbPluginLoggingCapability.d.ts +28 -0
  112. package/dist/plugins/capabilities/logging/index.d.ts +1 -0
  113. package/{src/plugins/index.ts → dist/plugins/index.d.ts} +1 -1
  114. package/dist/plugins/index.js +2328 -0
  115. package/dist/plugins/index.js.map +1 -0
  116. package/dist/plugins/query/Query.d.ts +13 -0
  117. package/dist/plugins/query/QueryOptionsCollection.d.ts +27 -0
  118. package/dist/plugins/query/QueryOptionsCollection.test.d.ts +1 -0
  119. package/{src/plugins/query/index.ts → dist/plugins/query/index.d.ts} +1 -1
  120. package/{src/plugins/query/types.ts → dist/plugins/query/types.d.ts} +29 -20
  121. package/dist/plugins/replication/OptimisticReplicationDbPlugin.d.ts +21 -0
  122. package/dist/plugins/replication/ReplicationDbPlugin.d.ts +21 -0
  123. package/{src/plugins/replication/index.ts → dist/plugins/replication/index.d.ts} +1 -1
  124. package/{src/plugins/replication/types.ts → dist/plugins/replication/types.d.ts} +1 -2
  125. package/dist/plugins/translators/DataTranslator.d.ts +18 -0
  126. package/dist/plugins/translators/JsonTranslator.d.ts +17 -0
  127. package/dist/plugins/translators/JsonTranslator.test.d.ts +1 -0
  128. package/dist/plugins/translators/SqlTranslator.d.ts +14 -0
  129. package/{src/plugins/translators/index.ts → dist/plugins/translators/index.d.ts} +1 -1
  130. package/{src/plugins/types.ts → dist/plugins/types.d.ts} +11 -26
  131. package/dist/results/Result.d.ts +29 -0
  132. package/{src/results/index.ts → dist/results/index.d.ts} +1 -1
  133. package/dist/results/index.js +192 -0
  134. package/dist/results/index.js.map +1 -0
  135. package/{src/results/types.ts → dist/results/types.d.ts} +18 -7
  136. package/dist/results/utils.d.ts +2 -0
  137. package/dist/schema/PropertyInfo.d.ts +132 -0
  138. package/dist/schema/PropertyInfo.test.d.ts +1 -0
  139. package/dist/schema/SchemaDefinition.d.ts +17 -0
  140. package/dist/schema/builder.d.ts +17 -0
  141. package/{src/schema/index.ts → dist/schema/index.d.ts} +1 -1
  142. package/dist/schema/index.js +4822 -0
  143. package/dist/schema/index.js.map +1 -0
  144. package/dist/schema/property/base/SchemaBase.d.ts +23 -0
  145. package/dist/schema/property/base/index.d.ts +1 -0
  146. package/dist/schema/property/modifiers/SchemaDefault.d.ts +13 -0
  147. package/dist/schema/property/modifiers/SchemaDeserialize.d.ts +11 -0
  148. package/dist/schema/property/modifiers/SchemaDistinct.d.ts +7 -0
  149. package/dist/schema/property/modifiers/SchemaFrom.d.ts +23 -0
  150. package/dist/schema/property/modifiers/SchemaIdentity.d.ts +7 -0
  151. package/dist/schema/property/modifiers/SchemaIndex.d.ts +23 -0
  152. package/dist/schema/property/modifiers/SchemaKey.d.ts +13 -0
  153. package/dist/schema/property/modifiers/SchemaNullable.d.ts +9 -0
  154. package/dist/schema/property/modifiers/SchemaOptional.d.ts +9 -0
  155. package/dist/schema/property/modifiers/SchemaReadonly.d.ts +15 -0
  156. package/dist/schema/property/modifiers/SchemaSerialize.d.ts +9 -0
  157. package/dist/schema/property/modifiers/SchemaTracked.d.ts +7 -0
  158. package/{src/schema/property/modifiers/index.ts → dist/schema/property/modifiers/index.d.ts} +1 -1
  159. package/dist/schema/property/types/SchemaArray.d.ts +23 -0
  160. package/dist/schema/property/types/SchemaBoolean.d.ts +27 -0
  161. package/dist/schema/property/types/SchemaDate.d.ts +27 -0
  162. package/dist/schema/property/types/SchemaNumber.d.ts +31 -0
  163. package/dist/schema/property/types/SchemaObject.d.ts +20 -0
  164. package/dist/schema/property/types/SchemaString.d.ts +31 -0
  165. package/{src/schema/property/types/index.ts → dist/schema/property/types/index.d.ts} +1 -1
  166. package/dist/schema/table/SchemaComputed.d.ts +10 -0
  167. package/dist/schema/table/SchemaFunction.d.ts +8 -0
  168. package/{src/schema/table/index.ts → dist/schema/table/index.d.ts} +1 -1
  169. package/{src/schema/types.ts → dist/schema/types.d.ts} +59 -99
  170. package/{src/types/index.ts → dist/types/index.d.ts} +1 -2
  171. package/dist/types/index.js +25 -0
  172. package/dist/types/index.js.map +1 -0
  173. package/dist/utilities/arrays.d.ts +1 -0
  174. package/dist/utilities/arrays.test.d.ts +1 -0
  175. package/dist/utilities/dates.d.ts +1 -0
  176. package/dist/utilities/dates.test.d.ts +1 -0
  177. package/dist/utilities/dbPluginEventUtils.d.ts +14 -0
  178. package/{src/utilities/index.ts → dist/utilities/index.d.ts} +1 -1
  179. package/dist/utilities/index.js +554 -0
  180. package/dist/utilities/index.js.map +1 -0
  181. package/dist/utilities/objects.d.ts +2 -0
  182. package/dist/utilities/queryOptionsCollection.d.ts +2 -0
  183. package/dist/utilities/replication.d.ts +3 -0
  184. package/dist/utilities/runtime.d.ts +1 -0
  185. package/dist/utilities/strings.d.ts +1 -0
  186. package/dist/utilities/types.d.ts +1 -0
  187. package/dist/utilities/uuid.d.ts +2 -0
  188. package/package.json +6 -1
  189. package/readme.md +95 -0
  190. package/CHANGELOG.md +0 -8
  191. package/rspack.config.mjs +0 -65
  192. package/src/assertions/index.ts +0 -37
  193. package/src/codegen/SlotPath.ts +0 -20
  194. package/src/codegen/blocks.ts +0 -578
  195. package/src/codegen/handlers/CloneHandlerBuilder.ts +0 -13
  196. package/src/codegen/handlers/CompareHandlerBuilder.ts +0 -13
  197. package/src/codegen/handlers/DeserializeHandlerBuilder.ts +0 -20
  198. package/src/codegen/handlers/EnableChangeTrackingHandlerBuilder.ts +0 -13
  199. package/src/codegen/handlers/EnrichmentHandlerBuilder.ts +0 -28
  200. package/src/codegen/handlers/FreezeHandlerBuilder.ts +0 -13
  201. package/src/codegen/handlers/HashHandlerBuilder.ts +0 -25
  202. package/src/codegen/handlers/HashTypeHandlerBuilder.ts +0 -11
  203. package/src/codegen/handlers/IdSelectorHandlerBuilder.ts +0 -10
  204. package/src/codegen/handlers/MergeHandlerBuilder.ts +0 -19
  205. package/src/codegen/handlers/PrepareHandlerBuilder.ts +0 -23
  206. package/src/codegen/handlers/SerializeHandlerBuilder.ts +0 -15
  207. package/src/codegen/handlers/StripHandlerBuilder.ts +0 -18
  208. package/src/codegen/handlers/clone/CloneObjectHandler.ts +0 -29
  209. package/src/codegen/handlers/clone/CloneValueHandler.ts +0 -33
  210. package/src/codegen/handlers/compare/CompareObjectHandler.ts +0 -15
  211. package/src/codegen/handlers/compare/CompareValueHandler.ts +0 -27
  212. package/src/codegen/handlers/deserialize/DeserializeComputedValueHandler.ts +0 -16
  213. package/src/codegen/handlers/deserialize/DeserializeDateHandler.ts +0 -45
  214. package/src/codegen/handlers/deserialize/DeserializeFunctionHandler.ts +0 -16
  215. package/src/codegen/handlers/deserialize/DeserializeObjectHandler.ts +0 -29
  216. package/src/codegen/handlers/deserialize/DeserializeValueHandler.ts +0 -33
  217. package/src/codegen/handlers/enableChangeTracking/EnableChangeTrackingObjectHandler.ts +0 -20
  218. package/src/codegen/handlers/enableChangeTracking/EnableChangeTrackingPrimitiveValueHandler.ts +0 -15
  219. package/src/codegen/handlers/enrichment/EnrichmentComputedValueHandler.ts +0 -37
  220. package/src/codegen/handlers/enrichment/EnrichmentDefaultFunctionHandler.ts +0 -50
  221. package/src/codegen/handlers/enrichment/EnrichmentDefaultValueHandler.ts +0 -18
  222. package/src/codegen/handlers/enrichment/EnrichmentFunctionHandler.ts +0 -38
  223. package/src/codegen/handlers/enrichment/EnrichmentNullableObjectHandler.ts +0 -44
  224. package/src/codegen/handlers/enrichment/EnrichmentObjectHandler.ts +0 -29
  225. package/src/codegen/handlers/enrichment/EnrichmentObjectIdentityHandler.ts +0 -16
  226. package/src/codegen/handlers/enrichment/EnrichmentPrimitiveHandler.ts +0 -13
  227. package/src/codegen/handlers/enrichment/EnrichmentPrimitiveIdentityHandler.ts +0 -21
  228. package/src/codegen/handlers/freeze/FreezeObjectHandler.ts +0 -20
  229. package/src/codegen/handlers/freeze/FreezePrimitiveValueHandler.ts +0 -15
  230. package/src/codegen/handlers/hash/HashComputedValueHandler.ts +0 -15
  231. package/src/codegen/handlers/hash/HashDateHandler.ts +0 -26
  232. package/src/codegen/handlers/hash/HashFunctionHandler.ts +0 -16
  233. package/src/codegen/handlers/hash/HashIdentityHandler.ts +0 -15
  234. package/src/codegen/handlers/hash/HashKeyHandler.ts +0 -26
  235. package/src/codegen/handlers/hash/HashValueHandler.ts +0 -26
  236. package/src/codegen/handlers/hashType/HashTypeValueHandler.ts +0 -20
  237. package/src/codegen/handlers/idSelector/IdSelectorValueHandler.ts +0 -28
  238. package/src/codegen/handlers/merge/MergeComputedValueHandler.ts +0 -37
  239. package/src/codegen/handlers/merge/MergeDefaultFunctionHandler.ts +0 -40
  240. package/src/codegen/handlers/merge/MergeDefaultValueHandler.ts +0 -32
  241. package/src/codegen/handlers/merge/MergeFunctionHandler.ts +0 -16
  242. package/src/codegen/handlers/merge/MergePrimitiveHandler.ts +0 -21
  243. package/src/codegen/handlers/prepare/PrepareComputedValueHandler.ts +0 -16
  244. package/src/codegen/handlers/prepare/PrepareFunctionHandler.ts +0 -16
  245. package/src/codegen/handlers/prepare/PrepareIdentityHandler.ts +0 -21
  246. package/src/codegen/handlers/prepare/PrepareKeyHandler.ts +0 -21
  247. package/src/codegen/handlers/prepare/PrepareObjectHandler.ts +0 -38
  248. package/src/codegen/handlers/prepare/PrepareValueHandler.ts +0 -36
  249. package/src/codegen/handlers/serialize/SerializeDateHandler.ts +0 -45
  250. package/src/codegen/handlers/serialize/SerializeObjectHandler.ts +0 -28
  251. package/src/codegen/handlers/serialize/SerializeValueHandler.ts +0 -33
  252. package/src/codegen/handlers/strip/StripIdentityHandler.ts +0 -15
  253. package/src/codegen/handlers/strip/StripKeyHandler.ts +0 -15
  254. package/src/codegen/handlers/strip/StripObjectHandler.ts +0 -35
  255. package/src/codegen/handlers/strip/StripValueHandler.ts +0 -36
  256. package/src/codegen/handlers/types.ts +0 -119
  257. package/src/codegen/types.ts +0 -2
  258. package/src/codegen/utils.ts +0 -74
  259. package/src/collections/Changes.test.ts +0 -337
  260. package/src/collections/Changes.ts +0 -177
  261. package/src/collections/IdSet.ts +0 -28
  262. package/src/collections/MemoryDataCollection.test.ts +0 -424
  263. package/src/collections/MemoryDataCollection.ts +0 -134
  264. package/src/collections/SchemaCollection.ts +0 -22
  265. package/src/collections/TagCollection.test.ts +0 -443
  266. package/src/collections/TagCollection.ts +0 -62
  267. package/src/errors/SchemaError.ts +0 -6
  268. package/src/errors/index.ts +0 -1
  269. package/src/expressions/parser.test.ts +0 -913
  270. package/src/expressions/utils.test.ts +0 -346
  271. package/src/expressions/utils.ts +0 -59
  272. package/src/performance/index.ts +0 -26
  273. package/src/pipeline/SyncronousQueue.test.ts +0 -269
  274. package/src/pipeline/SyncronousQueue.ts +0 -30
  275. package/src/pipeline/TrampolinePipeline.test.ts +0 -374
  276. package/src/pipeline/index.ts +0 -2
  277. package/src/plugins/EphemeralDataPlugin.ts +0 -132
  278. package/src/plugins/capabilities/DbPluginCapability.ts +0 -111
  279. package/src/plugins/capabilities/logging/DbPluginLoggingCapability.ts +0 -261
  280. package/src/plugins/capabilities/logging/index.ts +0 -1
  281. package/src/plugins/query/Query.ts +0 -67
  282. package/src/plugins/query/QueryOptionsCollection.test.ts +0 -86
  283. package/src/plugins/query/QueryOptionsCollection.ts +0 -154
  284. package/src/plugins/replication/OptimisticReplicationDbPlugin.ts +0 -202
  285. package/src/plugins/replication/ReplicationDbPlugin.ts +0 -137
  286. package/src/plugins/translators/DataTranslator.ts +0 -46
  287. package/src/plugins/translators/JsonTranslator.test.ts +0 -618
  288. package/src/plugins/translators/JsonTranslator.ts +0 -211
  289. package/src/plugins/translators/SqlTranslator.ts +0 -45
  290. package/src/results/Result.ts +0 -91
  291. package/src/results/utils.ts +0 -15
  292. package/src/schema/PropertyInfo.test.ts +0 -479
  293. package/src/schema/PropertyInfo.ts +0 -374
  294. package/src/schema/SchemaDefinition.ts +0 -626
  295. package/src/schema/builder.ts +0 -18
  296. package/src/schema/property/base/SchemaBase.ts +0 -49
  297. package/src/schema/property/base/index.ts +0 -1
  298. package/src/schema/property/modifiers/SchemaDefault.ts +0 -29
  299. package/src/schema/property/modifiers/SchemaDeserialize.ts +0 -23
  300. package/src/schema/property/modifiers/SchemaDistinct.ts +0 -14
  301. package/src/schema/property/modifiers/SchemaFrom.ts +0 -54
  302. package/src/schema/property/modifiers/SchemaIdentity.ts +0 -13
  303. package/src/schema/property/modifiers/SchemaIndex.ts +0 -60
  304. package/src/schema/property/modifiers/SchemaKey.ts +0 -28
  305. package/src/schema/property/modifiers/SchemaNullable.ts +0 -18
  306. package/src/schema/property/modifiers/SchemaOptional.ts +0 -19
  307. package/src/schema/property/modifiers/SchemaReadonly.ts +0 -34
  308. package/src/schema/property/modifiers/SchemaSerialize.ts +0 -18
  309. package/src/schema/property/modifiers/SchemaTracked.ts +0 -14
  310. package/src/schema/property/types/SchemaArray.ts +0 -50
  311. package/src/schema/property/types/SchemaBoolean.ts +0 -59
  312. package/src/schema/property/types/SchemaDate.ts +0 -58
  313. package/src/schema/property/types/SchemaNumber.ts +0 -69
  314. package/src/schema/property/types/SchemaObject.ts +0 -44
  315. package/src/schema/property/types/SchemaString.ts +0 -69
  316. package/src/schema/table/SchemaComputed.ts +0 -20
  317. package/src/schema/table/SchemaFunction.ts +0 -15
  318. package/src/utilities/arrays.test.ts +0 -312
  319. package/src/utilities/arrays.ts +0 -12
  320. package/src/utilities/dates.test.ts +0 -388
  321. package/src/utilities/dates.ts +0 -11
  322. package/src/utilities/dbPluginEventUtils.ts +0 -44
  323. package/src/utilities/objects.ts +0 -7
  324. package/src/utilities/queryOptionsCollection.ts +0 -16
  325. package/src/utilities/replication.ts +0 -23
  326. package/src/utilities/runtime.ts +0 -3
  327. package/src/utilities/strings.ts +0 -18
  328. package/src/utilities/types.ts +0 -1
  329. package/src/utilities/uuid.ts +0 -56
  330. package/tsconfig.json +0 -28
  331. package/vitest.config.ts +0 -11
@@ -1,11 +0,0 @@
1
- import { HashTypeValueHandler } from "./hashType/HashTypeValueHandler";
2
-
3
- /// Purpose:
4
- export class HashTypeHandlerBuilder {
5
-
6
- build() {
7
- const handler = new HashTypeValueHandler();
8
-
9
- return handler;
10
- }
11
- }
@@ -1,10 +0,0 @@
1
- import { IdSelectorValueHandler } from "./idSelector/IdSelectorValueHandler";
2
- /// Purpose:
3
- export class IdSelectorHandlerBuilder {
4
-
5
- build() {
6
- const handler = new IdSelectorValueHandler();
7
-
8
- return handler;
9
- }
10
- }
@@ -1,19 +0,0 @@
1
- import { MergeDefaultFunctionHandler } from "./merge/MergeDefaultFunctionHandler";
2
- import { MergePrimitiveHandler } from "./merge/MergePrimitiveHandler";
3
- import { MergeComputedValueHandler } from "./merge/MergeComputedValueHandler";
4
- import { MergeDefaultValueHandler } from "./merge/MergeDefaultValueHandler";
5
- import { MergeFunctionHandler } from "./merge/MergeFunctionHandler";
6
-
7
- /// Purpose: Should recompute computed properties
8
- export class MergeHandlerBuilder {
9
-
10
- build() {
11
- const handler = new MergeDefaultFunctionHandler();
12
- handler.setNext(new MergeDefaultValueHandler())
13
- .setNext(new MergeFunctionHandler())
14
- .setNext(new MergeComputedValueHandler())
15
- .setNext(new MergePrimitiveHandler());
16
-
17
- return handler;
18
- }
19
- }
@@ -1,23 +0,0 @@
1
- import { PrepareIdentityHandler } from "./prepare/PrepareIdentityHandler";
2
- import { PrepareKeyHandler } from "./prepare/PrepareKeyHandler";
3
- import { PrepareValueHandler } from "./prepare/PrepareValueHandler";
4
- import { PrepareObjectHandler } from "./prepare/PrepareObjectHandler";
5
- import { PrepareComputedValueHandler } from "./prepare/PrepareComputedValueHandler";
6
- import { PrepareFunctionHandler } from "./prepare/PrepareFunctionHandler";
7
-
8
- /// Purpose: Called before we save entities to the database. Responsible for cleaning up
9
- /// an entity before it is sent to the plugin
10
- export class PrepareHandlerBuilder {
11
-
12
- build() {
13
- const handler = new PrepareIdentityHandler();
14
- handler
15
- .setNext(new PrepareFunctionHandler())
16
- .setNext(new PrepareComputedValueHandler())
17
- .setNext(new PrepareKeyHandler())
18
- .setNext(new PrepareObjectHandler())
19
- .setNext(new PrepareValueHandler());
20
-
21
- return handler;
22
- }
23
- }
@@ -1,15 +0,0 @@
1
- import { SerializeDateHandler } from "./serialize/SerializeDateHandler";
2
- import { SerializeObjectHandler } from "./serialize/SerializeObjectHandler";
3
- import { SerializeValueHandler } from "./serialize/SerializeValueHandler";
4
-
5
- /// Purpose:
6
- export class SerializeHandlerBuilder {
7
-
8
- build() {
9
- const handler = new SerializeDateHandler();
10
- handler.setNext(new SerializeValueHandler())
11
- .setNext(new SerializeObjectHandler());
12
-
13
- return handler;
14
- }
15
- }
@@ -1,18 +0,0 @@
1
- import { StripObjectHandler } from "./strip/StripObjectHandler";
2
- import { StripValueHandler } from "./strip/StripValueHandler";
3
- import { StripKeyHandler } from "./strip/StripKeyHandler";
4
- import { StripIdentityHandler } from "./strip/StripIdentityHandler";
5
-
6
- /// Purpose:
7
- export class StripHandlerBuilder {
8
-
9
- build() {
10
- const handler = new StripIdentityHandler();
11
-
12
- handler.setNext(new StripKeyHandler())
13
- .setNext(new StripObjectHandler())
14
- .setNext(new StripValueHandler());
15
-
16
- return handler;
17
- }
18
- }
@@ -1,29 +0,0 @@
1
- import { CodeBuilder, ObjectBuilder } from '../../blocks';
2
- import { SlotPath } from '../../SlotPath';
3
- import { PropertyInfoHandler } from "../types";
4
- import { PropertyInfo, SchemaTypes } from "../../../schema";
5
-
6
- export class CloneObjectHandler extends PropertyInfoHandler {
7
-
8
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
9
-
10
- if (property.type === SchemaTypes.Object) {
11
- const slotPath = new SlotPath("result.variable.object");
12
- let objectBuilder = builder.get<ObjectBuilder>(slotPath.get());
13
-
14
- if (property.parent == null) {
15
- objectBuilder.nested(property.name, property.name)
16
-
17
- return builder;
18
- }
19
-
20
- slotPath.push(...property.getParentPathArray());
21
- const nestedObjectBuilder = builder.get<ObjectBuilder>(slotPath.get());
22
- nestedObjectBuilder.nested(property.name, property.name)
23
-
24
- return builder;
25
- }
26
-
27
- return super.handle(property, builder);
28
- }
29
- }
@@ -1,33 +0,0 @@
1
- import { CodeBuilder, ObjectBuilder, SlotBlock } from '../../blocks';
2
- import { SlotPath } from '../../SlotPath';
3
- import { PropertyInfoHandler } from "../types";
4
- import { PropertyInfo, SchemaTypes } from "../../../schema";
5
-
6
- export class CloneValueHandler extends PropertyInfoHandler {
7
-
8
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
9
-
10
- if (property.type != SchemaTypes.Object) {
11
- let objectBuilder = builder.getOrDefault<ObjectBuilder>("result.variable.object");
12
- const entitySelectorPath = property.getAssignmentPath({ parent: "entity" });
13
-
14
- if (objectBuilder == null) {
15
- objectBuilder = builder.get<SlotBlock>("result")
16
- .assign("const result", { name: "variable" })
17
- .object({ name: "object" });
18
- }
19
-
20
- if (property.parent == null) {
21
- objectBuilder.property(`${property.name}: ${entitySelectorPath}`);
22
- return builder;
23
- }
24
-
25
- const slotPath = new SlotPath(...property.getParentPathArray());
26
- objectBuilder = objectBuilder.get<ObjectBuilder>(slotPath.get());
27
- objectBuilder.property(`${property.name}: ${entitySelectorPath}`);
28
- return builder;
29
- }
30
-
31
- return super.handle(property, builder);
32
- }
33
- }
@@ -1,15 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class CompareObjectHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.type === SchemaTypes.Object) {
10
- return builder;
11
- }
12
-
13
- return super.handle(property, builder);
14
- }
15
- }
@@ -1,27 +0,0 @@
1
- import { AndBuilder, CodeBuilder, SlotBlock } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class CompareValueHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.type != SchemaTypes.Object) {
10
- let compare = builder.getOrDefault<AndBuilder>("result.variable.compare");
11
- const leftCompare = property.getSelectrorPath({ parent: "a" });
12
- const rightCompare = property.getSelectrorPath({ parent: "b" });
13
-
14
- if (compare == null) {
15
- compare = builder.get<SlotBlock>("result")
16
- .assign("const result", { name: "variable" })
17
- .and(`${leftCompare} === ${rightCompare}`, { name: "compare" });
18
- return builder;
19
- }
20
-
21
- compare.and(`${leftCompare} === ${rightCompare}`);
22
- return builder;
23
- }
24
-
25
- return super.handle(property, builder);
26
- }
27
- }
@@ -1,16 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class DeserializeComputedValueHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- // Do nothing with the value
10
- if (property.functionBody != null && property.type === SchemaTypes.Computed && property.isUnmapped === true) {
11
- return builder;
12
- }
13
-
14
- return super.handle(property, builder);
15
- }
16
- }
@@ -1,45 +0,0 @@
1
- import { CodeBuilder, ContainerBlock, ObjectBuilder } from '../../blocks';
2
- import { SlotPath } from '../../SlotPath';
3
- import { PropertyInfoHandler } from "../types";
4
- import { PropertyInfo, SchemaTypes } from "../../../schema";
5
-
6
- /**
7
- * Handles converting a string value from a database to a Date value
8
- */
9
- export class DeserializeDateHandler extends PropertyInfoHandler {
10
-
11
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
12
-
13
- if (property.type === SchemaTypes.Date) {
14
- const slotPath = new SlotPath("result.variable.object");
15
- let objectBuilder = builder.get<ObjectBuilder>(slotPath.get());
16
- const entitySelectorPath = property.getSelectrorPath({ parent: "entity" });
17
- const entityAssignmentPath = property.getAssignmentPath({ parent: "result" });
18
- const assignment = `${property.name}: typeof ${entitySelectorPath} === "string" ? new Date(${entitySelectorPath}) : ${entitySelectorPath}`;
19
-
20
- // if it is nullable or optional, assign in an if block, otherwise we
21
- // could unintentionally assign null/undefined to a property that does not exist
22
- if (property.isOptional || property.isNullable) {
23
- const ifAssignment = `${entityAssignmentPath} = typeof ${entitySelectorPath} === "string" ? new Date(${entitySelectorPath}) : ${entitySelectorPath}`;
24
- const rootPath = new SlotPath("if");
25
- builder.get<ContainerBlock>(rootPath.get()).if(`${entitySelectorPath} != null`).appendBody(ifAssignment);
26
- return;
27
- }
28
-
29
- // A date cannot be a nested object, just do the assignment
30
- if (property.parent == null) {
31
- objectBuilder.property(assignment);
32
-
33
- return builder;
34
- }
35
-
36
- slotPath.push(...property.getParentPathArray());
37
- const nestedObjectBuilder = builder.get<ObjectBuilder>(slotPath.get());
38
- nestedObjectBuilder.property(assignment)
39
-
40
- return builder;
41
- }
42
-
43
- return super.handle(property, builder);
44
- }
45
- }
@@ -1,16 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class DeserializeFunctionHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.functionBody != null && property.type === SchemaTypes.Function) {
10
- // Functions are always unmapped
11
- return builder;
12
- }
13
-
14
- return super.handle(property, builder);
15
- }
16
- }
@@ -1,29 +0,0 @@
1
- import { CodeBuilder, ObjectBuilder } from '../../blocks';
2
- import { SlotPath } from '../../SlotPath';
3
- import { PropertyInfoHandler } from "../types";
4
- import { PropertyInfo, SchemaTypes } from "../../../schema";
5
-
6
- export class DeserializeObjectHandler extends PropertyInfoHandler {
7
-
8
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
9
-
10
- if (property.type === SchemaTypes.Object) {
11
- const slotPath = new SlotPath("result.variable.object");
12
- let objectBuilder = builder.get<ObjectBuilder>(slotPath.get());
13
-
14
- if (property.parent == null) {
15
- objectBuilder.nested(property.name, property.name)
16
-
17
- return builder;
18
- }
19
-
20
- slotPath.push(...property.getParentPathArray());
21
- const nestedObjectBuilder = builder.get<ObjectBuilder>(slotPath.get());
22
- nestedObjectBuilder.nested(property.name, property.name)
23
-
24
- return builder;
25
- }
26
-
27
- return super.handle(property, builder);
28
- }
29
- }
@@ -1,33 +0,0 @@
1
- import { CodeBuilder, ObjectBuilder, SlotBlock } from '../../blocks';
2
- import { SlotPath } from '../../SlotPath';
3
- import { PropertyInfoHandler } from "../types";
4
- import { PropertyInfo, SchemaTypes } from "../../../schema";
5
-
6
- export class DeserializeValueHandler extends PropertyInfoHandler {
7
-
8
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
9
-
10
- if (property.type != SchemaTypes.Object && property.type != SchemaTypes.Date) {
11
- let objectBuilder = builder.getOrDefault<ObjectBuilder>("result.variable.object");
12
- const entitySelectorPath = property.getAssignmentPath({ parent: "entity" });
13
-
14
- if (objectBuilder == null) {
15
- objectBuilder = builder.get<SlotBlock>("result")
16
- .assign("const result", { name: "variable" })
17
- .object({ name: "object" });
18
- }
19
-
20
- if (property.parent == null) {
21
- objectBuilder.property(`${property.name}: ${entitySelectorPath}`);
22
- return builder;
23
- }
24
-
25
- const slotPath = new SlotPath(...property.getParentPathArray());
26
- objectBuilder = objectBuilder.get<ObjectBuilder>(slotPath.get());
27
- objectBuilder.property(`${property.name}: ${entitySelectorPath}`);
28
- return builder;
29
- }
30
-
31
- return super.handle(property, builder);
32
- }
33
- }
@@ -1,20 +0,0 @@
1
- import { CodeBuilder, SlotBlock } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class EnableChangeTrackingObjectHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.type === SchemaTypes.Object) {
10
- const assignmentSlot = builder.get<SlotBlock>("assignment");
11
- const childSelectorPath = property.getSelectrorPath({ parent: "entity" });
12
- const childAssignmentPath = property.getAssignmentPath({ parent: "entity" });
13
-
14
- assignmentSlot.if(`${childSelectorPath} != null`).appendBody(`${childAssignmentPath} = enableChangeTracking(${childAssignmentPath});`);
15
- return builder;
16
- }
17
-
18
- return super.handle(property, builder);
19
- }
20
- }
@@ -1,15 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class EnableChangeTrackingPrimitiveValueHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.type !== SchemaTypes.Object) {
10
- return builder;
11
- }
12
-
13
- return super.handle(property, builder);
14
- }
15
- }
@@ -1,37 +0,0 @@
1
- import { CodeBuilder, FunctionFactoryBuilder, SlotBlock } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class EnrichmentComputedValueHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.functionBody != null && property.type === SchemaTypes.Computed) {
10
-
11
- const parameterNames: string[] = ["enriched", "collectionName"];
12
-
13
- if (property.injected != null) {
14
-
15
- const factory = builder.get<FunctionFactoryBuilder>("factory");
16
- const parameter = factory.createParameter(property.injected);
17
- factory.parameters(parameter);
18
-
19
- parameterNames.push(parameter.name);
20
- }
21
-
22
- const declarationsSlot = builder.get<SlotBlock>("factory.function.declarations");
23
- const defaultFunctionWithParameters = this.toNamedFunction(property.functionBody.toString(), declarationsSlot);
24
-
25
- defaultFunctionWithParameters.builder.parameters(...parameterNames.map((w, i) => ({ name: defaultFunctionWithParameters.parameters[i], callName: w })));
26
-
27
-
28
- const ifsSlot = builder.get<SlotBlock>("factory.function.ifs");
29
- const enrichedAssignmentPath = property.getAssignmentPath({ parent: "enriched" });
30
- ifsSlot.if(`${enrichedAssignmentPath} == null`).appendBody(`${enrichedAssignmentPath} = ${defaultFunctionWithParameters.builder.toCallable()}`);
31
-
32
- return builder;
33
- }
34
-
35
- return super.handle(property, builder);
36
- }
37
- }
@@ -1,50 +0,0 @@
1
- import { CodeBuilder, FunctionFactoryBuilder, SlotBlock } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo } from "../../../schema";
4
-
5
- export class EnrichmentDefaultFunctionHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.defaultValue != null && typeof property.defaultValue === "function") {
10
-
11
- this.setEnrichedProperty(property, builder);
12
-
13
- // we need to add the call for this function too, want to create an if
14
- const declarationsSlot = builder.get<SlotBlock>("factory.function.declarations");
15
-
16
- if (property.injected != null) {
17
-
18
- const factory = builder.get<FunctionFactoryBuilder>("factory");
19
-
20
- if (factory == null) {
21
- throw new Error("Error building enricher, could not find slot for factory")
22
- }
23
-
24
- const parameter = factory.createParameter(property.injected);
25
- factory.parameters(parameter);
26
-
27
- const defaultFunctionWithParameters = this.toNamedFunction(property.defaultValue.toString(), declarationsSlot);
28
- // This is ok, defaults can only inject one parameter anyways
29
- defaultFunctionWithParameters.builder.parameters(...defaultFunctionWithParameters.parameters.map(w => ({ name: w, callName: parameter.name })));
30
-
31
-
32
- const ifsSlot = builder.get<SlotBlock>("factory.function.ifs");
33
- const enrichedAssignmentPath = property.getAssignmentPath({ parent: "enriched" });
34
- ifsSlot.if(`${enrichedAssignmentPath} == null`).appendBody(`${enrichedAssignmentPath} = ${defaultFunctionWithParameters.builder.toCallable()}`);
35
-
36
- return builder;
37
- }
38
-
39
- const defaultFunction = this.toNamedFunction(property.defaultValue.toString(), declarationsSlot);
40
-
41
- const ifsSlot = builder.get<SlotBlock>("factory.function.ifs");
42
- const enrichedAssignmentPath = property.getAssignmentPath({ parent: "enriched" });
43
- ifsSlot.if(`${enrichedAssignmentPath} == null`).appendBody(`${enrichedAssignmentPath} = ${defaultFunction.builder.toCallable()}`);
44
-
45
- return builder;
46
- }
47
-
48
- return super.handle(property, builder);
49
- }
50
- }
@@ -1,18 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo } from "../../../schema";
4
-
5
- export class EnrichmentDefaultValueHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.defaultValue != null && typeof property.defaultValue !== "function") {
10
-
11
- this.setEnrichedProperty(property, builder);
12
-
13
- return builder;
14
- }
15
-
16
- return super.handle(property, builder);
17
- }
18
- }
@@ -1,38 +0,0 @@
1
- import { CodeBuilder, FunctionFactoryBuilder, SlotBlock } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class EnrichmentFunctionHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.functionBody != null && property.type === SchemaTypes.Function) {
10
-
11
- const parameterNames: string[] = ["enriched", "collectionName"];
12
-
13
- if (property.injected != null) {
14
-
15
- const factory = builder.get<FunctionFactoryBuilder>("factory");
16
- const parameter = factory.createParameter(property.injected);
17
- factory.parameters(parameter);
18
-
19
- parameterNames.push(parameter.name);
20
- }
21
-
22
-
23
- const declarationsSlot = builder.get<SlotBlock>("factory.function.declarations");
24
- // Unwrap the functions to removing currying
25
- const defaultFunctionWithParameters = this.toNamedFunction(property.functionBody.toString(), declarationsSlot);
26
-
27
- defaultFunctionWithParameters.builder.parameters(...parameterNames.map((w, i) => ({ name: defaultFunctionWithParameters.parameters[i], callName: w })));
28
-
29
- const slot = builder.get<SlotBlock>("factory.function.assignment");
30
- const enrichedAssignmentPath = property.getAssignmentPath({ parent: "enriched" });
31
-
32
- slot.assign(enrichedAssignmentPath).value(defaultFunctionWithParameters.builder.toCallable());
33
- return builder;
34
- }
35
-
36
- return super.handle(property, builder);
37
- }
38
- }
@@ -1,44 +0,0 @@
1
- import { CodeBuilder, ObjectBuilder, SlotBlock } from '../../blocks';
2
- import { SlotPath } from '../../SlotPath';
3
- import { PropertyInfoHandler } from "../types";
4
- import { PropertyInfo, SchemaTypes } from "../../../schema";
5
-
6
- export class EnrichmentNullableObjectHandler extends PropertyInfoHandler {
7
-
8
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
9
-
10
- if (property.type === SchemaTypes.Object && (property.isNullable || property.isOptional)) {
11
-
12
- const slotPath = new SlotPath("factory", "function", "enriched", "object", "enriched");
13
- const nestedSlotPath = this.buildSlotPath(property, slotPath);
14
-
15
- // Generate null check for current level using parent relationships
16
- const entityPath = property.getSelectrorPath({ parent: "entity", assignmentType: "FORCE_NULLABLE_OR_OPTIONAL" });
17
- const enrichedPath = property.getAssignmentPath({ parent: "enriched" });
18
-
19
- const ifsSlot = builder.get<SlotBlock>("factory.function.ifs");
20
-
21
- if (ifsSlot == null) {
22
- throw new Error("Error building enricher, could not find slot for factory.function.ifs")
23
- }
24
-
25
-
26
- ifsSlot.if(`${entityPath} != null`).appendBody(`${enrichedPath} = enableChangeTracking(${enrichedPath} || {}, "${property.name}");`);
27
-
28
- let enriched = builder.getOrDefault<ObjectBuilder>(nestedSlotPath.get());
29
-
30
- if (enriched == null) {
31
- const enrichedSlot = builder.get<ObjectBuilder>(slotPath.get());
32
-
33
- if (enrichedSlot == null) {
34
- throw new Error(`Error building enricher, could not find slot for ${slotPath.get()}`)
35
- }
36
-
37
- enriched = enrichedSlot.nested(property.name, property.name);
38
- }
39
- return builder;
40
- }
41
-
42
- return super.handle(property, builder);
43
- }
44
- }
@@ -1,29 +0,0 @@
1
- import { CodeBuilder, IfBuilder, SlotBlock } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class EnrichmentObjectHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.type === SchemaTypes.Object && (property.isNullable || property.isOptional) === false) {
10
- const assignmentSlot = builder.get<SlotBlock>("factory.function.assignment");
11
- const childPath = property.getAssignmentPath({ parent: "enriched" });
12
-
13
- if (assignmentSlot == null) {
14
- throw new Error("Error building enricher, could not find slot for factory.function.assignment")
15
- }
16
-
17
- assignmentSlot.assign(childPath, { name: `[${childPath}]` }).call("enableChangeTracking", { name: "builder" });
18
-
19
- const changeTrackingSlot = builder.get<IfBuilder>("factory.function.tracking.freeze");
20
-
21
- const selectorPath = property.getSelectrorPath({ parent: "enriched" });
22
- changeTrackingSlot.if(`${selectorPath} != null`, { unshift: true }).unshiftBody(`${selectorPath} = Object.freeze(${selectorPath})`)
23
-
24
- return builder;
25
- }
26
-
27
- return super.handle(property, builder);
28
- }
29
- }
@@ -1,16 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo, SchemaTypes } from "../../../schema";
4
-
5
- export class EnrichmentObjectIdentityHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- if (property.isIdentity === true && property.type == SchemaTypes.Object) {
10
- // do nothing right now
11
- return builder;
12
- }
13
-
14
- return super.handle(property, builder);
15
- }
16
- }
@@ -1,13 +0,0 @@
1
- import { CodeBuilder } from '../../blocks';
2
- import { PropertyInfoHandler } from "../types";
3
- import { PropertyInfo } from "../../../schema";
4
-
5
- export class EnrichmentPrimitiveHandler extends PropertyInfoHandler {
6
-
7
- override handle(property: PropertyInfo<any>, builder: CodeBuilder): CodeBuilder | null {
8
-
9
- this.setEnrichedProperty(property, builder);
10
-
11
- return builder;
12
- }
13
- }