operationResult的merge分离,修正了一个dependencyBuilder的小bug
This commit is contained in:
parent
23052dcf67
commit
82c72488e7
|
|
@ -42,7 +42,7 @@ function analyzeDepedency(cwd) {
|
|||
else {
|
||||
const depConfigJsFile = join(dir, 'lib', 'configuration', 'dependency.js');
|
||||
if ((0, fs_1.existsSync)(depConfigJsFile)) {
|
||||
dependencies = require(depConfigJsFile);
|
||||
dependencies = require(depConfigJsFile).default;
|
||||
}
|
||||
else {
|
||||
// 没有依赖文件,直接返回
|
||||
|
|
|
|||
|
|
@ -14,6 +14,5 @@ export declare abstract class RowStore<ED extends EntityDict> {
|
|||
abstract registerOperationRewriter(rewriter: OperationRewriter<ED, AsyncContext<ED> | SyncContext<ED>, SelectOption>): void;
|
||||
abstract registerSelectionRewriter(rewriter: SelectionRewriter<ED, AsyncContext<ED> | SyncContext<ED>, OperateOption>): void;
|
||||
getSchema(): StorageSchema<ED>;
|
||||
mergeOperationResult(result: OperationResult<ED>, toBeMerged: OperationResult<ED>): void;
|
||||
mergeMultipleResults(toBeMerged: OperationResult<ED>[]): OperationResult<ED>;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.RowStore = void 0;
|
||||
const lodash_1 = require("../utils/lodash");
|
||||
const operationResult_1 = require("../utils/operationResult");
|
||||
class RowStore {
|
||||
storageSchema;
|
||||
constructor(storageSchema) {
|
||||
|
|
@ -10,22 +10,9 @@ class RowStore {
|
|||
getSchema() {
|
||||
return this.storageSchema;
|
||||
}
|
||||
mergeOperationResult(result, toBeMerged) {
|
||||
for (const entity in toBeMerged) {
|
||||
for (const action in toBeMerged[entity]) {
|
||||
const value = (0, lodash_1.get)(result, `${entity}.${action}`);
|
||||
if (typeof value === 'number') {
|
||||
(0, lodash_1.set)(result, `${entity}.${action}`, value + toBeMerged[entity][action]);
|
||||
}
|
||||
else {
|
||||
(0, lodash_1.set)(result, `${entity}.${action}`, toBeMerged[entity][action]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
mergeMultipleResults(toBeMerged) {
|
||||
const result = {};
|
||||
toBeMerged.forEach(ele => this.mergeOperationResult(result, ele));
|
||||
toBeMerged.forEach(ele => (0, operationResult_1.mergeOperationResult)(result, ele));
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,2 @@
|
|||
import { OperationResult, EntityDict } from "../types/Entity";
|
||||
export declare function mergeOperationResult<ED extends EntityDict>(result: OperationResult<ED>, toBeMerged: OperationResult<ED>): OperationResult<ED>;
|
||||
|
|
@ -0,0 +1,19 @@
|
|||
"use strict";
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.mergeOperationResult = void 0;
|
||||
const lodash_1 = require("../utils/lodash");
|
||||
function mergeOperationResult(result, toBeMerged) {
|
||||
for (const entity in toBeMerged) {
|
||||
for (const action in toBeMerged[entity]) {
|
||||
const value = (0, lodash_1.get)(result, `${entity}.${action}`);
|
||||
if (typeof value === 'number') {
|
||||
(0, lodash_1.set)(result, `${entity}.${action}`, value + toBeMerged[entity][action]);
|
||||
}
|
||||
else {
|
||||
(0, lodash_1.set)(result, `${entity}.${action}`, toBeMerged[entity][action]);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
exports.mergeOperationResult = mergeOperationResult;
|
||||
|
|
@ -53,7 +53,7 @@ export function analyzeDepedency(cwd: string) {
|
|||
else {
|
||||
const depConfigJsFile = join(dir, 'lib', 'configuration', 'dependency.js');
|
||||
if (existsSync(depConfigJsFile)) {
|
||||
dependencies = require(depConfigJsFile);
|
||||
dependencies = require(depConfigJsFile).default;
|
||||
}
|
||||
else {
|
||||
// 没有依赖文件,直接返回
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import { get, set } from '../utils/lodash';
|
|||
import { AsyncContext } from '../store/AsyncRowStore';
|
||||
import { SyncContext } from '../store/SyncRowStore';
|
||||
import { OperateOption, SelectOption } from '.';
|
||||
import { mergeOperationResult } from '../utils/operationResult';
|
||||
|
||||
export type TxnOption = {
|
||||
isolationLevel: 'repeatable read' | 'serializable';
|
||||
|
|
@ -41,24 +42,10 @@ export abstract class RowStore<ED extends EntityDict> {
|
|||
return this.storageSchema;
|
||||
}
|
||||
|
||||
mergeOperationResult(result: OperationResult<ED>, toBeMerged: OperationResult<ED>) {
|
||||
for (const entity in toBeMerged) {
|
||||
for (const action in toBeMerged[entity]) {
|
||||
const value = get(result, `${entity}.${action}`);
|
||||
if (typeof value === 'number') {
|
||||
set(result, `${entity}.${action}`, value + toBeMerged[entity]![action]!);
|
||||
}
|
||||
else {
|
||||
set(result, `${entity}.${action}`, toBeMerged[entity]![action]!);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
mergeMultipleResults(toBeMerged: OperationResult<ED>[]) {
|
||||
const result: OperationResult<ED> = {};
|
||||
toBeMerged.forEach(
|
||||
ele => this.mergeOperationResult(result, ele)
|
||||
ele => mergeOperationResult(result, ele)
|
||||
);
|
||||
return result;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,17 @@
|
|||
import { OperationResult, EntityDict } from "../types/Entity";
|
||||
import { get, set } from '../utils/lodash';
|
||||
|
||||
export function mergeOperationResult<ED extends EntityDict>(result: OperationResult<ED>, toBeMerged: OperationResult<ED>) {
|
||||
for (const entity in toBeMerged) {
|
||||
for (const action in toBeMerged[entity]) {
|
||||
const value = get(result, `${entity}.${action}`);
|
||||
if (typeof value === 'number') {
|
||||
set(result, `${entity}.${action}`, value + toBeMerged[entity]![action]!);
|
||||
}
|
||||
else {
|
||||
set(result, `${entity}.${action}`, toBeMerged[entity]![action]!);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
Loading…
Reference in New Issue