Skip to content

Commit 2762ec0

Browse files
authored
HCK-11976: fixed invalid comma positioning (#148)
1 parent 3197f1b commit 2762ec0

File tree

3 files changed

+28
-9
lines changed

3 files changed

+28
-9
lines changed

forward_engineering/ddlProvider/ddlHelpers/constraintsHelper.js

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,22 @@ const { commentIfDeactivated, checkAllKeysDeactivated, getColumnsList, wrapInQuo
33
const assignTemplates = require('../../utils/assignTemplates');
44
const templates = require('../templates');
55

6-
const generateConstraintsString = (dividedConstraints, isParentActivated) => {
6+
const generateConstraintsString = ({
7+
dividedConstraints,
8+
isParentActivated,
9+
activatedConstraintsPrefix = ',\n\t',
10+
deactivatedConstraintsPrefix = '\n\t',
11+
}) => {
712
const deactivatedItemsAsString = commentIfDeactivated((dividedConstraints?.deactivatedItems || []).join(',\n\t'), {
813
isActivated: !isParentActivated,
914
isPartOfLine: true,
1015
});
1116
const activatedConstraints = dividedConstraints?.activatedItems?.length
12-
? ',\n\t' + dividedConstraints.activatedItems.join(',\n\t')
17+
? activatedConstraintsPrefix + dividedConstraints.activatedItems.join(',\n\t')
1318
: '';
1419

1520
const deactivatedConstraints = dividedConstraints?.deactivatedItems?.length
16-
? '\n\t' + deactivatedItemsAsString
21+
? deactivatedConstraintsPrefix + deactivatedItemsAsString
1722
: '';
1823

1924
return activatedConstraints + deactivatedConstraints;

forward_engineering/ddlProvider/ddlProvider.js

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ const {
1616
getNamePrefixedWithSchemaName,
1717
getViewData,
1818
getDbVersion,
19+
addCommaPrefix,
1920
} = require('../utils/general');
2021
const assignTemplates = require('../utils/assignTemplates');
2122
const {
@@ -137,19 +138,29 @@ module.exports = (baseProvider, options, app) => {
137138
const constraintWarnings = getConstraintsWarnings(
138139
keyConstraints.filter(({ errorMessage }) => errorMessage),
139140
);
140-
const keyConstraintsString = `${generateConstraintsString(
141-
dividedKeysConstraints,
142-
isActivated,
143-
)}${constraintWarnings}`;
141+
const doKeyConstraintsHaveWarnings = Boolean(constraintWarnings);
142+
const keyConstraintsString = `${generateConstraintsString({
143+
dividedConstraints: dividedKeysConstraints,
144+
isParentActivated: isActivated,
145+
})}${addCommaPrefix(constraintWarnings, doKeyConstraintsHaveWarnings)}`;
144146
const keyConstraintsValue = partitionOf ? keyConstraintsString?.slice(1) : keyConstraintsString;
145147

146148
const dividedForeignKeys = divideIntoActivatedAndDeactivated(foreignKeyConstraints, key => key.statement);
147-
const foreignKeyConstraintsString = generateConstraintsString(dividedForeignKeys, isActivated);
149+
const shouldAddCommaPrefixToForeignKeysConstraints =
150+
!doKeyConstraintsHaveWarnings || checkConstraints.length !== 0;
151+
const foreignKeyConstraintsString = generateConstraintsString({
152+
dividedConstraints: dividedForeignKeys,
153+
isParentActivated: isActivated,
154+
activatedConstraintsPrefix: addCommaPrefix('\n\t', shouldAddCommaPrefixToForeignKeysConstraints),
155+
});
148156

149157
const columnDescriptions = '\n' + getColumnComments(tableName, columnDefinitions);
150158
const template = partitionOf ? templates.createTablePartitionOf : templates.createTable;
151159

152-
const checkConstraintPrefix = partitionOf && !keyConstraintsString ? '\n\t' : ',\n\t';
160+
const checkConstraintPrefix =
161+
partitionOf && !keyConstraintsString
162+
? '\n\t'
163+
: `${addCommaPrefix('\n\t', !doKeyConstraintsHaveWarnings)}`;
153164
const checkConstraintsValue = !_.isEmpty(checkConstraints)
154165
? wrap(_.join(checkConstraints, ',\n\t'), checkConstraintPrefix, '')
155166
: '';

forward_engineering/utils/general.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,8 @@ const wrap = (str, start = "'", end = "'") => {
118118
}
119119
};
120120

121+
const addCommaPrefix = (string, shouldAddComma) => (shouldAddComma ? `,${string}` : string);
122+
121123
const checkFieldPropertiesChanged = (compMod, propertiesToCheck) => {
122124
return propertiesToCheck.some(prop => compMod?.oldField[prop] !== compMod?.newField[prop]);
123125
};
@@ -298,4 +300,5 @@ module.exports = {
298300
getSchemaNameFromCollection,
299301
getGroupItemsByCompMode,
300302
wrapInSingleQuotes,
303+
addCommaPrefix,
301304
};

0 commit comments

Comments
 (0)