selectionResult

This commit is contained in:
Xu Chang 2022-03-18 14:07:15 +08:00
parent 59b13b9d2e
commit cca12392c9
6 changed files with 29 additions and 14 deletions

View File

@ -1,7 +1,11 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];

View File

@ -1,7 +1,11 @@
"use strict";
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
var desc = Object.getOwnPropertyDescriptor(m, k);
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
desc = { enumerable: true, get: function() { return m[k]; } };
}
Object.defineProperty(o, k2, desc);
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];

View File

@ -76,7 +76,7 @@ class CascadeStore extends RowStore_1.RowStore {
}
}, context, params);
(0, lodash_1.assign)(row, {
[attr]: row2,
[attr]: row2[0],
});
}
for (const attr in manyToOneOnEntity) {
@ -88,7 +88,7 @@ class CascadeStore extends RowStore_1.RowStore {
}
}, context, params);
(0, lodash_1.assign)(row, {
[attr]: row2,
[attr]: row2[0],
});
}
}

11
lib/types/Entity.d.ts vendored
View File

@ -94,13 +94,16 @@ declare type RemoveOpResult<ED extends EntityDict, T extends keyof ED> = {
e: T;
f?: DeduceFilter<ED[T]['Schema']>;
};
declare type SelectOpResult<ED extends EntityDict, T extends keyof ED> = {
declare type SelectOpResult<ED extends EntityDict> = {
a: 's';
e: T;
d: Array<ED[T]['OpSchema']>;
d: {
[T in keyof ED]?: {
[ID: string]: ED[T]['OpSchema'];
};
};
};
export interface OperationResult<ED extends EntityDict> {
operations: Array<CreateOpResult<ED, keyof ED> | UpdateOpResult<ED, keyof ED> | RemoveOpResult<ED, keyof ED> | SelectOpResult<ED, keyof ED>>;
operations: Array<CreateOpResult<ED, keyof ED> | UpdateOpResult<ED, keyof ED> | RemoveOpResult<ED, keyof ED> | SelectOpResult<ED>>;
ids?: string[];
stats?: 'todo';
errors?: Array<{

View File

@ -94,7 +94,7 @@ export abstract class CascadeStore<ED extends {
} as any
}, context, params);
assign(row, {
[attr]: row2,
[attr]: row2[0],
});
}
for (const attr in manyToOneOnEntity) {
@ -106,7 +106,7 @@ export abstract class CascadeStore<ED extends {
} as any
}, context, params);
assign(row, {
[attr]: row2,
[attr]: row2[0],
});
}
}

View File

@ -125,14 +125,18 @@ type RemoveOpResult<ED extends EntityDict, T extends keyof ED> = {
f?: DeduceFilter<ED[T]['Schema']>;
};
type SelectOpResult<ED extends EntityDict, T extends keyof ED> = {
// Select的级联可以去重压缩返回的数据大小
type SelectOpResult<ED extends EntityDict> = {
a: 's',
e: T;
d: Array<ED[T]['OpSchema']>;
d: {
[T in keyof ED]?: {
[ID: string]: ED[T]['OpSchema'];
};
};
}
export interface OperationResult<ED extends EntityDict> {
operations: Array<CreateOpResult<ED, keyof ED> | UpdateOpResult<ED, keyof ED> | RemoveOpResult<ED, keyof ED> | SelectOpResult<ED, keyof ED>>; // create/update/remove返回的动作结果
operations: Array<CreateOpResult<ED, keyof ED> | UpdateOpResult<ED, keyof ED> | RemoveOpResult<ED, keyof ED> | SelectOpResult<ED>>; // create/update/remove返回的动作结果
ids?: string[];
stats?: 'todo';
errors?: Array<{