pure-orm 4.0.2 → 4.0.3

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 (193) hide show
  1. package/.eslintrc.json +20 -10
  2. package/babel.config.js +1 -4
  3. package/coverage/clover.xml +79 -79
  4. package/coverage/coverage-final.json +2 -2
  5. package/coverage/lcov-report/dist/src/core.js.html +1 -1
  6. package/coverage/lcov-report/dist/src/driver-integrations/index.html +1 -1
  7. package/coverage/lcov-report/dist/src/driver-integrations/pgp.js.html +1 -1
  8. package/coverage/lcov-report/dist/src/index.html +1 -1
  9. package/coverage/lcov-report/dist/src/index.js.html +1 -1
  10. package/coverage/lcov-report/dist/src/orm.js.html +1 -1
  11. package/coverage/lcov-report/dist/test-utils/blog/entities.js.html +1 -1
  12. package/coverage/lcov-report/dist/test-utils/blog/index.html +1 -1
  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/five/entities.js.html +1 -1
  19. package/coverage/lcov-report/dist/test-utils/five/index.html +1 -1
  20. package/coverage/lcov-report/dist/test-utils/five/models/index.html +1 -1
  21. package/coverage/lcov-report/dist/test-utils/five/models/line-item.js.html +1 -1
  22. package/coverage/lcov-report/dist/test-utils/five/models/order.js.html +1 -1
  23. package/coverage/lcov-report/dist/test-utils/five/models/parcel-event.js.html +1 -1
  24. package/coverage/lcov-report/dist/test-utils/five/models/parcel-line-item.js.html +1 -1
  25. package/coverage/lcov-report/dist/test-utils/five/models/parcel.js.html +1 -1
  26. package/coverage/lcov-report/dist/test-utils/fourteen/entities.js.html +1 -1
  27. package/coverage/lcov-report/dist/test-utils/fourteen/index.html +1 -1
  28. package/coverage/lcov-report/dist/test-utils/fourteen/models/customer.js.html +1 -1
  29. package/coverage/lcov-report/dist/test-utils/fourteen/models/index.html +1 -1
  30. package/coverage/lcov-report/dist/test-utils/fourteen/models/person.js.html +1 -1
  31. package/coverage/lcov-report/dist/test-utils/nine/entities.js.html +1 -1
  32. package/coverage/lcov-report/dist/test-utils/nine/index.html +1 -1
  33. package/coverage/lcov-report/dist/test-utils/nine/models/feature-switch.js.html +1 -1
  34. package/coverage/lcov-report/dist/test-utils/nine/models/index.html +1 -1
  35. package/coverage/lcov-report/dist/test-utils/order/entities.js.html +1 -1
  36. package/coverage/lcov-report/dist/test-utils/order/index.html +1 -1
  37. package/coverage/lcov-report/dist/test-utils/order/models/index.html +1 -1
  38. package/coverage/lcov-report/dist/test-utils/order/models/line-item.js.html +1 -1
  39. package/coverage/lcov-report/dist/test-utils/order/models/order.js.html +1 -1
  40. package/coverage/lcov-report/dist/test-utils/order/models/product-variant.js.html +1 -1
  41. package/coverage/lcov-report/dist/test-utils/order/models/product.js.html +1 -1
  42. package/coverage/lcov-report/dist/test-utils/order/models/utm-source.js.html +1 -1
  43. package/coverage/lcov-report/dist/test-utils/order-more/entities.js.html +1 -1
  44. package/coverage/lcov-report/dist/test-utils/order-more/index.html +1 -1
  45. package/coverage/lcov-report/dist/test-utils/order-more/models/actual-product-variant.js.html +1 -1
  46. package/coverage/lcov-report/dist/test-utils/order-more/models/color.js.html +1 -1
  47. package/coverage/lcov-report/dist/test-utils/order-more/models/customer.js.html +1 -1
  48. package/coverage/lcov-report/dist/test-utils/order-more/models/gender.js.html +1 -1
  49. package/coverage/lcov-report/dist/test-utils/order-more/models/index.html +1 -1
  50. package/coverage/lcov-report/dist/test-utils/order-more/models/inventory-level.js.html +1 -1
  51. package/coverage/lcov-report/dist/test-utils/order-more/models/line-item.js.html +1 -1
  52. package/coverage/lcov-report/dist/test-utils/order-more/models/order.js.html +1 -1
  53. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-event.js.html +1 -1
  54. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel-line-item.js.html +1 -1
  55. package/coverage/lcov-report/dist/test-utils/order-more/models/parcel.js.html +1 -1
  56. package/coverage/lcov-report/dist/test-utils/order-more/models/physical-address.js.html +1 -1
  57. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant-image.js.html +1 -1
  58. package/coverage/lcov-report/dist/test-utils/order-more/models/product-variant.js.html +1 -1
  59. package/coverage/lcov-report/dist/test-utils/order-more/models/product.js.html +1 -1
  60. package/coverage/lcov-report/dist/test-utils/order-more/models/refund.js.html +1 -1
  61. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment-actual-product-variant.js.html +1 -1
  62. package/coverage/lcov-report/dist/test-utils/order-more/models/shipment.js.html +1 -1
  63. package/coverage/lcov-report/dist/test-utils/order-more/models/size.js.html +1 -1
  64. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-medium.js.html +1 -1
  65. package/coverage/lcov-report/dist/test-utils/order-more/models/utm-source.js.html +1 -1
  66. package/coverage/lcov-report/dist/test-utils/six/entities.js.html +1 -1
  67. package/coverage/lcov-report/dist/test-utils/six/index.html +1 -1
  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/thirteen/entities.js.html +1 -1
  75. package/coverage/lcov-report/dist/test-utils/thirteen/index.html +1 -1
  76. package/coverage/lcov-report/dist/test-utils/thirteen/models/audience.js.html +1 -1
  77. package/coverage/lcov-report/dist/test-utils/thirteen/models/brand.js.html +1 -1
  78. package/coverage/lcov-report/dist/test-utils/thirteen/models/category.js.html +1 -1
  79. package/coverage/lcov-report/dist/test-utils/thirteen/models/index.html +1 -1
  80. package/coverage/lcov-report/dist/test-utils/thirteen/models/member.js.html +1 -1
  81. package/coverage/lcov-report/dist/test-utils/thirteen/models/passion.js.html +1 -1
  82. package/coverage/lcov-report/dist/test-utils/thirteen/models/product.js.html +1 -1
  83. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation-audience.js.html +1 -1
  84. package/coverage/lcov-report/dist/test-utils/thirteen/models/recommendation.js.html +1 -1
  85. package/coverage/lcov-report/dist/test-utils/three/index.html +1 -1
  86. package/coverage/lcov-report/dist/test-utils/three/results.js.html +1 -1
  87. package/coverage/lcov-report/dist/test-utils/twelve/entities.js.html +1 -1
  88. package/coverage/lcov-report/dist/test-utils/twelve/index.html +1 -1
  89. package/coverage/lcov-report/dist/test-utils/twelve/models/index.html +1 -1
  90. package/coverage/lcov-report/dist/test-utils/twelve/models/member.js.html +1 -1
  91. package/coverage/lcov-report/dist/test-utils/twelve/models/prompt.js.html +1 -1
  92. package/coverage/lcov-report/dist/test-utils/two/index.html +1 -1
  93. package/coverage/lcov-report/dist/test-utils/two/results.js.html +1 -1
  94. package/coverage/lcov-report/index.html +1 -1
  95. package/coverage/lcov-report/src/core.ts.html +1 -1
  96. package/coverage/lcov-report/src/driver-integrations/index.html +1 -1
  97. package/coverage/lcov-report/src/driver-integrations/pgp.ts.html +6 -6
  98. package/coverage/lcov-report/src/index.html +1 -1
  99. package/coverage/lcov-report/src/index.ts.html +1 -1
  100. package/coverage/lcov-report/src/orm.ts.html +45 -18
  101. package/coverage/lcov-report/test-utils/blog/entities.ts.html +1 -1
  102. package/coverage/lcov-report/test-utils/blog/index.html +1 -1
  103. package/coverage/lcov-report/test-utils/blog/models/article.ts.html +1 -1
  104. package/coverage/lcov-report/test-utils/blog/models/article_tag.ts.html +1 -1
  105. package/coverage/lcov-report/test-utils/blog/models/index.html +1 -1
  106. package/coverage/lcov-report/test-utils/blog/models/person.ts.html +1 -1
  107. package/coverage/lcov-report/test-utils/blog/models/tag.ts.html +1 -1
  108. package/coverage/lcov-report/test-utils/five/entities.ts.html +1 -1
  109. package/coverage/lcov-report/test-utils/five/index.html +1 -1
  110. package/coverage/lcov-report/test-utils/five/models/index.html +1 -1
  111. package/coverage/lcov-report/test-utils/five/models/line-item.ts.html +1 -1
  112. package/coverage/lcov-report/test-utils/five/models/order.ts.html +1 -1
  113. package/coverage/lcov-report/test-utils/five/models/parcel-event.ts.html +1 -1
  114. package/coverage/lcov-report/test-utils/five/models/parcel-line-item.ts.html +1 -1
  115. package/coverage/lcov-report/test-utils/five/models/parcel.ts.html +1 -1
  116. package/coverage/lcov-report/test-utils/fourteen/entities.ts.html +1 -1
  117. package/coverage/lcov-report/test-utils/fourteen/index.html +1 -1
  118. package/coverage/lcov-report/test-utils/fourteen/models/customer.ts.html +1 -1
  119. package/coverage/lcov-report/test-utils/fourteen/models/index.html +1 -1
  120. package/coverage/lcov-report/test-utils/fourteen/models/person.ts.html +1 -1
  121. package/coverage/lcov-report/test-utils/nine/entities.ts.html +1 -1
  122. package/coverage/lcov-report/test-utils/nine/index.html +1 -1
  123. package/coverage/lcov-report/test-utils/nine/models/feature-switch.ts.html +1 -1
  124. package/coverage/lcov-report/test-utils/nine/models/index.html +1 -1
  125. package/coverage/lcov-report/test-utils/order/entities.ts.html +1 -1
  126. package/coverage/lcov-report/test-utils/order/index.html +1 -1
  127. package/coverage/lcov-report/test-utils/order/models/index.html +1 -1
  128. package/coverage/lcov-report/test-utils/order/models/line-item.ts.html +1 -1
  129. package/coverage/lcov-report/test-utils/order/models/order.ts.html +1 -1
  130. package/coverage/lcov-report/test-utils/order/models/product-variant.ts.html +1 -1
  131. package/coverage/lcov-report/test-utils/order/models/product.ts.html +1 -1
  132. package/coverage/lcov-report/test-utils/order/models/utm-source.ts.html +1 -1
  133. package/coverage/lcov-report/test-utils/order-more/entities.ts.html +1 -1
  134. package/coverage/lcov-report/test-utils/order-more/index.html +1 -1
  135. package/coverage/lcov-report/test-utils/order-more/models/actual-product-variant.ts.html +1 -1
  136. package/coverage/lcov-report/test-utils/order-more/models/color.ts.html +1 -1
  137. package/coverage/lcov-report/test-utils/order-more/models/customer.ts.html +1 -1
  138. package/coverage/lcov-report/test-utils/order-more/models/gender.ts.html +1 -1
  139. package/coverage/lcov-report/test-utils/order-more/models/index.html +1 -1
  140. package/coverage/lcov-report/test-utils/order-more/models/inventory-level.ts.html +1 -1
  141. package/coverage/lcov-report/test-utils/order-more/models/line-item.ts.html +1 -1
  142. package/coverage/lcov-report/test-utils/order-more/models/order.ts.html +1 -1
  143. package/coverage/lcov-report/test-utils/order-more/models/parcel-event.ts.html +1 -1
  144. package/coverage/lcov-report/test-utils/order-more/models/parcel-line-item.ts.html +1 -1
  145. package/coverage/lcov-report/test-utils/order-more/models/parcel.ts.html +1 -1
  146. package/coverage/lcov-report/test-utils/order-more/models/physical-address.ts.html +1 -1
  147. package/coverage/lcov-report/test-utils/order-more/models/product-variant-image.ts.html +1 -1
  148. package/coverage/lcov-report/test-utils/order-more/models/product-variant.ts.html +1 -1
  149. package/coverage/lcov-report/test-utils/order-more/models/product.ts.html +1 -1
  150. package/coverage/lcov-report/test-utils/order-more/models/refund.ts.html +1 -1
  151. package/coverage/lcov-report/test-utils/order-more/models/shipment-actual-product-variant.ts.html +1 -1
  152. package/coverage/lcov-report/test-utils/order-more/models/shipment.ts.html +1 -1
  153. package/coverage/lcov-report/test-utils/order-more/models/size.ts.html +1 -1
  154. package/coverage/lcov-report/test-utils/order-more/models/utm-medium.ts.html +1 -1
  155. package/coverage/lcov-report/test-utils/order-more/models/utm-source.ts.html +1 -1
  156. package/coverage/lcov-report/test-utils/six/entities.ts.html +1 -1
  157. package/coverage/lcov-report/test-utils/six/index.html +1 -1
  158. package/coverage/lcov-report/test-utils/six/models/customer.ts.html +1 -1
  159. package/coverage/lcov-report/test-utils/six/models/index.html +1 -1
  160. package/coverage/lcov-report/test-utils/six/models/line-item.ts.html +1 -1
  161. package/coverage/lcov-report/test-utils/six/models/order.ts.html +1 -1
  162. package/coverage/lcov-report/test-utils/six/models/parcel-line-item.ts.html +1 -1
  163. package/coverage/lcov-report/test-utils/six/models/parcel.ts.html +1 -1
  164. package/coverage/lcov-report/test-utils/thirteen/entities.ts.html +1 -1
  165. package/coverage/lcov-report/test-utils/thirteen/index.html +1 -1
  166. package/coverage/lcov-report/test-utils/thirteen/models/audience.ts.html +1 -1
  167. package/coverage/lcov-report/test-utils/thirteen/models/brand.ts.html +1 -1
  168. package/coverage/lcov-report/test-utils/thirteen/models/category.ts.html +1 -1
  169. package/coverage/lcov-report/test-utils/thirteen/models/index.html +1 -1
  170. package/coverage/lcov-report/test-utils/thirteen/models/member.ts.html +1 -1
  171. package/coverage/lcov-report/test-utils/thirteen/models/passion.ts.html +1 -1
  172. package/coverage/lcov-report/test-utils/thirteen/models/product.ts.html +1 -1
  173. package/coverage/lcov-report/test-utils/thirteen/models/recommendation-audience.ts.html +1 -1
  174. package/coverage/lcov-report/test-utils/thirteen/models/recommendation.ts.html +1 -1
  175. package/coverage/lcov-report/test-utils/three/index.html +1 -1
  176. package/coverage/lcov-report/test-utils/three/results.js.html +1 -1
  177. package/coverage/lcov-report/test-utils/twelve/entities.ts.html +1 -1
  178. package/coverage/lcov-report/test-utils/twelve/index.html +1 -1
  179. package/coverage/lcov-report/test-utils/twelve/models/index.html +1 -1
  180. package/coverage/lcov-report/test-utils/twelve/models/member.ts.html +1 -1
  181. package/coverage/lcov-report/test-utils/twelve/models/prompt.ts.html +1 -1
  182. package/coverage/lcov-report/test-utils/two/index.html +1 -1
  183. package/coverage/lcov-report/test-utils/two/results.js.html +1 -1
  184. package/coverage/lcov.info +128 -128
  185. package/dist/example/data-access/person.d.ts +1 -1
  186. package/dist/src/core.d.ts +7 -7
  187. package/dist/src/driver-integrations/index.d.ts +5 -5
  188. package/dist/src/orm.d.ts +8 -8
  189. package/example/data-access/person.ts +1 -1
  190. package/package.json +5 -4
  191. package/src/driver-integrations/index.ts +5 -5
  192. package/src/driver-integrations/pgp.ts +5 -5
  193. package/src/orm.ts +25 -16
