pure-orm 4.0.0-4 → 4.0.0-7

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 (311) hide show
  1. package/README.md +11 -11
  2. package/coverage/clover.xml +367 -581
  3. package/coverage/coverage-final.json +18 -20
  4. package/coverage/lcov-report/dist/src/core.js.html +1014 -0
  5. package/coverage/lcov-report/dist/src/drivers/index.html +97 -0
  6. package/coverage/lcov-report/dist/src/drivers/pgp.js.html +240 -0
  7. package/coverage/lcov-report/dist/src/factory.js.html +298 -187
  8. package/coverage/lcov-report/dist/src/index.html +20 -33
  9. package/coverage/lcov-report/dist/src/index.js.html +16 -10
  10. package/coverage/lcov-report/dist/src/orm.js.html +645 -0
  11. package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +108 -0
  12. package/coverage/lcov-report/dist/test-utils/blog/index.html +6 -6
  13. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
  14. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
  15. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  16. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
  17. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
  18. package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/entities.js.html +114 -0
  20. package/coverage/lcov-report/dist/test-utils/five/index.html +6 -6
  21. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  22. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
  23. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  26. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  27. package/coverage/lcov-report/dist/test-utils/five/orm.js.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +84 -0
  29. package/coverage/lcov-report/dist/test-utils/nine/index.html +6 -6
  30. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/order/entities.js.html +114 -0
  34. package/coverage/lcov-report/dist/test-utils/order/index.html +6 -6
  35. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
  39. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
  40. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
  41. package/coverage/lcov-report/dist/test-utils/order/orm.js.html +1 -1
  42. package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +204 -0
  43. package/coverage/lcov-report/dist/test-utils/order-more/index.html +6 -6
  44. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
  56. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
  57. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
  58. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
  59. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
  60. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
  61. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
  62. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
  63. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
  64. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
  65. package/coverage/lcov-report/dist/test-utils/order-more/orm.js.html +1 -1
  66. package/coverage/lcov-report/dist/test-utils/six/entities.js.html +114 -0
  67. package/coverage/lcov-report/dist/test-utils/six/index.html +6 -6
  68. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
  70. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
  71. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
  72. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
  73. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
  74. package/coverage/lcov-report/dist/test-utils/six/orm.js.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/entities.js.html +132 -0
  76. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +6 -6
  77. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  79. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
  81. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  83. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  85. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  86. package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +1 -1
  87. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  88. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  89. package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +87 -0
  90. package/coverage/lcov-report/dist/test-utils/twelve/index.html +6 -6
  91. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  92. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  93. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  94. package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +1 -1
  95. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  96. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  97. package/coverage/lcov-report/index.html +47 -47
  98. package/coverage/lcov-report/src/core.ts.html +1527 -0
  99. package/coverage/lcov-report/src/drivers/index.html +97 -0
  100. package/coverage/lcov-report/src/drivers/pgp.ts.html +516 -0
  101. package/coverage/lcov-report/src/factory.ts.html +448 -247
  102. package/coverage/lcov-report/src/index.html +20 -33
  103. package/coverage/lcov-report/src/index.ts.html +23 -5
  104. package/coverage/lcov-report/src/orm.ts.html +954 -0
  105. package/coverage/lcov-report/test-utils/blog/entities.ts.html +102 -0
  106. package/coverage/lcov-report/test-utils/blog/index.html +6 -6
  107. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
  108. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
  109. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
  111. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/blog/orm.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/five/entities.ts.html +105 -0
  114. package/coverage/lcov-report/test-utils/five/index.html +2 -2
  115. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  116. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  117. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  118. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  119. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  120. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/five/orm.ts.html +1 -1
  122. package/coverage/lcov-report/test-utils/nine/entities.ts.html +75 -0
  123. package/coverage/lcov-report/test-utils/nine/index.html +2 -2
  124. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  125. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  126. package/coverage/lcov-report/test-utils/nine/orm.ts.html +1 -1
  127. package/coverage/lcov-report/test-utils/order/entities.ts.html +108 -0
  128. package/coverage/lcov-report/test-utils/order/index.html +2 -2
  129. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  130. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
  131. package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
  132. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
  134. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order/orm.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/entities.ts.html +198 -0
  137. package/coverage/lcov-report/test-utils/order-more/index.html +2 -2
  138. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  139. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  140. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  142. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  143. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  147. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  148. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  152. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  157. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  158. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  159. package/coverage/lcov-report/test-utils/order-more/orm.ts.html +1 -1
  160. package/coverage/lcov-report/test-utils/six/entities.ts.html +105 -0
  161. package/coverage/lcov-report/test-utils/six/index.html +2 -2
  162. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  164. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  165. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  166. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  167. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  168. package/coverage/lcov-report/test-utils/six/orm.ts.html +1 -1
  169. package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +123 -0
  170. package/coverage/lcov-report/test-utils/thirteen/index.html +2 -2
  171. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  172. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  173. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  174. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  175. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  176. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  177. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  178. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  179. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  180. package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +1 -1
  181. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  182. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  183. package/coverage/lcov-report/test-utils/twelve/entities.ts.html +78 -0
  184. package/coverage/lcov-report/test-utils/twelve/index.html +2 -2
  185. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  186. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  187. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  188. package/coverage/lcov-report/test-utils/twelve/orm.ts.html +1 -1
  189. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  190. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  191. package/coverage/lcov.info +713 -1142
  192. package/dist/example/factories/orm.d.ts +1 -46
  193. package/dist/example/models/employer.d.ts +1 -1
  194. package/dist/example/models/job.d.ts +1 -1
  195. package/dist/example/models/person.d.ts +1 -1
  196. package/dist/src/core.d.ts +66 -0
  197. package/dist/src/{factory.js → core.js} +43 -240
  198. package/dist/src/{factory.spec.d.ts → core.spec.d.ts} +0 -0
  199. package/dist/src/{factory.spec.js → core.spec.js} +56 -43
  200. package/dist/src/driver-integrations/index.d.ts +13 -0
  201. package/dist/src/driver-integrations/index.js +2 -0
  202. package/dist/src/driver-integrations/pgp.d.ts +2 -0
  203. package/dist/src/driver-integrations/pgp.js +57 -0
  204. package/dist/src/index.d.ts +2 -1
  205. package/dist/src/index.js +5 -3
  206. package/dist/src/orm.d.ts +20 -0
  207. package/dist/src/orm.js +190 -0
  208. package/dist/test-utils/blog/entities.d.ts +1 -0
  209. package/dist/test-utils/blog/{orm.js → entities.js} +7 -6
  210. package/dist/test-utils/blog/{orm.ts → entities.ts} +6 -6
  211. package/dist/test-utils/blog/models/article.d.ts +1 -1
  212. package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
  213. package/dist/test-utils/blog/models/person.d.ts +1 -1
  214. package/dist/test-utils/blog/models/tag.d.ts +1 -1
  215. package/dist/test-utils/five/entities.d.ts +6 -0
  216. package/dist/test-utils/five/{orm.js → entities.js} +8 -12
  217. package/dist/test-utils/five/{orm.ts → entities.ts} +7 -12
  218. package/dist/test-utils/five/models/line-item.d.ts +1 -1
  219. package/dist/test-utils/five/models/order.d.ts +1 -1
  220. package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
  221. package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
  222. package/dist/test-utils/five/models/parcel.d.ts +1 -1
  223. package/dist/test-utils/nine/entities.d.ts +6 -0
  224. package/dist/test-utils/nine/entities.js +5 -0
  225. package/dist/test-utils/nine/entities.ts +2 -0
  226. package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
  227. package/dist/test-utils/order/entities.d.ts +26 -0
  228. package/dist/test-utils/order/{orm.js → entities.js} +8 -12
  229. package/{test-utils/order/orm.ts → dist/test-utils/order/entities.ts} +7 -12
  230. package/dist/test-utils/order/models/line-item.d.ts +1 -1
  231. package/dist/test-utils/order/models/order.d.ts +1 -1
  232. package/dist/test-utils/order/models/product-variant.d.ts +1 -1
  233. package/dist/test-utils/order/models/product.d.ts +1 -1
  234. package/dist/test-utils/order/models/utm-source.d.ts +1 -1
  235. package/dist/test-utils/order-more/entities.d.ts +6 -0
  236. package/dist/test-utils/order-more/{orm.js → entities.js} +23 -27
  237. package/dist/test-utils/order-more/{orm.ts → entities.ts} +22 -27
  238. package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
  239. package/dist/test-utils/order-more/models/color.d.ts +1 -1
  240. package/dist/test-utils/order-more/models/customer.d.ts +1 -1
  241. package/dist/test-utils/order-more/models/gender.d.ts +1 -1
  242. package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
  243. package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
  244. package/dist/test-utils/order-more/models/order.d.ts +1 -1
  245. package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
  246. package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
  247. package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
  248. package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
  249. package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
  250. package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
  251. package/dist/test-utils/order-more/models/product.d.ts +1 -1
  252. package/dist/test-utils/order-more/models/refund.d.ts +1 -1
  253. package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
  254. package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
  255. package/dist/test-utils/order-more/models/size.d.ts +1 -1
  256. package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
  257. package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
  258. package/dist/test-utils/six/entities.d.ts +6 -0
  259. package/dist/test-utils/six/{orm.js → entities.js} +8 -12
  260. package/{test-utils/six/orm.ts → dist/test-utils/six/entities.ts} +7 -12
  261. package/dist/test-utils/six/models/customer.d.ts +1 -1
  262. package/dist/test-utils/six/models/line-item.d.ts +1 -1
  263. package/dist/test-utils/six/models/order.d.ts +1 -1
  264. package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
  265. package/dist/test-utils/six/models/parcel.d.ts +1 -1
  266. package/dist/test-utils/thirteen/entities.d.ts +6 -0
  267. package/dist/test-utils/thirteen/{orm.js → entities.js} +11 -15
  268. package/dist/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
  269. package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
  270. package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
  271. package/dist/test-utils/thirteen/models/category.d.ts +1 -1
  272. package/dist/test-utils/thirteen/models/member.d.ts +1 -1
  273. package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
  274. package/dist/test-utils/thirteen/models/product.d.ts +1 -1
  275. package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
  276. package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
  277. package/dist/test-utils/twelve/entities.d.ts +6 -0
  278. package/dist/test-utils/twelve/entities.js +6 -0
  279. package/dist/test-utils/twelve/entities.ts +3 -0
  280. package/dist/test-utils/twelve/models/member.d.ts +1 -1
  281. package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
  282. package/package.json +4 -3
  283. package/src/{factory.spec.ts → core.spec.ts} +55 -41
  284. package/src/{factory.ts → core.ts} +86 -339
  285. package/src/driver-integrations/index.ts +56 -0
  286. package/src/driver-integrations/pgp.ts +92 -0
  287. package/src/index.ts +5 -3
  288. package/src/orm.ts +291 -0
  289. package/test-utils/blog/{orm.ts → entities.ts} +6 -6
  290. package/test-utils/five/{orm.ts → entities.ts} +7 -12
  291. package/test-utils/nine/entities.ts +2 -0
  292. package/{dist/test-utils/order/orm.ts → test-utils/order/entities.ts} +7 -12
  293. package/test-utils/order-more/{orm.ts → entities.ts} +22 -27
  294. package/{dist/test-utils/six/orm.ts → test-utils/six/entities.ts} +7 -12
  295. package/test-utils/thirteen/{orm.ts → entities.ts} +10 -15
  296. package/test-utils/twelve/entities.ts +3 -0
  297. package/dist/src/factory.d.ts +0 -99
  298. package/dist/test-utils/blog/orm.d.ts +0 -2
  299. package/dist/test-utils/five/orm.d.ts +0 -47
  300. package/dist/test-utils/nine/orm.d.ts +0 -47
  301. package/dist/test-utils/nine/orm.js +0 -9
  302. package/dist/test-utils/nine/orm.ts +0 -7
  303. package/dist/test-utils/order/orm.d.ts +0 -47
  304. package/dist/test-utils/order-more/orm.d.ts +0 -47
  305. package/dist/test-utils/six/orm.d.ts +0 -47
  306. package/dist/test-utils/thirteen/orm.d.ts +0 -47
  307. package/dist/test-utils/twelve/orm.d.ts +0 -47
  308. package/dist/test-utils/twelve/orm.js +0 -10
  309. package/dist/test-utils/twelve/orm.ts +0 -8
  310. package/test-utils/nine/orm.ts +0 -7
  311. package/test-utils/twelve/orm.ts +0 -8
