From ebfc63b8fd21c0c6e5d37abadf4237a5581a75d8 Mon Sep 17 00:00:00 2001 From: Kyriakos Barbounakis Date: Fri, 23 Aug 2024 10:05:56 +0300 Subject: [PATCH] reset nested query expression (#155) * reset nested query expression * 2.14.2 --- OnNestedQueryOptionsListener.js | 30 ++++++++++++++++-------------- package-lock.json | 4 ++-- package.json | 2 +- 3 files changed, 19 insertions(+), 17 deletions(-) diff --git a/OnNestedQueryOptionsListener.js b/OnNestedQueryOptionsListener.js index 9fddf2b..6bd273b 100644 --- a/OnNestedQueryOptionsListener.js +++ b/OnNestedQueryOptionsListener.js @@ -1,4 +1,4 @@ -const { QueryExpression } = require('@themost/query'); +const { QueryExpression, QueryField } = require('@themost/query'); // eslint-disable-next-line no-unused-vars const { DataEventArgs } = require('./types'); const { instanceOf } = require('./instance-of'); @@ -106,11 +106,6 @@ class OnNestedQueryOptionsListener { const nestedModel = context.model(item.$entity.model); // if model exists if (nestedModel != null) { - if (item.$entity.$as != null) { - // change view to follow entity alias defined by the current query - // this operation will be used while parsing filter and creating a new query expression - nestedModel.view = item.$entity.$as; - } return nestedModel.filterAsync(options).then((q) => { /** * @typedef {object} QueryExpressionWithPrepared @@ -118,14 +113,21 @@ class OnNestedQueryOptionsListener { */ /** @type {QueryExpressionWithPrepared} */ const { query } = q; - if (query && query.$prepared) { - item.$with = { - $and: [ - item.$with, - query.$prepared - ] - } - } + const collection = item.$entity.name; + Object.assign(item, { + $entity: Object.assign(query, { + $select: { + [collection]: [ + new QueryField({ + $name: collection.concat('.*') + }) + ] + }, + $alias: item.$entity.$as, + $join: item.$entity.$join, + }), + model: item.$entity.model + }) return Promise.resolve(); }); } diff --git a/package-lock.json b/package-lock.json index 6b537c0..5cc9652 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@themost/data", - "version": "2.14.1", + "version": "2.14.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@themost/data", - "version": "2.14.0", + "version": "2.14.2", "license": "BSD-3-Clause", "dependencies": { "@themost/events": "^1.0.5", diff --git a/package.json b/package.json index 65a4099..7c475e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@themost/data", - "version": "2.14.1", + "version": "2.14.2", "description": "MOST Web Framework Codename Blueshift - Data module", "main": "index.js", "scripts": {