@abedmurrar/objection 4.0.0-alpha.0 → 4.0.0-beta.1

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 (192) hide show
  1. package/README.md +103 -67
  2. package/lib/index.mjs +6 -0
  3. package/lib/initialize.js +6 -9
  4. package/lib/model/AjvValidator.js +235 -282
  5. package/lib/model/Model.js +653 -823
  6. package/lib/model/ModifierNotFoundError.js +5 -7
  7. package/lib/model/NotFoundError.js +14 -18
  8. package/lib/model/RelationDoesNotExistError.js +6 -9
  9. package/lib/model/ValidationError.js +33 -41
  10. package/lib/model/Validator.js +15 -21
  11. package/lib/model/getModel.js +1 -3
  12. package/lib/model/graph/ModelGraph.js +44 -64
  13. package/lib/model/graph/ModelGraphBuilder.js +164 -217
  14. package/lib/model/graph/ModelGraphEdge.js +31 -43
  15. package/lib/model/graph/ModelGraphNode.js +192 -231
  16. package/lib/model/inheritModel.js +9 -18
  17. package/lib/model/modelBindKnex.js +48 -62
  18. package/lib/model/modelClone.js +79 -98
  19. package/lib/model/modelColPropMap.js +16 -26
  20. package/lib/model/modelConcurrency.js +24 -0
  21. package/lib/model/modelId.js +44 -49
  22. package/lib/model/modelJsonAttributes.js +56 -76
  23. package/lib/model/modelParseRelations.js +68 -67
  24. package/lib/model/modelQueryProps.js +76 -107
  25. package/lib/model/modelSet.js +92 -112
  26. package/lib/model/modelTableMetadata.js +60 -72
  27. package/lib/model/modelToJson.js +120 -150
  28. package/lib/model/modelUtils.js +30 -37
  29. package/lib/model/modelValidate.js +34 -42
  30. package/lib/model/modelValues.js +78 -91
  31. package/lib/model/modelVisitor.js +22 -29
  32. package/lib/objection.js +42 -67
  33. package/lib/queryBuilder/FunctionBuilder.js +231 -279
  34. package/lib/queryBuilder/InternalOptions.js +19 -24
  35. package/lib/queryBuilder/JoinBuilder.js +116 -149
  36. package/lib/queryBuilder/QueryBuilder.js +1009 -1271
  37. package/lib/queryBuilder/QueryBuilderBase.js +647 -865
  38. package/lib/queryBuilder/QueryBuilderContext.js +14 -21
  39. package/lib/queryBuilder/QueryBuilderContextBase.js +20 -29
  40. package/lib/queryBuilder/QueryBuilderOperationSupport.js +462 -536
  41. package/lib/queryBuilder/QueryBuilderUserContext.js +19 -25
  42. package/lib/queryBuilder/RawBuilder.js +58 -73
  43. package/lib/queryBuilder/ReferenceBuilder.js +232 -270
  44. package/lib/queryBuilder/RelationExpression.js +322 -380
  45. package/lib/queryBuilder/StaticHookArguments.js +94 -106
  46. package/lib/queryBuilder/ValueBuilder.js +100 -112
  47. package/lib/queryBuilder/expressions.js +86 -116
  48. package/lib/queryBuilder/functions/mysql.js +642 -697
  49. package/lib/queryBuilder/graph/GraphAction.js +44 -59
  50. package/lib/queryBuilder/graph/GraphData.js +7 -9
  51. package/lib/queryBuilder/graph/GraphFetcher.js +115 -151
  52. package/lib/queryBuilder/graph/GraphNodeDbExistence.js +114 -152
  53. package/lib/queryBuilder/graph/GraphOperation.js +16 -22
  54. package/lib/queryBuilder/graph/GraphOptions.js +143 -185
  55. package/lib/queryBuilder/graph/GraphUpsert.js +167 -241
  56. package/lib/queryBuilder/graph/delete/GraphDelete.js +8 -13
  57. package/lib/queryBuilder/graph/delete/GraphDeleteAction.js +44 -62
  58. package/lib/queryBuilder/graph/insert/GraphInsert.js +99 -128
  59. package/lib/queryBuilder/graph/insert/GraphInsertAction.js +151 -193
  60. package/lib/queryBuilder/graph/insert/JoinRowGraphInsertAction.js +57 -79
  61. package/lib/queryBuilder/graph/patch/GraphPatch.js +8 -13
  62. package/lib/queryBuilder/graph/patch/GraphPatchAction.js +181 -234
  63. package/lib/queryBuilder/graph/recursiveUpsert/GraphRecursiveUpsert.js +16 -21
  64. package/lib/queryBuilder/graph/recursiveUpsert/GraphRecursiveUpsertAction.js +80 -110
  65. package/lib/queryBuilder/join/JoinResultColumn.js +14 -18
  66. package/lib/queryBuilder/join/JoinResultParser.js +88 -101
  67. package/lib/queryBuilder/join/RelationJoiner.js +205 -288
  68. package/lib/queryBuilder/join/TableNode.js +117 -144
  69. package/lib/queryBuilder/join/TableTree.js +60 -76
  70. package/lib/queryBuilder/join/utils.js +10 -16
  71. package/lib/queryBuilder/operations/DelegateOperation.js +93 -133
  72. package/lib/queryBuilder/operations/DeleteOperation.js +33 -37
  73. package/lib/queryBuilder/operations/FindByIdOperation.js +20 -28
  74. package/lib/queryBuilder/operations/FindByIdsOperation.js +17 -23
  75. package/lib/queryBuilder/operations/FindOperation.js +114 -131
  76. package/lib/queryBuilder/operations/FirstOperation.js +14 -19
  77. package/lib/queryBuilder/operations/FromOperation.js +69 -88
  78. package/lib/queryBuilder/operations/InsertAndFetchOperation.js +28 -39
  79. package/lib/queryBuilder/operations/InsertGraphAndFetchOperation.js +25 -35
  80. package/lib/queryBuilder/operations/InsertGraphOperation.js +77 -98
  81. package/lib/queryBuilder/operations/InsertOperation.js +132 -165
  82. package/lib/queryBuilder/operations/InstanceDeleteOperation.js +27 -36
  83. package/lib/queryBuilder/operations/InstanceFindOperation.js +9 -13
  84. package/lib/queryBuilder/operations/InstanceInsertOperation.js +13 -17
  85. package/lib/queryBuilder/operations/InstanceUpdateOperation.js +32 -46
  86. package/lib/queryBuilder/operations/JoinRelatedOperation.js +66 -86
  87. package/lib/queryBuilder/operations/KnexOperation.js +4 -7
  88. package/lib/queryBuilder/operations/MergeOperation.js +32 -45
  89. package/lib/queryBuilder/operations/ObjectionToKnexConvertingOperation.js +131 -150
  90. package/lib/queryBuilder/operations/OnBuildKnexOperation.js +17 -23
  91. package/lib/queryBuilder/operations/OnBuildOperation.js +17 -23
  92. package/lib/queryBuilder/operations/OnErrorOperation.js +17 -23
  93. package/lib/queryBuilder/operations/QueryBuilderOperation.js +231 -270
  94. package/lib/queryBuilder/operations/RangeOperation.js +30 -40
  95. package/lib/queryBuilder/operations/RelateOperation.js +14 -21
  96. package/lib/queryBuilder/operations/ReturningOperation.js +12 -18
  97. package/lib/queryBuilder/operations/RunAfterOperation.js +17 -23
  98. package/lib/queryBuilder/operations/RunBeforeOperation.js +17 -23
  99. package/lib/queryBuilder/operations/UnrelateOperation.js +12 -17
  100. package/lib/queryBuilder/operations/UpdateAndFetchOperation.js +48 -65
  101. package/lib/queryBuilder/operations/UpdateOperation.js +104 -129
  102. package/lib/queryBuilder/operations/UpsertGraphAndFetchOperation.js +25 -35
  103. package/lib/queryBuilder/operations/UpsertGraphOperation.js +36 -55
  104. package/lib/queryBuilder/operations/WhereCompositeOperation.js +30 -39
  105. package/lib/queryBuilder/operations/WhereInOperation.js +34 -36
  106. package/lib/queryBuilder/operations/eager/EagerOperation.js +37 -52
  107. package/lib/queryBuilder/operations/eager/JoinEagerOperation.js +34 -44
  108. package/lib/queryBuilder/operations/eager/NaiveEagerOperation.js +4 -7
  109. package/lib/queryBuilder/operations/eager/WhereInEagerOperation.js +193 -251
  110. package/lib/queryBuilder/operations/jsonApi/WhereJsonHasOperation.js +18 -25
  111. package/lib/queryBuilder/operations/jsonApi/WhereJsonNotObjectOperation.js +25 -41
  112. package/lib/queryBuilder/operations/jsonApi/WhereJsonOperation.js +19 -20
  113. package/lib/queryBuilder/operations/jsonApi/WhereJsonOverlapsOperation.js +23 -21
  114. package/lib/queryBuilder/operations/jsonApi/mysqlJsonApi.js +106 -118
  115. package/lib/queryBuilder/operations/jsonApi/postgresJsonApi.js +79 -108
  116. package/lib/queryBuilder/operations/select/SelectOperation.js +37 -53
  117. package/lib/queryBuilder/operations/select/Selection.js +94 -105
  118. package/lib/queryBuilder/operations/whereInComposite/WhereInCompositeMsSqlOperation.js +68 -101
  119. package/lib/queryBuilder/operations/whereInComposite/WhereInCompositeOperation.js +65 -75
  120. package/lib/queryBuilder/operations/whereInComposite/WhereInCompositeSqliteOperation.js +75 -84
  121. package/lib/queryBuilder/parsers/jsonFieldExpressionParser.js +760 -859
  122. package/lib/queryBuilder/parsers/relationExpressionParser.js +840 -952
  123. package/lib/queryBuilder/transformations/CompositeQueryTransformation.js +10 -15
  124. package/lib/queryBuilder/transformations/QueryTransformation.js +4 -6
  125. package/lib/queryBuilder/transformations/WrapMysqlModifySubqueryTransformation.js +35 -49
  126. package/lib/queryBuilder/transformations/index.js +3 -9
  127. package/lib/queryBuilder/whereScopes.js +158 -186
  128. package/lib/relations/Relation.js +293 -375
  129. package/lib/relations/RelationDeleteOperation.js +24 -28
  130. package/lib/relations/RelationFindOperation.js +108 -138
  131. package/lib/relations/RelationInsertOperation.js +24 -32
  132. package/lib/relations/RelationOwner.js +175 -209
  133. package/lib/relations/RelationProperty.js +186 -223
  134. package/lib/relations/RelationUpdateOperation.js +23 -29
  135. package/lib/relations/belongsToOne/BelongsToOneDeleteOperation.js +16 -21
  136. package/lib/relations/belongsToOne/BelongsToOneInsertOperation.js +30 -41
  137. package/lib/relations/belongsToOne/BelongsToOneRelateOperation.js +36 -47
  138. package/lib/relations/belongsToOne/BelongsToOneRelation.js +42 -50
  139. package/lib/relations/belongsToOne/BelongsToOneUnrelateOperation.js +43 -58
  140. package/lib/relations/hasMany/HasManyInsertOperation.js +40 -56
  141. package/lib/relations/hasMany/HasManyRelateOperation.js +45 -61
  142. package/lib/relations/hasMany/HasManyRelation.js +38 -46
  143. package/lib/relations/hasMany/HasManyUnrelateOperation.js +25 -32
  144. package/lib/relations/hasOne/HasOneRelation.js +9 -12
  145. package/lib/relations/hasOneThrough/HasOneThroughRelation.js +9 -12
  146. package/lib/relations/manyToMany/ManyToManyModifyMixin.js +73 -95
  147. package/lib/relations/manyToMany/ManyToManyRelation.js +374 -473
  148. package/lib/relations/manyToMany/ManyToManySqliteModifyMixin.js +23 -30
  149. package/lib/relations/manyToMany/delete/ManyToManyDeleteOperation.js +8 -10
  150. package/lib/relations/manyToMany/delete/ManyToManyDeleteOperationBase.js +20 -25
  151. package/lib/relations/manyToMany/delete/ManyToManyDeleteSqliteOperation.js +8 -12
  152. package/lib/relations/manyToMany/find/ManyToManyFindOperation.js +77 -100
  153. package/lib/relations/manyToMany/insert/ManyToManyInsertOperation.js +37 -49
  154. package/lib/relations/manyToMany/relate/ManyToManyRelateOperation.js +58 -74
  155. package/lib/relations/manyToMany/unrelate/ManyToManyUnrelateOperation.js +10 -13
  156. package/lib/relations/manyToMany/unrelate/ManyToManyUnrelateOperationBase.js +26 -33
  157. package/lib/relations/manyToMany/unrelate/ManyToManyUnrelateSqliteOperation.js +10 -15
  158. package/lib/relations/manyToMany/update/ManyToManyUpdateOperation.js +8 -10
  159. package/lib/relations/manyToMany/update/ManyToManyUpdateOperationBase.js +61 -78
  160. package/lib/relations/manyToMany/update/ManyToManyUpdateSqliteOperation.js +8 -12
  161. package/lib/transaction.js +53 -83
  162. package/lib/utils/assert.js +15 -21
  163. package/lib/utils/buildUtils.js +17 -19
  164. package/lib/utils/classUtils.js +7 -11
  165. package/lib/utils/cloneDeep.js +365 -0
  166. package/lib/utils/createModifier.js +36 -41
  167. package/lib/utils/deprecate.js +8 -12
  168. package/lib/utils/identifierMapping.js +153 -192
  169. package/lib/utils/internalPropUtils.js +4 -8
  170. package/lib/utils/knexUtils.js +61 -56
  171. package/lib/utils/mixin.js +16 -23
  172. package/lib/utils/mysqlJsonPath.js +55 -40
  173. package/lib/utils/normalizeIds.js +110 -127
  174. package/lib/utils/objectUtils.js +236 -338
  175. package/lib/utils/parseFieldExpression.js +66 -44
  176. package/lib/utils/postgresJsonPath.js +48 -62
  177. package/lib/utils/promiseUtils/after.js +10 -13
  178. package/lib/utils/promiseUtils/afterReturn.js +10 -13
  179. package/lib/utils/promiseUtils/index.js +15 -17
  180. package/lib/utils/promiseUtils/isPromise.js +6 -9
  181. package/lib/utils/promiseUtils/map.js +75 -89
  182. package/lib/utils/promiseUtils/mapAfterAllReturn.js +17 -23
  183. package/lib/utils/promiseUtils/try.js +15 -18
  184. package/lib/utils/resolveModel.js +91 -94
  185. package/lib/utils/tmpColumnUtils.js +4 -13
  186. package/package.json +50 -23
  187. package/typings/objection/index.d.mts +362 -0
  188. package/typings/objection/index.d.ts +36 -9
  189. package/lib/.eslintrc.json +0 -8
  190. package/lib/queryBuilder/parsers/jsonFieldExpressionParser.pegjs +0 -97
  191. package/lib/queryBuilder/parsers/relationExpressionParser.pegjs +0 -141
  192. package/lib/utils/clone.js +0 -2329