@@ -1,47 +1,2 @@
1
- declare const orm: {
2
- nestClump: (clump: import("../../src/factory").IModel[][]) => object;
3
- clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
4
- mapToBos: (objectified: any) => any[];
5
- objectifyDatabaseResult: (result: object) => any;
6
- createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: object | object[]) => T | undefined;
7
- createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
8
- createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
9
- createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
10
- getSqlInsertParts: (model: import("../../src/factory").IModel) => {
11
- columns: string;
12
- values: any[];
13
- valuesVar: string[];
14
- };
15
- getSqlUpdateParts: (model: import("../../src/factory").IModel, on?: string) => {
16
- clause: string;
17
- idVar: string;
18
- values: any[];
19
- };
20
- getMatchingParts: (model: import("../../src/factory").IModel) => {
21
- whereClause: string;
22
- values: any[];
23
- };
24
- getMatchingPartsObject: (model: import("../../src/factory").IModel) => {
25
- whereClause: string;
26
- values: any;
27
- };
28
- getNewWith: (model: import("../../src/factory").IModel, sqlColumns: any, values: any) => any;
29
- getValueBySqlColumn: (model: import("../../src/factory").IModel, sqlColumn: string) => any;
30
- one: <T_4 extends import("../../src/factory").IModel>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => T_4;
31
- oneOrNone: <T_5 extends import("../../src/factory").IModel>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => void | T_5;
32
- many: <T_6 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => T_6;
33
- any: <T_7 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => void | T_7;
34
- none: (query: string, values?: object | undefined, errorHandler?: (err: Error) => never) => void;
35
- create: <T_8 extends import("../../src/factory").IModel>(model: T_8) => T_8;
36
- update: <T_9 extends import("../../src/factory").IModel>(model: T_9, { on }?: {
37
- on?: string | undefined;
38
- }) => T_9;
39
- delete: <T_10 extends import("../../src/factory").IModel>(model: T_10) => void;
40
- deleteMatching: <T_11 extends import("../../src/factory").IModel>(model: T_11) => void;
41
- getMatching: <T_12 extends import("../../src/factory").IModel>(model: T_12) => T_12;
42
- getOneOrNoneMatching: <T_13 extends import("../../src/factory").IModel>(model: T_13) => void | T_13;
43
- getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
44
- getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
45
- tables: any;
46
- };
1
+ declare const orm: import("../../src/orm").IPureORM;
47
2
  export default orm;