@@ -23,7 +23,7 @@ export const createForPGP = ({
23
23
  query: string,
24
24
  values?: object,
25
25
  errorHandler = defaultErrorHandler
26
- ): T => {
26
+ ): Promise<T> => {
27
27
  return db
28
28
  .many(query, values)
29
29
  .then((rows: any) => core.createOneFromDatabase(rows))
@@ -34,7 +34,7 @@ export const createForPGP = ({
34
34
  query: string,
35
35
  values?: object,
36
36
  errorHandler = defaultErrorHandler
37
- ): T | void => {
37
+ ): Promise<T | void> => {
38
38
  return db
39
39
  .any(query, values)
40
40
  .then((rows: any) => core.createOneOrNoneFromDatabase(rows))
@@ -45,7 +45,7 @@ export const createForPGP = ({
45
45
  query: string,
46
46
  values?: object,
47
47
  errorHandler = defaultErrorHandler
48
- ): T => {
48
+ ): Promise<T> => {
49
49
  return db
50
50
  .any(query, values)
51
51
  .then((rows: any) => core.createManyFromDatabase(rows))
@@ -56,7 +56,7 @@ export const createForPGP = ({
56
56
  query: string,
57
57
  values?: object,
58
58
  errorHandler = defaultErrorHandler
59
- ): T | void => {
59
+ ): Promise<T | void> => {
60
60
  return db
61
61
  .result(query, values)
62
62
  .then((result: any) =>
@@ -72,7 +72,7 @@ export const createForPGP = ({
72
72
  query: string,
73
73
  values?: object,
74
74
  errorHandler = defaultErrorHandler
75
- ): void => {
75
+ ): Promise<void> => {
76
76
  return db
77
77
  .none(query, values)
78
78
  .then(() => null)
package/src/orm.ts CHANGED
@@ -20,14 +20,16 @@ export interface IPureORM extends ICoreIntegratedDriver {
20
20
  * if you want to write these in your data access layer yourself.
21
21
  */
22
22
 
23
- getMatching: <T extends IModel>(model: T) => T;
24
- getOneOrNoneMatching: <T extends IModel>(model: T) => T | void;
25
- getAnyMatching: <T extends ICollection<IModel>>(model: IModel) => T | void;
26
- getAllMatching: <T extends ICollection<IModel>>(model: IModel) => T;
27
- create: <T extends IModel>(model: T) => T;
28
- update: <T extends IModel>(model: T, options: { on: string }) => T;
29
- delete: <T extends IModel>(model: T) => void;
30
- deleteMatching: <T extends IModel>(model: T) => void;
23
+ getMatching: <T extends IModel>(model: T) => Promise<T>;
24
+ getOneOrNoneMatching: <T extends IModel>(model: T) => Promise<T | void>;
25
+ getAnyMatching: <T extends ICollection<IModel>>(
26
+ model: IModel
27
+ ) => Promise<T | void>;
28
+ getAllMatching: <T extends ICollection<IModel>>(model: IModel) => Promise<T>;
29
+ create: <T extends IModel>(model: T) => Promise<T>;
30
+ update: <T extends IModel>(model: T, options: { on: string }) => Promise<T>;
31
+ delete: <T extends IModel>(model: T) => Promise<void>;
32
+ deleteMatching: <T extends IModel>(model: T) => Promise<void>;
31
33
 
32
34
  /* ------------------------------------------------------------------------*/
33
35
  /* Helper Utility Functions -----------------------------------------------*/
@@ -230,7 +232,7 @@ export const create = ({
230
232
  /* ------------------------------------------------------------------------*/
231
233
 
232
234
  // Standard create
233
- const create = <T extends IModel>(model: T): T => {
235
+ const create = <T extends IModel>(model: T): Promise<T> => {
234
236
  const { columns, values, valuesVar } = getSqlInsertParts(model);
235
237
  const query = `
236
238
  INSERT INTO "${orm.getEntityByModel(model).tableName}" ( ${columns} )
@@ -241,7 +243,10 @@ export const create = ({
241
243
  };
242
244
 
243
245
  // Standard update
244
- const update = <T extends IModel>(model: T, { on = 'id' } = {}): T => {
246
+ const update = <T extends IModel>(
247
+ model: T,
248
+ { on = 'id' } = {}
249
+ ): Promise<T> => {
245
250
  const { clause, idVar, values } = getSqlUpdateParts(model, on);
246
251
  const query = `
247
252
  UPDATE "${orm.getEntityByModel(model).tableName}"
@@ -255,7 +260,7 @@ export const create = ({
255
260
  };
256
261
 
257
262
  // Standard delete
258
- const _delete = <T extends IModel>(model: T): void => {
263
+ const _delete = <T extends IModel>(model: T): Promise<void> => {
259
264
  const id = (model as any).id;
260
265
  const query = `
261
266
  DELETE FROM "${orm.getEntityByModel(model).tableName}"
@@ -264,7 +269,7 @@ export const create = ({
264
269
  return orm.none(query, { id });
265
270
  };
266
271
 
267
- const deleteMatching = <T extends IModel>(model: T) => {
272
+ const deleteMatching = <T extends IModel>(model: T): Promise<void> => {
268
273
  const { whereClause, values } = getMatchingParts(model);
269
274
  const query = `
270
275
  DELETE FROM "${orm.getEntityByModel(model).tableName}"
@@ -273,7 +278,7 @@ export const create = ({
273
278
  return orm.none(query, values);
274
279
  };
275
280
 
276
- const getMatching = <T extends IModel>(model: T): T => {
281
+ const getMatching = <T extends IModel>(model: T): Promise<T> => {
277
282
  const { whereClause, values } = getMatchingParts(model);
278
283
  const query = `
279
284
  SELECT ${orm.getEntityByModel(model).selectColumnsClause}
@@ -283,7 +288,9 @@ export const create = ({
283
288
  return orm.one<T>(query, values);
284
289
  };
285
290
 
286
- const getOneOrNoneMatching = <T extends IModel>(model: T): T | void => {
291
+ const getOneOrNoneMatching = <T extends IModel>(
292
+ model: T
293
+ ): Promise<T | void> => {
287
294
  const { whereClause, values } = getMatchingParts(model);
288
295
  const query = `
289
296
  SELECT ${orm.getEntityByModel(model).selectColumnsClause}
@@ -295,7 +302,7 @@ export const create = ({
295
302
 
296
303
  const getAnyMatching = <T extends ICollection<IModel>>(
297
304
  model: IModel
298
- ): T | void => {
305
+ ): Promise<T | void> => {
299
306
  const { whereClause, values } = getMatchingParts(model);
300
307
  const query = `
301
308
  SELECT ${orm.getEntityByModel(model).selectColumnsClause}
@@ -305,7 +312,9 @@ export const create = ({
305
312
  return orm.any<T>(query, values);
306
313
  };
307
314
 
308
- const getAllMatching = <T extends ICollection<IModel>>(model: IModel): T => {
315
+ const getAllMatching = <T extends ICollection<IModel>>(
316
+ model: IModel
317
+ ): Promise<T> => {
309
318
  const { whereClause, values } = getMatchingParts(model);
310
319
  const query = `
311
320
  SELECT ${orm.getEntityByModel(model).selectColumnsClause}