@@ -1,126 +1,113 @@
1
1
  'use strict';
2
-
3
2
  const { isObject } = require('../utils/objectUtils');
4
-
5
3
  // Property keys needs to be prefixed with a non-numeric character so that
6
4
  // they are not considered indexes when used as object keys.
7
5
  const PROP_KEY_PREFIX = 'k_';
8
-
9
6
  function values(model, args) {
10
- switch (args.length) {
11
- case 1:
12
- return values1(model, args);
13
- case 2:
14
- return values2(model, args);
15
- case 3:
16
- return values3(model, args);
17
- default:
18
- return valuesN(model, args);
19
- }
7
+ switch (args.length) {
8
+ case 1:
9
+ return values1(model, args);
10
+ case 2:
11
+ return values2(model, args);
12
+ case 3:
13
+ return values3(model, args);
14
+ default:
15
+ return valuesN(model, args);
16
+ }
20
17
  }
21
-
22
18
  function propKey(model, props) {
23
- switch (props.length) {
24
- case 1:
25
- return propKey1(model, props);
26
- case 2:
27
- return propKey2(model, props);
28
- case 3:
29
- return propKey3(model, props);
30
- default:
31
- return propKeyN(model, props);
32
- }
19
+ switch (props.length) {
20
+ case 1:
21
+ return propKey1(model, props);
22
+ case 2:
23
+ return propKey2(model, props);
24
+ case 3:
25
+ return propKey3(model, props);
26
+ default:
27
+ return propKeyN(model, props);
28
+ }
33
29
  }
