pure-orm 4.0.0-3 → 4.0.0-6

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 (234) hide show
  1. package/README.md +46 -3
  2. package/coverage/clover.xml +347 -343
  3. package/coverage/coverage-final.json +2 -2
  4. package/coverage/lcov-report/dist/src/factory.js.html +41 -17
  5. package/coverage/lcov-report/dist/src/index.html +14 -14
  6. package/coverage/lcov-report/dist/src/index.js.html +1 -1
  7. package/coverage/lcov-report/dist/test-utils/blog/index.html +1 -1
  8. package/coverage/lcov-report/dist/test-utils/blog/models/article.js.html +1 -1
  9. package/coverage/lcov-report/dist/test-utils/blog/models/article_tag.js.html +1 -1
  10. package/coverage/lcov-report/dist/test-utils/blog/models/index.html +1 -1
  11. package/coverage/lcov-report/dist/test-utils/blog/models/person.js.html +1 -1
  12. package/coverage/lcov-report/dist/test-utils/blog/models/tag.js.html +1 -1
  13. package/coverage/lcov-report/dist/test-utils/blog/orm.js.html +1 -1
  14. package/coverage/lcov-report/dist/test-utils/five/index.html +1 -1
  15. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  16. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
  17. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  18. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  20. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  21. package/coverage/lcov-report/dist/test-utils/five/orm.js.html +1 -1
  22. package/coverage/lcov-report/dist/test-utils/nine/index.html +1 -1
  23. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/nine/orm.js.html +1 -1
  26. package/coverage/lcov-report/dist/test-utils/order/index.html +1 -1
  27. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
  29. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
  30. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/order/orm.js.html +1 -1
  34. package/coverage/lcov-report/dist/test-utils/order-more/index.html +1 -1
  35. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
  39. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
  40. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
  41. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
  42. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
  43. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
  44. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
  56. package/coverage/lcov-report/dist/test-utils/order-more/orm.js.html +1 -1
  57. package/coverage/lcov-report/dist/test-utils/six/index.html +1 -1
  58. package/coverage/lcov-report/dist/test-utils/six/models/customer.js.html +1 -1
  59. package/coverage/lcov-report/dist/test-utils/six/models/index.html +1 -1
  60. package/coverage/lcov-report/dist/test-utils/six/models/line-item.js.html +1 -1
  61. package/coverage/lcov-report/dist/test-utils/six/models/order.js.html +1 -1
  62. package/coverage/lcov-report/dist/test-utils/six/models/parcel-line-item.js.html +1 -1
  63. package/coverage/lcov-report/dist/test-utils/six/models/parcel.js.html +1 -1
  64. package/coverage/lcov-report/dist/test-utils/six/orm.js.html +1 -1
  65. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +1 -1
  66. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  67. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  68. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  69. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
  70. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  71. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  72. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  73. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  74. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/orm.js.html +1 -1
  76. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  77. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/twelve/index.html +1 -1
  79. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  81. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/twelve/orm.js.html +1 -1
  83. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  85. package/coverage/lcov-report/index.html +21 -21
  86. package/coverage/lcov-report/src/factory.ts.html +55 -25
  87. package/coverage/lcov-report/src/index.html +14 -14
  88. package/coverage/lcov-report/src/index.ts.html +1 -1
  89. package/coverage/lcov-report/test-utils/blog/index.html +1 -1
  90. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
  91. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
  92. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  93. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
  94. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  95. package/coverage/lcov-report/test-utils/blog/orm.ts.html +1 -1
  96. package/coverage/lcov-report/test-utils/five/index.html +1 -1
  97. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  98. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  99. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  100. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  101. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  102. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  103. package/coverage/lcov-report/test-utils/five/orm.ts.html +1 -1
  104. package/coverage/lcov-report/test-utils/nine/index.html +1 -1
  105. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  106. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  107. package/coverage/lcov-report/test-utils/nine/orm.ts.html +1 -1
  108. package/coverage/lcov-report/test-utils/order/index.html +1 -1
  109. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
  111. package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
  114. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
  115. package/coverage/lcov-report/test-utils/order/orm.ts.html +1 -1
  116. package/coverage/lcov-report/test-utils/order-more/index.html +1 -1
  117. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  118. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  119. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  120. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  122. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  123. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  124. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  125. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  126. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  127. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  128. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  129. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  130. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  131. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  132. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  134. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  135. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  137. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  138. package/coverage/lcov-report/test-utils/order-more/orm.ts.html +1 -1
  139. package/coverage/lcov-report/test-utils/six/index.html +1 -1
  140. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  142. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  143. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/six/orm.ts.html +1 -1
  147. package/coverage/lcov-report/test-utils/thirteen/index.html +1 -1
  148. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  152. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  157. package/coverage/lcov-report/test-utils/thirteen/orm.ts.html +1 -1
  158. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  159. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  160. package/coverage/lcov-report/test-utils/twelve/index.html +1 -1
  161. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  162. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  164. package/coverage/lcov-report/test-utils/twelve/orm.ts.html +1 -1
  165. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  166. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  167. package/coverage/lcov.info +688 -668
  168. package/dist/example/factories/orm.d.ts +3 -2
  169. package/dist/example/models/employer.d.ts +1 -1
  170. package/dist/example/models/job.d.ts +1 -1
  171. package/dist/example/models/person.d.ts +1 -1
  172. package/dist/src/factory.d.ts +5 -4
  173. package/dist/src/factory.js +14 -6
  174. package/dist/src/factory.spec.js +5 -5
  175. package/dist/test-utils/blog/models/article.d.ts +1 -1
  176. package/dist/test-utils/blog/models/article_tag.d.ts +1 -1
  177. package/dist/test-utils/blog/models/person.d.ts +1 -1
  178. package/dist/test-utils/blog/models/tag.d.ts +1 -1
  179. package/dist/test-utils/five/models/line-item.d.ts +1 -1
  180. package/dist/test-utils/five/models/order.d.ts +1 -1
  181. package/dist/test-utils/five/models/parcel-event.d.ts +1 -1
  182. package/dist/test-utils/five/models/parcel-line-item.d.ts +1 -1
  183. package/dist/test-utils/five/models/parcel.d.ts +1 -1
  184. package/dist/test-utils/five/orm.d.ts +3 -2
  185. package/dist/test-utils/nine/models/feature-switch.d.ts +1 -1
  186. package/dist/test-utils/nine/orm.d.ts +3 -2
  187. package/dist/test-utils/order/models/line-item.d.ts +1 -1
  188. package/dist/test-utils/order/models/order.d.ts +1 -1
  189. package/dist/test-utils/order/models/product-variant.d.ts +1 -1
  190. package/dist/test-utils/order/models/product.d.ts +1 -1
  191. package/dist/test-utils/order/models/utm-source.d.ts +1 -1
  192. package/dist/test-utils/order/orm.d.ts +3 -2
  193. package/dist/test-utils/order-more/models/actual-product-variant.d.ts +1 -1
  194. package/dist/test-utils/order-more/models/color.d.ts +1 -1
  195. package/dist/test-utils/order-more/models/customer.d.ts +1 -1
  196. package/dist/test-utils/order-more/models/gender.d.ts +1 -1
  197. package/dist/test-utils/order-more/models/inventory-level.d.ts +1 -1
  198. package/dist/test-utils/order-more/models/line-item.d.ts +1 -1
  199. package/dist/test-utils/order-more/models/order.d.ts +1 -1
  200. package/dist/test-utils/order-more/models/parcel-event.d.ts +1 -1
  201. package/dist/test-utils/order-more/models/parcel-line-item.d.ts +1 -1
  202. package/dist/test-utils/order-more/models/parcel.d.ts +1 -1
  203. package/dist/test-utils/order-more/models/physical-address.d.ts +1 -1
  204. package/dist/test-utils/order-more/models/product-variant-image.d.ts +1 -1
  205. package/dist/test-utils/order-more/models/product-variant.d.ts +1 -1
  206. package/dist/test-utils/order-more/models/product.d.ts +1 -1
  207. package/dist/test-utils/order-more/models/refund.d.ts +1 -1
  208. package/dist/test-utils/order-more/models/shipment-actual-product-variant.d.ts +1 -1
  209. package/dist/test-utils/order-more/models/shipment.d.ts +1 -1
  210. package/dist/test-utils/order-more/models/size.d.ts +1 -1
  211. package/dist/test-utils/order-more/models/utm-medium.d.ts +1 -1
  212. package/dist/test-utils/order-more/models/utm-source.d.ts +1 -1
  213. package/dist/test-utils/order-more/orm.d.ts +3 -2
  214. package/dist/test-utils/six/models/customer.d.ts +1 -1
  215. package/dist/test-utils/six/models/line-item.d.ts +1 -1
  216. package/dist/test-utils/six/models/order.d.ts +1 -1
  217. package/dist/test-utils/six/models/parcel-line-item.d.ts +1 -1
  218. package/dist/test-utils/six/models/parcel.d.ts +1 -1
  219. package/dist/test-utils/six/orm.d.ts +3 -2
  220. package/dist/test-utils/thirteen/models/audience.d.ts +1 -1
  221. package/dist/test-utils/thirteen/models/brand.d.ts +1 -1
  222. package/dist/test-utils/thirteen/models/category.d.ts +1 -1
  223. package/dist/test-utils/thirteen/models/member.d.ts +1 -1
  224. package/dist/test-utils/thirteen/models/passion.d.ts +1 -1
  225. package/dist/test-utils/thirteen/models/product.d.ts +1 -1
  226. package/dist/test-utils/thirteen/models/recommendation-audience.d.ts +1 -1
  227. package/dist/test-utils/thirteen/models/recommendation.d.ts +1 -1
  228. package/dist/test-utils/thirteen/orm.d.ts +3 -2
  229. package/dist/test-utils/twelve/models/member.d.ts +1 -1
  230. package/dist/test-utils/twelve/models/prompt.d.ts +1 -1
  231. package/dist/test-utils/twelve/orm.d.ts +3 -2
  232. package/package.json +1 -1
  233. package/src/factory.spec.ts +5 -5
  234. package/src/factory.ts +24 -14
