nodester 0.4.3 → 0.4.4
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.
package/lib/models/define.js
CHANGED
|
@@ -106,7 +106,7 @@ function _getIncludesTree(data=null) {
|
|
|
106
106
|
for (const [ associationName, associationDefinition ] of associationEntries) {
|
|
107
107
|
const formatted = { association: associationName };
|
|
108
108
|
|
|
109
|
-
if (typeof data === 'object') {
|
|
109
|
+
if (!!data && typeof data === 'object') {
|
|
110
110
|
// If data (for example during create)
|
|
111
111
|
// is set, go deeper:
|
|
112
112
|
const keys = Object.keys( data );
|
|
@@ -34,10 +34,11 @@ module.exports = traverse;
|
|
|
34
34
|
* @param {ModelsTreeNode} queryNode
|
|
35
35
|
* @param {NodesterFilter} filter
|
|
36
36
|
* @param {Model} model
|
|
37
|
+
* @param {Object} association (optional)
|
|
37
38
|
*
|
|
38
39
|
* @access public
|
|
39
40
|
*/
|
|
40
|
-
function traverse(queryNode, filter=null, model=null) {
|
|
41
|
+
function traverse(queryNode, filter=null, model=null, association=null) {
|
|
41
42
|
const _model = model ?? filter.model;
|
|
42
43
|
|
|
43
44
|
try {
|
|
@@ -236,21 +237,25 @@ function traverse(queryNode, filter=null, model=null) {
|
|
|
236
237
|
const staticClausesEntries = Object.entries(filter.statics.clauses);
|
|
237
238
|
|
|
238
239
|
for (let entry of staticClausesEntries) {
|
|
239
|
-
const [clauseName, staticClauseValue] = entry;
|
|
240
|
+
const [ clauseName, staticClauseValue ] = entry;
|
|
240
241
|
|
|
241
242
|
switch(clauseName) {
|
|
242
243
|
case 'limit':
|
|
243
244
|
newQuery.limit = staticClauseValue;
|
|
244
245
|
continue;
|
|
246
|
+
|
|
245
247
|
case 'skip':
|
|
246
248
|
newQuery.offset = staticClauseValue;
|
|
247
249
|
continue;
|
|
250
|
+
|
|
248
251
|
case 'order':
|
|
249
252
|
order.order = staticClauseValue;
|
|
250
253
|
continue;
|
|
254
|
+
|
|
251
255
|
case 'order_by':
|
|
252
256
|
order.by = staticClauseValue;
|
|
253
257
|
continue;
|
|
258
|
+
|
|
254
259
|
default:
|
|
255
260
|
break;
|
|
256
261
|
}
|
|
@@ -378,7 +383,7 @@ function _traverseIncludes(includes, rootModel, filter, resultQuery) {
|
|
|
378
383
|
|
|
379
384
|
const includeModel = association.target;
|
|
380
385
|
// Build query for this include.
|
|
381
|
-
const associationQuery = traverse(include, filter.includes[includeName], includeModel);
|
|
386
|
+
const associationQuery = traverse(include, filter.includes[includeName], includeModel, association);
|
|
382
387
|
|
|
383
388
|
addAssociationQuery(associationQuery, includeName, resultQuery);
|
|
384
389
|
}
|