处理aggr的reinforce有小问题
This commit is contained in:
parent
2fc2bdeb8f
commit
b8c5fbe46e
|
|
@ -21,20 +21,24 @@ class CascadeStore extends RowStore_1.RowStore {
|
|||
selectionRewriters = [];
|
||||
operationRewriters = [];
|
||||
async reinforceSelectionAsync(entity, selection, context, option, isAggr) {
|
||||
this.reinforceSelectionInner(entity, selection, context, isAggr);
|
||||
if (!isAggr) {
|
||||
this.reinforceSelectionInner(entity, selection, context);
|
||||
}
|
||||
const rewriterPromises = this.selectionRewriters.map(ele => ele(this.getSchema(), entity, selection, context, option, isAggr));
|
||||
if (rewriterPromises.length > 0) {
|
||||
await Promise.all(rewriterPromises);
|
||||
}
|
||||
}
|
||||
reinforceSelectionSync(entity, selection, context, option, isAggr) {
|
||||
this.reinforceSelectionInner(entity, selection, context, isAggr);
|
||||
if (!isAggr) {
|
||||
this.reinforceSelectionInner(entity, selection, context);
|
||||
}
|
||||
this.selectionRewriters.forEach(ele => {
|
||||
const result = ele(this.getSchema(), entity, selection, context, option);
|
||||
(0, assert_1.default)(!(result instanceof Promise));
|
||||
});
|
||||
}
|
||||
reinforceSelectionInner(entity, selection, context, isAggr) {
|
||||
reinforceSelectionInner(entity, selection, context) {
|
||||
const { filter, data, sorter } = selection;
|
||||
const assignNecessaryProjectionAttrs = (projectionNode, attrs) => {
|
||||
attrs.forEach((attr) => {
|
||||
|
|
@ -294,10 +298,7 @@ class CascadeStore extends RowStore_1.RowStore {
|
|||
}
|
||||
}
|
||||
};
|
||||
if (!isAggr) {
|
||||
// aggr的projetion不能改动
|
||||
checkProjectionNode(entity, data);
|
||||
}
|
||||
if (!sorter && relevantIds.length === 0) {
|
||||
// 如果没有sorter,就给予一个按createAt逆序的sorter
|
||||
Object.assign(selection, {
|
||||
|
|
|
|||
|
|
@ -36,8 +36,9 @@ export abstract class CascadeStore<ED extends EntityDict & BaseEntityDict> exten
|
|||
option: Op,
|
||||
isAggr?: true) {
|
||||
|
||||
|
||||
this.reinforceSelectionInner(entity, selection, context, isAggr);
|
||||
if (!isAggr) {
|
||||
this.reinforceSelectionInner(entity, selection, context);
|
||||
}
|
||||
|
||||
const rewriterPromises = this.selectionRewriters.map(
|
||||
ele => ele(this.getSchema(), entity, selection, context, option, isAggr)
|
||||
|
|
@ -55,7 +56,9 @@ export abstract class CascadeStore<ED extends EntityDict & BaseEntityDict> exten
|
|||
option: Op,
|
||||
isAggr?: true
|
||||
) {
|
||||
this.reinforceSelectionInner(entity, selection, context, isAggr);
|
||||
if (!isAggr) {
|
||||
this.reinforceSelectionInner(entity, selection, context);
|
||||
}
|
||||
|
||||
this.selectionRewriters.forEach(
|
||||
ele => {
|
||||
|
|
@ -69,7 +72,6 @@ export abstract class CascadeStore<ED extends EntityDict & BaseEntityDict> exten
|
|||
entity: keyof ED,
|
||||
selection: ED[keyof ED]['Selection'] | ED[keyof ED]['Aggregation'],
|
||||
context: Cxt,
|
||||
isAggr?: true,
|
||||
) {
|
||||
const { filter, data, sorter } = selection;
|
||||
|
||||
|
|
@ -357,10 +359,7 @@ export abstract class CascadeStore<ED extends EntityDict & BaseEntityDict> exten
|
|||
}
|
||||
}
|
||||
};
|
||||
if (!isAggr) {
|
||||
// aggr的projetion不能改动
|
||||
checkProjectionNode(entity, data);
|
||||
}
|
||||
|
||||
if (!sorter && relevantIds.length === 0) {
|
||||
// 如果没有sorter,就给予一个按createAt逆序的sorter
|
||||
|
|
|
|||
Loading…
Reference in New Issue