@@ -14,7 +14,7 @@ export declare class LineItems implements ICollection<LineItem> {
14
14
  }
15
15
  export declare const lineItemEntity: {
16
16
  tableName: string;
17
- columns: IColumns;
17
+ columns: import("../../../src/factory").IColumn[];
18
18
  Model: typeof LineItem;
19
19
  Collection: typeof LineItems;
20
20
  };
@@ -14,7 +14,7 @@ export declare class Orders implements ICollection<Order> {
14
14
  }
15
15
  export declare const orderEntity: {
16
16
  tableName: string;
17
- columns: IColumns;
17
+ columns: import("../../../src/factory").IColumn[];
18
18
  Model: typeof Order;
19
19
  Collection: typeof Orders;
20
20
  };
@@ -17,7 +17,7 @@ export declare class ParcelLineItems implements ICollection<ParcelLineItem> {
17
17
  }
18
18
  export declare const parcelLineItemEntity: {
19
19
  tableName: string;
20
- columns: IColumns;
20
+ columns: import("../../../src/factory").IColumn[];
21
21
  Model: typeof ParcelLineItem;
22
22
  Collection: typeof ParcelLineItems;
23
23
  };
@@ -11,7 +11,7 @@ export declare class Parcels implements ICollection<Parcel> {
11
11
  }
