UNPKG

ddl-manager

Version:

store postgres procedures and triggers in files

35 lines (29 loc) 1.14 kB
import { AbstractAstElement, BlankLine, Expression, If } from "../../../../ast"; import { IJoin } from "../../../processor/buildJoinVariables"; import { assignCombinedJoinVariables } from "./assignCombinedJoinVariables"; import { groupJoinsByTableAndFilter } from "./groupJoinsByTableAndFilter"; import { replaceTableToVariableOrRow } from "./replaceTableToVariableOrRow"; export function assignVariables(joins: IJoin[], row: "new" | "old") { const lines: AbstractAstElement[] = []; const combinedJoins = groupJoinsByTableAndFilter(joins); for (const combinedJoin of combinedJoins) { lines.push( new If({ if: Expression.and([ replaceTableToVariableOrRow( combinedJoin.byColumn, joins, row ) + " is not null" ]), then: assignCombinedJoinVariables( combinedJoin, joins, row ) }) ); lines.push( new BlankLine() ); } return lines; }