referenco conditions

This commit is contained in:
Jan Prochazka
2020-12-29 12:18:07 +01:00
parent 5558869ff4
commit 10a213d8a3
2 changed files with 80 additions and 18 deletions

View File

@@ -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],
};
}