12
12
  export declare const parcelEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Parcel;
16
16
  Collection: typeof Parcels;
17
17
  };
@@ -1,9 +1,9 @@
1
1
  declare const orm: {
2
2
  nestClump: (clump: import("../../src/factory").IModel[][]) => object;
3
3
  clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
4
- mapToBos: (objectified: any) => any[];
4
+ mapToBos: (objectified: any) => import("../../src/factory").IModel[];
5
5
  objectifyDatabaseResult: (result: object) => any;
6
- createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: object | object[]) => T | undefined;
6
+ createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T | undefined;
7
7
  createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
8
8
  createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
9
9
  createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
@@ -43,5 +43,6 @@ declare const orm: {
43
43
  getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
44
44
  getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
45
45
  tables: any;
46
+ db: any;
46
47
  };
47
48
  export default orm;
@@ -11,7 +11,7 @@ export declare class Audiences implements ICollection<Audience> {
11
11
  }
12
12
  export declare const audienceEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Audience;
16
16
  Collection: typeof Audiences;
17
17
  };
@@ -11,7 +11,7 @@ export declare class Brands implements ICollection<Brand> {
11
11
  }
12
12
  export declare const brandEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Brand;
16
16
  Collection: typeof Brands;
17
17
  };
@@ -11,7 +11,7 @@ export declare class Categories implements ICollection<Category> {
11
11
  }
12
12
  export declare const categoryEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Category;
16
16
  Collection: typeof Categories;
17
17
  };
@@ -11,7 +11,7 @@ export declare class Members implements ICollection<Member> {
11
11
  }
12
12
  export declare const memberEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Member;
