mirror of
https://github.com/DeNNiiInc/dbgate.git
synced 2026-04-18 19:36:00 +00:00
referenco conditions
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { EngineDriver, SqlDumper } from 'dbgate-types';
|
||||
import { Command } from './types';
|
||||
import { Command, Condition } from './types';
|
||||
import { dumpSqlCommand } from './dumpSqlCommand';
|
||||
|
||||
export function treeToSql<T>(driver: EngineDriver, object: T, func: (dmp: SqlDumper, obj: T) => void) {
|
||||
@@ -16,3 +16,30 @@ export function scriptToSql(driver: EngineDriver, script: Command[]): string {
|
||||
}
|
||||
return dmp.s;
|
||||
}
|
||||
|
||||
export function mergeConditions(condition1: Condition, condition2: Condition): Condition {
|
||||
if (!condition1) return condition2;
|
||||
if (!condition2) return condition1;
|
||||
if (condition1.conditionType == 'and' && condition2.conditionType == 'and') {
|
||||
return {
|
||||
conditionType: 'and',
|
||||
conditions: [...condition1.conditions, ...condition2.conditions],
|
||||
};
|
||||
}
|
||||
if (condition1.conditionType == 'and') {
|
||||
return {
|
||||
conditionType: 'and',
|
||||
conditions: [...condition1.conditions, condition2],
|
||||
};
|
||||
}
|
||||
if (condition2.conditionType == 'and') {
|
||||
return {
|
||||
conditionType: 'and',
|
||||
conditions: [condition1, ...condition2.conditions],
|
||||
};
|
||||
}
|
||||
return {
|
||||
conditionType: 'and',
|
||||
conditions: [condition1, condition2],
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user