@@ -16,7 +16,7 @@ export declare class Employers implements ICollection<Employer> {
16
16
  }
17
17
  export declare const employerEntity: {
18
18
  tableName: string;
19
- columns: import("../../src/factory").IColumn[];
19
+ columns: import("../../src/core").IColumn[];
20
20
  Model: typeof Employer;
21
21
  Collection: typeof Employers;
22
22
  };
@@ -28,7 +28,7 @@ export declare class Jobs implements ICollection<Job> {
28
28
  }
29
29
  export declare const jobEntity: {
30
30
  tableName: string;
31
- columns: import("../../src/factory").IColumn[];
31
+ columns: import("../../src/core").IColumn[];
32
32
  Model: typeof Job;
33
33
  Collection: typeof Jobs;
34
34
  };
@@ -18,7 +18,7 @@ export declare class Persons implements ICollection<Person> {
18
18
  }
19
19
  export declare const personEntity: {
20
20
  tableName: string;
21
- columns: import("../../src/factory").IColumn[];
21
+ columns: import("../../src/core").IColumn[];
22
22
  Model: typeof Person;
23
23
  Collection: typeof Persons;
24
24
  };
@@ -0,0 +1,66 @@
1
+ export interface IColumnData {
2
+ column: string;
3
+ property?: string;
4
+ references?: IModelClass;
5
+ primaryKey?: boolean;
6
+ }
7
+ export declare type IColumn = IColumnData | string;
8
+ export declare type IColumns = Array<IColumn> | (() => Array<IColumn>);
9
+ export interface IColumnInternalData {
10
+ column: string;
11
+ property: string;
12
+ references?: IModelClass;
13
+ primaryKey: boolean;
14
+ }
15
+ export declare type IColumnInternal = IColumnInternalData;
16
+ export declare type IColumnsInternal = Array<IColumnInternal>;
17
+ export interface IModel {
18
+ [key: string]: any;
19
+ }
20
+ export declare type IModelClass = new (props: any) => IModel;
21
+ export interface ICollection<T extends IModel> {
22
+ models: Array<T>;
23
+ }
24
+ export interface IEntity<T extends IModel> {
25
+ tableName: string;
26
+ displayName?: string;
27
+ collectionDisplayName?: string;
28
+ columns: IColumns;
29
+ Model: new (props: any) => T;
30
+ Collection: new ({ models }: any) => ICollection<T>;
31
+ }
32
+ export declare type IEntities<T extends IModel> = Array<IEntity<T>>;
33
+ export interface IEntityInternal<T extends IModel> {
34
+ tableName: string;
35
+ displayName: string;
36
+ collectionDisplayName: string;
37
+ columns: IColumnsInternal;
38
+ propertyNames: Array<string>;
39
+ Model: new (props: any) => T;
40
+ Collection: new ({ models }: any) => ICollection<T>;
41
+ columnNames: Array<string>;
42
+ prefixedColumnNames: Array<string>;
43
+ primaryKeys: Array<string>;
44
+ references: object;
45
+ selectColumnsClause: string;
46
+ getPkId: (model: IModel) => string;
47
+ }
48
+ export declare type IEntitiesInternal<T extends IModel> = Array<IEntityInternal<T>>;
49
+ export interface ICreateCoreOptions {
50
+ entities: IEntities<IModel>;
51
+ }
52
+ export interface ICore {
53
+ createFromDatabase: <T extends ICollection<IModel>>(rows: any) => T;
54
+ createAnyFromDatabase: <T extends ICollection<IModel>>(rows: any, rootKey: string | IModel) => T;
55
+ createOneFromDatabase: <T extends IModel>(rows: any) => T;
56
+ createOneOrNoneFromDatabase: <T extends IModel>(rows: any) => T | void;
57
+ createManyFromDatabase: <T extends ICollection<IModel>>(rows: any) => T;
58
+ tables: {
59
+ [key: string]: {
60
+ columns: string;
61
+ };
62
+ };
63
+ getEntityByModel: (model: IModel) => IEntityInternal<IModel>;
64
+ getEntityByTableName: (tableName: string) => IEntityInternal<IModel>;
65
+ }
66
+ export declare const createCore: ({ entities: externalEntities }: ICreateCoreOptions) => ICore;
@@ -1,21 +1,24 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.create = void 0;
4
- const camelCase = require('camelcase');
5
- const create = ({ entities: externalEntities, db, logError }) => {
6
+ exports.createCore = void 0;
7
+ const camelcase_1 = __importDefault(require("camelcase"));
8
+ const createCore = ({ entities: externalEntities }) => {
6
9
  const entities = externalEntities.map((d) => {
7
10
  const tableName = d.tableName;
8
- const displayName = d.displayName || camelCase(d.tableName);
11
+ const displayName = d.displayName || (0, camelcase_1.default)(d.tableName);
9
12
  const collectionDisplayName = d.collectionDisplayName || `${displayName}s`;
10
13
  const columns = (typeof d.columns === 'function' ? d.columns() : d.columns).map((d) => {
11
14
  if (typeof d === 'string') {
12
15
  return {
13
16
  column: d,
14
- property: camelCase(d),
17
+ property: (0, camelcase_1.default)(d),
15
18
  primaryKey: false
16
19
  };
17
20
  }
18
- return Object.assign({ column: d.column, property: d.property || camelCase(d.column), primaryKey: d.primaryKey || false }, (d.references ? { references: d.references } : {}));
21
+ return Object.assign({ column: d.column, property: d.property || (0, camelcase_1.default)(d.column), primaryKey: d.primaryKey || false }, (d.references ? { references: d.references } : {}));
19
22
  });
20
23
  const propertyNames = columns.map((x) => x.property);
21
24
  const columnNames = columns.map((x) => x.column);
@@ -69,14 +72,6 @@ const create = ({ entities: externalEntities, db, logError }) => {
69
72
  }
70
73
  return entity;
71
74
  };
72
- const defaultErrorHandler = (err) => {
73
- if (!(err.name === 'QueryResultError')) {
74
- if (logError) {
75
- logError(err);
76
- }
77
- }
78
- throw err;
79
- };
80
75
  /*
81
76
  * In:
82
77
  * [
@@ -229,7 +224,7 @@ const create = ({ entities: externalEntities, db, logError }) => {
229
224
  let propertyName = entity.propertyNames[entity.columnNames.indexOf(column)];
230
225
  if (!propertyName) {
231
226
  if (column.startsWith('meta_')) {
232
- propertyName = camelCase(column);
227
+ propertyName = (0, camelcase_1.default)(column);
233
228
  }
234
229
  else {
235
230
  throw Error(`No property name for "${column}" in business object "${entity.displayName}". Non-spec'd columns must begin with "meta_".`);
@@ -249,27 +244,39 @@ const create = ({ entities: externalEntities, db, logError }) => {
249
244
  return Object.keys(result).reduce((obj, text) => {
250
245
  const tableName = text.split('#')[0];
251
246
  const column = text.split('#')[1];
247
+ if (!tableName || !column) {
248
+ throw new Error('Column names must be namespaced to table');
249
+ }
252
250
  obj[tableName] = obj[tableName] || {};
253
251
  obj[tableName][column] = result[text];
254
252
  return obj;
255
253
  }, {});
256
254
  };
257
- const createFromDatabase = (_result) => {
258
- const result = Array.isArray(_result) ? _result : [_result];
255
+ const createFromDatabase = (rows) => {
256
+ const result = Array.isArray(rows) ? rows : [rows];
259
257
  const objectified = result.map(objectifyDatabaseResult);
260
258
  const boified = objectified.map(mapToBos);
261
259
  const clumps = clumpIntoGroups(boified);
262
260
  const nested = clumps.map(nestClump);
263
261
  const models = nested.map((n) => Object.values(n)[0]);
264
262
  const Collection = getEntityByModel(models[0]).Collection;
265
- return models.length ? new Collection({ models }) : void 0;
263
+ return new Collection({ models });
264
+ };
265
+ const createAnyFromDatabase = (rows, rootKey) => {
266
+ if (!rows || !rows.length) {
267
+ const Collection = typeof rootKey === 'string'
268
+ ? getEntityByTableName(rootKey).Collection
269
+ : getEntityByModel(rootKey).Collection;
270
+ return new Collection({ models: [] });
271
+ }
272
+ return createFromDatabase(rows);
266
273
  };
267
- const createOneFromDatabase = (_result) => {
268
- const collection = createFromDatabase(_result);
269
- if (!collection) {
274
+ const createOneFromDatabase = (rows) => {
275
+ if (!rows || !rows.length) {
270
276
  throw Error('Did not get one.');
271
277
  }
272
- if (!collection || collection.models.length === 0) {
278
+ const collection = createFromDatabase(rows);
279
+ if (!collection || !collection.models || collection.models.length === 0) {
273
280
  throw Error('Did not get one.');
274
281
  }
275
282
  else if (collection.models.length > 1) {
@@ -277,236 +284,32 @@ const create = ({ entities: externalEntities, db, logError }) => {
277
284
  }
278
285
  return collection.models[0];
279
286
  };
280
- const createOneOrNoneFromDatabase = (_result) => {
281
- if (!_result) {
282
- return _result;
287
+ const createOneOrNoneFromDatabase = (rows) => {
288
+ if (!rows || !rows.length) {
289
+ return void 0;
283
290
  }
284
- const collection = createFromDatabase(_result);
285
- if (collection && collection.models.length > 1) {
286
- throw Error('Got more than one.');
287
- }
288
- return collection && collection.models[0];
291
+ return createOneFromDatabase(rows);
289
292
  };
290
- const createManyFromDatabase = (_result) => {
291
- const collection = createFromDatabase(_result);
292
- if (!collection || collection.models.length === 0) {
293
+ const createManyFromDatabase = (rows) => {
294
+ if (!rows || !rows.length) {
293
295
  throw Error('Did not get at least one.');
294
296
  }
295
- return collection;
296
- };
297
- const getSqlInsertParts = (model) => {
298
- const columns = getEntityByModel(model)
299
- .columnNames.filter((column, index) => model[getEntityByModel(model).propertyNames[index]] !== void 0)
300
- .map((col) => `"${col}"`)
301
- .join(', ');
302
- const values = getEntityByModel(model)
303
- .propertyNames.map((property) => model[property])
304
- .filter((value) => value !== void 0);
305
- const valuesVar = values.map((value, index) => `$${index + 1}`);
306
- return { columns, values, valuesVar };
307
- };
308
- const getSqlUpdateParts = (model, on = 'id') => {
309
- const clauseArray = getEntityByModel(model)
310
- .columnNames.filter((sqlColumn, index) => model[getEntityByModel(model).propertyNames[index]] !== void 0)
311
- .map((sqlColumn, index) => `"${sqlColumn}" = $${index + 1}`);
312
- const clause = clauseArray.join(', ');
313
- const idVar = `$${clauseArray.length + 1}`;
314
- const _values = getEntityByModel(model)
315
- .propertyNames.map((property) => model[property])
316
- .filter((value) => value !== void 0);
317
- const values = [..._values, model[on]];
318
- return { clause, idVar, values };
319
- };
320
- const getMatchingParts = (model) => {
321
- const whereClause = getEntityByModel(model)
322
- .propertyNames.map((property, index) => model[property] != null
323
- ? `"${getEntityByModel(model).tableName}"."${getEntityByModel(model).columnNames[index]}"`
324
- : null)
325
- .filter((x) => x != null)
326
- .map((x, i) => `${x} = $${i + 1}`)
327
- .join(' AND ');
328
- const values = getEntityByModel(model)
329
- .propertyNames.map((property) => model[property] != null
330
- ? model[property]
331
- : null)
332
- .filter((x) => x != null);
333
- return { whereClause, values };
334
- };
335
- // This one returns an object, which allows it to be more versatile.
336
- // To-do: make this one even better and use it instead of the one above.
337
- const getMatchingPartsObject = (model) => {
338
- const whereClause = getEntityByModel(model)
339
- .propertyNames.map((property, index) => model[property] != null
340
- ? `"${getEntityByModel(model).tableName}"."${getEntityByModel(model).columnNames[index]}"`
341
- : null)
342
- .filter((x) => x != null)
343
- .map((x, i) => `${x} = $(${i + 1})`)
344
- .join(' AND ');
345
- const values = getEntityByModel(model)
346
- .propertyNames.map((property) => model[property] != null
347
- ? model[property]
348
- : null)
349
- .filter((x) => x != null)
350
- .reduce((accum, val, index) => Object.assign({}, accum, { [index + 1]: val }), {});
351
- return { whereClause, values };
352
- };
353
- const getNewWith = (model, sqlColumns, values) => {
354
- const Constructor = model.constructor;
355
- const modelKeys = sqlColumns.map((key) => getEntityByModel(model).propertyNames[getEntityByModel(model).columnNames.indexOf(key)]);
356
- const modelData = modelKeys.reduce((data, key, index) => {
357
- data[key] = values[index];
358
- return data;
359
- }, {});
360
- return new Constructor(modelData);
361
- };
362
- const getValueBySqlColumn = (model, sqlColumn) => {
363
- return model[getEntityByModel(model).propertyNames[getEntityByModel(model).columnNames.indexOf(sqlColumn)]];
364
- };
365
- /* ------------------------------------------------------------------------*/
366
- /* Query functions --------------------------------------------------------*/
367
- /* ------------------------------------------------------------------------*/
368
- const one = (query, values, errorHandler = defaultErrorHandler) => {
369
- return db
370
- .many(query, values)
371
- .then((rows) => createOneFromDatabase(rows))
372
- .catch(errorHandler);
373
- };
374
- const oneOrNone = (query, values, errorHandler = defaultErrorHandler) => {
375
- return db
376
- .any(query, values)
377
- .then((rows) => createOneOrNoneFromDatabase(rows))
378
- .catch(errorHandler);
379
- };
380
- const many = (query, values, errorHandler = defaultErrorHandler) => {
381
- return db
382
- .any(query, values)
383
- .then((rows) => createManyFromDatabase(rows))
384
- .catch(errorHandler);
385
- };
386
- const any = (query, values, errorHandler = defaultErrorHandler) => {
387
- return db
388
- .any(query, values)
389
- .then((rows) => createFromDatabase(rows))
390
- .catch(errorHandler);
391
- };
392
- const none = (query, values, errorHandler = defaultErrorHandler) => {
393
- return db
394
- .none(query, values)
395
- .then(() => null)
396
- .catch(errorHandler);
397
- };
398
- /* ------------------------------------------------------------------------*/
399
- /* Built-in basic CRUD functions ------------------------------------------*/
400
- /* ------------------------------------------------------------------------*/
401
- // Standard create
402
- const create = (model) => {
403
- const { columns, values, valuesVar } = getSqlInsertParts(model);
404
- const query = `
405
- INSERT INTO "${getEntityByModel(model).tableName}" ( ${columns} )
406
- VALUES ( ${valuesVar} )
407
- RETURNING ${getEntityByModel(model).selectColumnsClause};
408
- `;
409
- return one(query, values);
410
- };
411
- // Standard update
412
- const update = (model, { on = 'id' } = {}) => {
413
- const { clause, idVar, values } = getSqlUpdateParts(model, on);
414
- const query = `
415
- UPDATE "${getEntityByModel(model).tableName}"
416
- SET ${clause}
417
- WHERE "${getEntityByModel(model).tableName}".${on} = ${idVar}
418
- RETURNING ${getEntityByModel(model).selectColumnsClause};
419
- `;
420
- return one(query, values);
421
- };
422
- // Standard delete
423
- const _delete = (model) => {
424
- const id = model.id;
425
- const query = `
426
- DELETE FROM "${getEntityByModel(model).tableName}"
427
- WHERE "${getEntityByModel(model).tableName}".id = $(id)
428
- `;
429
- return none(query, { id });
430
- };
431
- const deleteMatching = (model) => {
432
- const { whereClause, values } = getMatchingParts(model);
433
- const query = `
434
- DELETE FROM "${getEntityByModel(model).tableName}"
435
- WHERE ${whereClause};
436
- `;
437
- return none(query, values);
438
- };
439
- const getMatching = (model) => {
440
- const { whereClause, values } = getMatchingParts(model);
441
- const query = `
442
- SELECT ${getEntityByModel(model).selectColumnsClause}
443
- FROM "${getEntityByModel(model).tableName}"
444
- WHERE ${whereClause};
445
- `;
446
- return one(query, values);
447
- };
448
- const getOneOrNoneMatching = (model) => {
449
- const { whereClause, values } = getMatchingParts(model);
450
- const query = `
451
- SELECT ${getEntityByModel(model).selectColumnsClause}
452
- FROM "${getEntityByModel(model).tableName}"
453
- WHERE ${whereClause};
454
- `;
455
- return oneOrNone(query, values);
456
- };
457
- const getAnyMatching = (model) => {
458
- const { whereClause, values } = getMatchingParts(model);
459
- const query = `
460
- SELECT ${getEntityByModel(model).selectColumnsClause}
461
- FROM "${getEntityByModel(model).tableName}"
462
- WHERE ${whereClause};
463
- `;
464
- return any(query, values);
465
- };
466
- const getAllMatching = (model) => {
467
- const { whereClause, values } = getMatchingParts(model);
468
- const query = `
469
- SELECT ${getEntityByModel(model).selectColumnsClause}
470
- FROM "${getEntityByModel(model).tableName}"
471
- WHERE ${whereClause};
472
- `;
473
- return many(query, values);
297
+ return createFromDatabase(rows);
474
298
  };
475
299
  return {
476
- // Query Helper Function
477
- nestClump,
478
- clumpIntoGroups,
479
- mapToBos,
480
- objectifyDatabaseResult,
300
+ getEntityByModel,
301
+ getEntityByTableName,
481
302
  createFromDatabase,
303
+ createAnyFromDatabase,
482
304
  createOneFromDatabase,
483
305
  createOneOrNoneFromDatabase,
484
306
  createManyFromDatabase,
485
- getSqlInsertParts,
486
- getSqlUpdateParts,
487
- getMatchingParts,
488
- getMatchingPartsObject,
489
- getNewWith,
490
- getValueBySqlColumn,
491
- // Query Functions
492
- one,
493
- oneOrNone,
494
- many,
495
- any,
496
- none,
497
- // Built-in basic CRUD functions
498
- create,
499
- update,
500
- delete: _delete,
501
- deleteMatching,
502
- getMatching,
503
- getOneOrNoneMatching,
504
- getAnyMatching,
505
- getAllMatching,
506
307
  tables: entities.reduce((accum, data) => {
507
- accum[data.displayName] = data.selectColumnsClause;
308
+ accum[data.displayName] = {
309
+ columns: data.selectColumnsClause
310
+ };
508
311
  return accum;
509
312
  }, {})
510
313
  };
511
314
  };
512
- exports.create = create;
315
+ exports.createCore = createCore;
File without changes