16
16
  Collection: typeof Members;
17
17
  };
@@ -11,7 +11,7 @@ export declare class Passions implements ICollection<Passion> {
11
11
  }
12
12
  export declare const passionEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Passion;
16
16
  Collection: typeof Passions;
17
17
  };
@@ -14,7 +14,7 @@ export declare class Products implements ICollection<Product> {
14
14
  }
15
15
  export declare const productEntity: {
16
16
  tableName: string;
17
- columns: IColumns;
17
+ columns: import("../../../src/factory").IColumn[];
18
18
  Model: typeof Product;
19
19
  Collection: typeof Products;
20
20
  };
@@ -17,7 +17,7 @@ export declare class RecommendationAudiences implements ICollection<Recommendati
17
17
  }
18
18
  export declare const recommendationAudienceEntity: {
19
19
  tableName: string;
20
- columns: IColumns;
20
+ columns: import("../../../src/factory").IColumn[];
21
21
  Model: typeof RecommendationAudience;
22
22
  Collection: typeof RecommendationAudiences;
23
23
  };
@@ -26,7 +26,7 @@ export declare class Recommendations implements ICollection<Recommendation> {
26
26
  }
27
27
  export declare const recommendationEntity: {
28
28
  tableName: string;
29
- columns: IColumns;
29
+ columns: import("../../../src/factory").IColumn[];
30
30
  Model: typeof Recommendation;
31
31
  Collection: typeof Recommendations;
32
32
  };
@@ -1,9 +1,9 @@
1
1
  declare const orm: {
2
2
  nestClump: (clump: import("../../src/factory").IModel[][]) => object;
3
3
  clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
4
- mapToBos: (objectified: any) => any[];
4
+ mapToBos: (objectified: any) => import("../../src/factory").IModel[];
5
5
  objectifyDatabaseResult: (result: object) => any;
6
- createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: object | object[]) => T | undefined;
6
+ createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T | undefined;
7
7
  createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
8
8
  createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
9
9
  createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
@@ -43,5 +43,6 @@ declare const orm: {
43
43
  getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
44
44
  getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
45
45
  tables: any;
46
+ db: any;
46
47
  };
47
48
  export default orm;
@@ -11,7 +11,7 @@ export declare class Members implements ICollection<Member> {
11
11
  }
12
12
  export declare const memberEntity: {
13
13
  tableName: string;
14
- columns: IColumns;
14
+ columns: import("../../../src/factory").IColumn[];
15
15
  Model: typeof Member;
16
16
  Collection: typeof Members;
17
17
  };
@@ -16,7 +16,7 @@ export declare class Prompts implements ICollection<Prompt> {
16
16
  }
17
17
  export declare const promptEntity: {
18
18
  tableName: string;
19
- columns: IColumns;
19
+ columns: import("../../../src/factory").IColumn[];
20
20
  Model: typeof Prompt;
21
21
  Collection: typeof Prompts;
22
22
  };
@@ -1,9 +1,9 @@
1
1
  declare const orm: {
2
2
  nestClump: (clump: import("../../src/factory").IModel[][]) => object;
3
3
  clumpIntoGroups: (processed: import("../../src/factory").IModel[][]) => import("../../src/factory").IModel[][][];
4
- mapToBos: (objectified: any) => any[];
4
+ mapToBos: (objectified: any) => import("../../src/factory").IModel[];
5
5
  objectifyDatabaseResult: (result: object) => any;
6
- createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: object | object[]) => T | undefined;
6
+ createFromDatabase: <T extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T | undefined;
7
7
  createOneFromDatabase: <T_1 extends import("../../src/factory").IModel>(_result: any) => T_1;
8
8
  createOneOrNoneFromDatabase: <T_2 extends import("../../src/factory").IModel>(_result: any) => void | T_2;
9
9
  createManyFromDatabase: <T_3 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(_result: any) => T_3;
@@ -43,5 +43,6 @@ declare const orm: {
43
43
  getAnyMatching: <T_14 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => void | T_14;
44
44
  getAllMatching: <T_15 extends import("../../src/factory").ICollection<import("../../src/factory").IModel>>(model: import("../../src/factory").IModel) => T_15;
45
45
  tables: any;
46
+ db: any;
46
47
  };
47
48
  export default orm;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pure-orm",
3
- "version": "4.0.0-3",
3
+ "version": "4.0.0-6",
4
4
  "main": "dist/src/index.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "engines": {