34
-
35
30
  function hasProps(model, props) {
36
- for (let i = 0; i < props.length; ++i) {
37
- const value = model[props[i]];
38
-
39
- if (isNullOrUndefined(value)) {
40
- return false;
31
+ for (let i = 0; i < props.length; ++i) {
32
+ const value = model[props[i]];
33
+ if (isNullOrUndefined(value)) {
34
+ return false;
35
+ }
41
36
  }
42
- }
43
-
44
- return true;
37
+ return true;
45
38
  }
46
-
47
39
  function values1(model, args) {
48
- return [model[args[0]]];
40
+ return [model[args[0]]];
49
41
  }
50
-
51
42
  function values2(model, args) {
52
- return [model[args[0]], model[args[1]]];
43
+ return [model[args[0]], model[args[1]]];
53
44
  }
54
-
55
45
  function values3(model, args) {
56
- return [model[args[0]], model[args[1]], model[args[2]]];
46
+ return [model[args[0]], model[args[1]], model[args[2]]];
57
47
  }
58
-
59
48
  function valuesN(model, args) {
60
- const ret = new Array(args.length);
61
-
62
- for (let i = 0, l = args.length; i < l; ++i) {
63
- ret[i] = model[args[i]];
64
- }
65
-
66
- return ret;
49
+ const ret = new Array(args.length);
50
+ for (let i = 0, l = args.length; i < l; ++i) {
51
+ ret[i] = model[args[i]];
52
+ }
53
+ return ret;
67
54
  }
68
-
69
55
  function propKey1(model, props) {
70
- return PROP_KEY_PREFIX + propToStr(model[props[0]]);
56
+ return PROP_KEY_PREFIX + propToStr(model[props[0]]);
71
57
  }
72
-
73
58
  function propKey2(model, props) {
74
- return PROP_KEY_PREFIX + propToStr(model[props[0]]) + ',' + propToStr(model[props[1]]);
59
+ return PROP_KEY_PREFIX + propToStr(model[props[0]]) + ',' + propToStr(model[props[1]]);
75
60
  }
76
-
77
61
  function propKey3(model, props) {
78
- return (
79
- PROP_KEY_PREFIX +
80
- propToStr(model[props[0]]) +
81
- ',' +
82
- propToStr(model[props[1]]) +
83
- ',' +
84
- propToStr(model[props[2]])
85
- );
62
+ return (PROP_KEY_PREFIX +
63
+ propToStr(model[props[0]]) +
64
+ ',' +
65
+ propToStr(model[props[1]]) +
66
+ ',' +
67
+ propToStr(model[props[2]]));
86
68
  }
87
-
88
69
  function propKeyN(model, props) {
89
- let key = PROP_KEY_PREFIX;
90
-
91
- for (let i = 0, l = props.length; i < l; ++i) {
92
- key += propToStr(model[props[i]]);
93
-
94
- if (i < l - 1) {
95
- key += ',';
70
+ let key = PROP_KEY_PREFIX;
71
+ for (let i = 0, l = props.length; i < l; ++i) {
72
+ key += propToStr(model[props[i]]);
73
+ if (i < l - 1) {
74
+ key += ',';
75
+ }
96
76
  }
97
- }
98
-
99
- return key;
77
+ return key;
100
78
  }
101
-
102
79
  function propToStr(value) {
103
- if (value === null) {
104
- return 'null';
105
- } else if (value === undefined) {
106
- return 'undefined';
107
- } else if (Buffer.isBuffer(value)) {
108
- return value.toString('hex');
109
- } else if (isObject(value)) {
110
- return JSON.stringify(value);
111
- } else {
112
- return `${value}`;
113
- }
80
+ // Ids are almost always numbers or strings.
81
+ const type = typeof value;
82
+ if (type === 'string') {
83
+ return value;
84
+ }
85
+ else if (type === 'number') {
86
+ return `${value}`;
87
+ }
88
+ else if (value === null) {
89
+ return 'null';
90
+ }
91
+ else if (value === undefined) {
92
+ return 'undefined';
93
+ }
94
+ else if (Buffer.isBuffer(value)) {
95
+ return value.toString('hex');
96
+ }
97
+ else if (isObject(value)) {
98
+ return JSON.stringify(value);
99
+ }
100
+ else {
101
+ return `${value}`;
102
+ }
114
103
  }
115
-
116
104
  function isNullOrUndefined(val) {
117
- return val === null || val === undefined;
105
+ return val === null || val === undefined;
118
106
  }
119
-
120
107
  module.exports = {
121
- PROP_KEY_PREFIX,
122
- propToStr,
123
- values,
124
- hasProps,
125
- propKey,
108
+ PROP_KEY_PREFIX,
109
+ propToStr,
110
+ values,
111
+ hasProps,
112
+ propKey,
126
113
  };
@@ -1,41 +1,34 @@
1
1
  'use strict';
2
-
3
2
  function visitModels(models, modelClass, visitor) {
4
- doVisit(models, modelClass, null, null, visitor);
3
+ doVisit(models, modelClass, null, null, visitor);
5
4
  }
6
-
7
5
  function doVisit(models, modelClass, parent, rel, visitor) {
8
- if (Array.isArray(models)) {
9
- visitMany(models, modelClass, parent, rel, visitor);
10
- } else if (models) {
11
- visitOne(models, modelClass, parent, rel, visitor);
12
- }
6
+ if (Array.isArray(models)) {
7
+ visitMany(models, modelClass, parent, rel, visitor);
8
+ }
9
+ else if (models) {
10
+ visitOne(models, modelClass, parent, rel, visitor);
11
+ }
13
12
  }
14
-
15
13
  function visitMany(models, modelClass, parent, rel, visitor) {
16
- for (let i = 0, l = models.length; i < l; ++i) {
17
- visitOne(models[i], modelClass, parent, rel, visitor);
18
- }
14
+ for (let i = 0, l = models.length; i < l; ++i) {
15
+ visitOne(models[i], modelClass, parent, rel, visitor);
16
+ }
19
17
  }
20
-
21
18
  function visitOne(model, modelClass, parent, rel, visitor) {
22
- if (model) {
23
- visitor(model, modelClass, parent, rel);
24
- }
25
-
26
- const relationNames = modelClass.getRelationNames();
27
-
28
- for (let i = 0, l = relationNames.length; i < l; ++i) {
29
- const relationName = relationNames[i];
30
- const relatedObj = model[relationName];
31
-
32
- if (relatedObj) {
33
- const relation = modelClass.getRelation(relationName);
34
- doVisit(relatedObj, relation.relatedModelClass, model, relation, visitor);
19
+ if (model) {
20
+ visitor(model, modelClass, parent, rel);
21
+ }
22
+ const relationNames = modelClass.getRelationNames();
23
+ for (let i = 0, l = relationNames.length; i < l; ++i) {
24
+ const relationName = relationNames[i];
25
+ const relatedObj = model[relationName];
26
+ if (relatedObj) {
27
+ const relation = modelClass.getRelation(relationName);
28
+ doVisit(relatedObj, relation.relatedModelClass, model, relation, visitor);
29
+ }
35
30
  }
36
- }
37
31
  }
38
-
39
32
  module.exports = {
40
- visitModels,
33
+ visitModels,
41
34
  };
package/lib/objection.js CHANGED
@@ -1,14 +1,5 @@
1
1
  'use strict';
2
-
3
- const {
4
- DBError,
5
- UniqueViolationError,
6
- NotNullViolationError,
7
- ForeignKeyViolationError,
8
- ConstraintViolationError,
9
- CheckViolationError,
10
- DataError,
11
- } = require('db-errors');
2
+ const { DBError, UniqueViolationError, NotNullViolationError, ForeignKeyViolationError, ConstraintViolationError, CheckViolationError, DataError, } = require('db-errors');
12
3
  const { Model: NativeModel } = require('./model/Model');
13
4
  const { QueryBuilder: NativeQueryBuilder } = require('./queryBuilder/QueryBuilder');
14
5
  const { QueryBuilderBase } = require('./queryBuilder/QueryBuilderBase');
@@ -26,89 +17,73 @@ const { HasOneThroughRelation } = require('./relations/hasOneThrough/HasOneThrou
26
17
  const { ManyToManyRelation } = require('./relations/manyToMany/ManyToManyRelation');
27
18
  const { transaction } = require('./transaction');
28
19
  const { initialize } = require('./initialize');
29
-
30
- const {
31
- snakeCaseMappers,
32
- knexSnakeCaseMappers,
33
- knexIdentifierMapping,
34
- } = require('./utils/identifierMapping');
20
+ const { snakeCaseMappers, knexSnakeCaseMappers, knexIdentifierMapping, } = require('./utils/identifierMapping');
35
21
  const { compose, mixin } = require('./utils/mixin');
36
22
  const { ref } = require('./queryBuilder/ReferenceBuilder');
37
23
  const { val } = require('./queryBuilder/ValueBuilder');
38
24
  const { raw } = require('./queryBuilder/RawBuilder');
39
25
  const { fn } = require('./queryBuilder/FunctionBuilder');
40
- const { inherit } = require('../lib/utils/classUtils');
41
-
26
+ const { inherit } = require('./utils/classUtils');
42
27
  // We need to wrap the classes, that people can inherit, with ES5 classes
43
28
  // so that babel is able to use ES5 inheritance. sigh... Maybe people
44
29
  // should stop transpiling node apps to ES5 in the year 2019? Node 6
45
30
  // with full class support was released three years ago.
46
-
47
31
  function Model() {
48
- // Nothing to do here.
32
+ // Nothing to do here.
49
33
  }
50
-
51
34
  function QueryBuilder(...args) {
52
- NativeQueryBuilder.init(this, ...args);
35
+ NativeQueryBuilder.init(this, ...args);
53
36
  }
54
-
55
37
  function Validator(...args) {
56
- NativeValidator.init(this, ...args);
38
+ NativeValidator.init(this, ...args);
57
39
  }
58
-
59
40
  function AjvValidator(...args) {
60
- NativeAjvValidator.init(this, ...args);
41
+ NativeAjvValidator.init(this, ...args);
61
42
  }
62
-
63
43
  // Returns the relation mappings as is. This only exists for typescript: it
64
44
  // preserves the exact types of the mappings (like the names of `extra`
65
45
  // columns) so that the relation types can be inferred from them.
66
46
  function defineRelations(relationMappings) {
67
- return relationMappings;
47
+ return relationMappings;
68
48
  }
69
-
70
49
  inherit(Model, NativeModel);
71
50
  inherit(QueryBuilder, NativeQueryBuilder);
72
51
  inherit(Validator, NativeValidator);
73
52
  inherit(AjvValidator, NativeAjvValidator);
74
-
75
53
  Model.QueryBuilder = QueryBuilder;
76
-
77
54
  module.exports = {
78
- Model,
79
- QueryBuilder,
80
- QueryBuilderBase,
81
- QueryBuilderOperation,
82
- RelationExpression,
83
- ValidationError,
84
- NotFoundError,
85
- AjvValidator,
86
- Validator,
87
- Relation,
88
- HasOneRelation,
89
- HasManyRelation,
90
- BelongsToOneRelation,
91
- HasOneThroughRelation,
92
- ManyToManyRelation,
93
-
94
- transaction,
95
- initialize,
96
- compose,
97
- mixin,
98
- defineRelations,
99
- ref,
100
- val,
101
- raw,
102
- fn,
103
- snakeCaseMappers,
104
- knexSnakeCaseMappers,
105
- knexIdentifierMapping,
106
-
107
- DBError,
108
- UniqueViolationError,
109
- NotNullViolationError,
110
- ForeignKeyViolationError,
111
- ConstraintViolationError,
112
- CheckViolationError,
113
- DataError,
55
+ Model,
56
+ QueryBuilder,
57
+ QueryBuilderBase,
58
+ QueryBuilderOperation,
59
+ RelationExpression,
60
+ ValidationError,
61
+ NotFoundError,
62
+ AjvValidator,
63
+ Validator,
64
+ Relation,
65
+ HasOneRelation,
66
+ HasManyRelation,
67
+ BelongsToOneRelation,
68
+ HasOneThroughRelation,
69
+ ManyToManyRelation,
70
+ transaction,
71
+ initialize,
72
+ compose,
73
+ mixin,
74
+ defineRelations,
75
+ ref,
76
+ val,
77
+ raw,
78
+ fn,
79
+ snakeCaseMappers,
80
+ knexSnakeCaseMappers,
81
+ knexIdentifierMapping,
82
+ DBError,
83
+ UniqueViolationError,
84
+ NotNullViolationError,
85
+ ForeignKeyViolationError,
86
+ ConstraintViolationError,
87
+ CheckViolationError,
88
+ DataError,
114
89
  };