@@ -1030,19 +1030,19 @@ test('Bo#parseFromDatabase 13', () => {
1030
1030
 
1031
1031
  test('orm.tables', () => {
1032
1032
  expect(Object.keys(ormA.tables).length).toEqual(5);
1033
- expect(ormA.tables.utmSource).toEqual(
1033
+ expect(ormA.tables.utmSource.columns).toEqual(
1034
1034
  '"utm_source".id as "utm_source#id", "utm_source".value as "utm_source#value", "utm_source".label as "utm_source#label", "utm_source".internal as "utm_source#internal"'
1035
1035
  );
1036
- expect(ormA.tables.order).toEqual(
1036
+ expect(ormA.tables.order.columns).toEqual(
1037
1037
  '"order".id as "order#id", "order".email as "order#email", "order".browser_ip as "order#browser_ip", "order".browser_user_agent as "order#browser_user_agent", "order".kujo_imported_date as "order#kujo_imported_date", "order".created_date as "order#created_date", "order".cancel_reason as "order#cancel_reason", "order".cancelled_date as "order#cancelled_date", "order".closed_date as "order#closed_date", "order".processed_date as "order#processed_date", "order".updated_date as "order#updated_date", "order".note as "order#note", "order".subtotal_price as "order#subtotal_price", "order".taxes_included as "order#taxes_included", "order".total_discounts as "order#total_discounts", "order".total_price as "order#total_price", "order".total_tax as "order#total_tax", "order".total_weight as "order#total_weight", "order".order_status_url as "order#order_status_url", "order".utm_source_id as "order#utm_source_id", "order".utm_medium_id as "order#utm_medium_id", "order".utm_campaign as "order#utm_campaign", "order".utm_content as "order#utm_content", "order".utm_term as "order#utm_term"'
1038
1038
  );
1039
- expect(ormA.tables.lineItem).toEqual(
1039
+ expect(ormA.tables.lineItem.columns).toEqual(
1040
1040
  '"line_item".id as "line_item#id", "line_item".product_variant_id as "line_item#product_variant_id", "line_item".order_id as "line_item#order_id", "line_item".fulfillment_status_id as "line_item#fulfillment_status_id", "line_item".fulfillable_quantity as "line_item#fulfillable_quantity", "line_item".fulfillment_service as "line_item#fulfillment_service", "line_item".grams as "line_item#grams", "line_item".price as "line_item#price", "line_item".quantity as "line_item#quantity", "line_item".requires_shipping as "line_item#requires_shipping", "line_item".taxable as "line_item#taxable", "line_item".total_discount as "line_item#total_discount"'
1041
1041
  );
1042
- expect(ormA.tables.productVariant).toEqual(
1042
+ expect(ormA.tables.productVariant.columns).toEqual(
1043
1043
  '"product_variant".id as "product_variant#id", "product_variant".product_id as "product_variant#product_id", "product_variant".actual_product_variant_id as "product_variant#actual_product_variant_id", "product_variant".color_id as "product_variant#color_id", "product_variant".gender_id as "product_variant#gender_id", "product_variant".size_id as "product_variant#size_id", "product_variant".barcode as "product_variant#barcode", "product_variant".price as "product_variant#price", "product_variant".compare_at_price as "product_variant#compare_at_price", "product_variant".created_date as "product_variant#created_date", "product_variant".updated_date as "product_variant#updated_date", "product_variant".grams as "product_variant#grams", "product_variant".requires_shipping as "product_variant#requires_shipping"'
1044
1044
  );
1045
- expect(ormA.tables.product).toEqual(
1045
+ expect(ormA.tables.product.columns).toEqual(
1046
1046
  '"product".id as "product#id", "product".vendor_id as "product#vendor_id", "product".value as "product#value", "product".label as "product#label", "product".product_type as "product#product_type", "product".created_date as "product#created_date", "product".updated_date as "product#updated_date", "product".published_date as "product#published_date", "product".category as "product#category"'
1047
1047
  );
1048
1048
  });
package/src/factory.ts CHANGED
@@ -7,7 +7,7 @@ export interface IColumnData {
7
7
  primaryKey?: boolean;
8
8
  }
9
9
  export type IColumn = IColumnData | string;
10
- export type IColumns = Array<IColumn>;
10
+ export type IColumns = Array<IColumn> | (() => Array<IColumn>);
11
11
 
12
12
  export interface IColumnInternalData {
13
13
  column: string;
@@ -55,7 +55,7 @@ export interface IEntityInternal<T extends IModel> {
55
55
  export type IEntitiesInternal<T extends IModel> = Array<IEntityInternal<T>>;
56
56
 
57
57
  export interface CreateOptions {
58
- entities: IEntities<any>;
58
+ entities: IEntities<IModel>;
59
59
  db: any;
60
60
  logError?: (err: Error) => void;
61
61
  }
@@ -65,13 +65,15 @@ export const create = ({
65
65
  db,
66
66
  logError
67
67
  }: CreateOptions) => {
68
- const entities: IEntitiesInternal<any> = externalEntities.map(
69
- (d: IEntity<any>) => {
68
+ const entities: IEntitiesInternal<IModel> = externalEntities.map(
69
+ (d: IEntity<IModel>) => {
70
70
  const tableName = d.tableName;
71
71
  const displayName = d.displayName || camelCase(d.tableName);
72
72
  const collectionDisplayName =
73
73
  d.collectionDisplayName || `${displayName}s`;
74
- const columns = d.columns.map((d: IColumn) => {
74
+ const columns = (
75
+ typeof d.columns === 'function' ? d.columns() : d.columns
76
+ ).map((d: IColumn) => {
75
77
  if (typeof d === 'string') {
76
78
  return {
77
79
  column: d,
@@ -144,7 +146,7 @@ export const create = ({
144
146
  }
145
147
  );
146
148
 
147
- const getEntityByTableName = (tableName: string): IEntityInternal<any> => {
149
+ const getEntityByTableName = (tableName: string): IEntityInternal<IModel> => {
148
150
  const entity = entities.find((data) => data.tableName == tableName);
149
151
  if (!entity) {
150
152
  throw new Error(`Could not find entity for table ${tableName}`);
@@ -152,7 +154,7 @@ export const create = ({
152
154
  return entity;
153
155
  };
154
156
 
155
- const getEntityByModel = (model: IModel): IEntityInternal<any> => {
157
+ const getEntityByModel = (model: IModel): IEntityInternal<IModel> => {
156
158
  const entity = entities.find((data) => data.Model == model.constructor);
157
159
  if (!entity) {
158
160
  throw new Error(`Could not find entity for class ${model.constructor}`);
@@ -377,6 +379,9 @@ export const create = ({
377
379
  return Object.keys(result).reduce((obj: any, text: string) => {
378
380
  const tableName = text.split('#')[0];
379
381
  const column = text.split('#')[1];
382
+ if (!tableName || !column) {
383
+ throw new Error('Column names must be namespaced to table');
384
+ }
380
385
  obj[tableName] = obj[tableName] || {};
381
386
  obj[tableName][column] = result[text as keyof typeof result];
382
387
  return obj;
@@ -384,8 +389,11 @@ export const create = ({
384
389
  };
385
390
 
386
391
  const createFromDatabase = <T extends ICollection<IModel>>(
387
- _result: Array<object> | object
392
+ _result: any
388
393
  ): T | undefined => {
394
+ if (!_result || !_result.length) {
395
+ return void 0;
396
+ }
389
397
  const result = Array.isArray(_result) ? _result : [_result];
390
398
  const objectified = result.map(objectifyDatabaseResult);
391
399
  const boified = objectified.map(mapToBos);
@@ -412,9 +420,6 @@ export const create = ({
412
420
  const createOneOrNoneFromDatabase = <T extends IModel>(
413
421
  _result: any
414
422
  ): T | void => {
415
- if (!_result) {
416
- return _result;
417
- }
418
423
  const collection = createFromDatabase(_result);
419
424
  if (collection && collection.models.length > 1) {
420
425
  throw Error('Got more than one.');
@@ -729,9 +734,14 @@ export const create = ({
729
734
  getOneOrNoneMatching,
730
735
  getAnyMatching,
731
736
  getAllMatching,
732
- tables: entities.reduce((accum: any, data: IEntityInternal<any>) => {
733
- accum[data.displayName] = data.selectColumnsClause;
737
+ // tables property for access to select columns clause string
738
+ tables: entities.reduce((accum: any, data: IEntityInternal<IModel>) => {
739
+ accum[data.displayName] = {
740
+ columns: data.selectColumnsClause
741
+ };
734
742
  return accum;
735
- }, {})
743
+ }, {}),
744
+ // provide direct access to db
745
+ db
736
746
  };
737
747
  };