Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,5 @@
node_modules
.DS_Store
release
.cursor/plans
.cursor/chats
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,14 @@ const {
isSupportUnityCatalog,
getContainerName,
replaceSpaceWithUnderscore,
prepareName,
executeUnlessStreaming,
} = require('../utils/general');
const { getModifyPkConstraintsScripts } = require('./alterScriptHelpers/entityHelpers/primaryKeyHelper');
const { getAlterRelationshipsScriptDtos } = require('./alterScriptHelpers/alterRelationshipsHelper');
const { Runtime } = require('../enums/runtime');
const { AlterScriptDto } = require('./types/AlterScriptDto');
const { getItems } = require('./alterScriptHelpers/columnHelpers/getItems');
const { prepareName } = require('../../shared/general');

/**
* @param scripts {Array<string>}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ const { getDatabaseStatement, getDatabaseAlterStatement, getBucketKeyword } = re
const {
getEntityData,
getIsChangeProperties,
prepareName,
replaceSpaceWithUnderscore,
isSupportUnityCatalog,
} = require('../../utils/general');
Expand All @@ -13,6 +12,7 @@ const {
getModifyUnityCatalogTagsScriptDtos,
getModifyUnitySchemaTagsScriptDtos,
} = require('./containerHelpers/alterUnityTagsHelper');
const { prepareName } = require('../../../shared/general');

const containerProperties = ['comment', 'location', 'dbProperties', 'description'];
const otherContainerProperties = ['name', 'location'];
Expand Down
Original file line number Diff line number Diff line change
@@ -1,15 +1,9 @@
const _ = require('lodash');
const {
getFullEntityName,
replaceSpaceWithUnderscore,
prepareName,
getContainerName,
replaceDotWithUnderscore,
executeUnlessStreaming,
} = require('../../utils/general');
const { getFullEntityName, replaceSpaceWithUnderscore, executeUnlessStreaming } = require('../../utils/general');
const { AlterScriptDto } = require('../types/AlterScriptDto');
const { getUseSchemaScriptDto } = require('./alterEntityHelper');
const { getItems } = require('./columnHelpers/getItems');
const { prepareName } = require('../../../shared/general');

/**
* @param relationship {Object}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
const _ = require('lodash');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { checkFieldPropertiesChanged, generateFullEntityName, prepareName } = require('../../../utils/general');
const { checkFieldPropertiesChanged, generateFullEntityName } = require('../../../utils/general');
const { getColumns, getColumnStatement } = require('../../../helpers/columnHelper');
const { prepareName } = require('../../../../shared/general');

/**
* @return {boolean}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const _ = require('lodash');
const { generateFullEntityName, wrapInTicks } = require('../../../utils/general');
const { generateFullEntityName } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { wrapInTicks } = require('../../../../shared/general');

/**
* @typedef GetAlterScriptDtoFunction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const _ = require('lodash');
const { generateFullEntityName, prepareName, wrapInSingleQuotes } = require('../../../utils/general');
const { generateFullEntityName, wrapInSingleQuotes } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { prepareName } = require('../../../../shared/general');

/**
* @return {({ collection, dbVersion }: { collection: Object, dbVersion: string }) => Array<AlterScriptDto>}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const _ = require('lodash');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { generateFullEntityName, prepareName } = require('../../../utils/general');
const { generateFullEntityName } = require('../../../utils/general');
const { prepareName } = require('../../../../shared/general');

/**
* @return {({ collection, dbVersion }: { collection: Object, dbVersion: string }) => Array<AlterScriptDto>}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const _ = require('lodash');
const { generateFullEntityName, prepareName } = require('../../../utils/general');
const { generateFullEntityName } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { prepareName } = require('../../../../shared/general');

/**
* @return {({ collection, dbVersion }: { collection: Object, dbVersion: string }) => Array<AlterScriptDto>}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
const { getUnityTagsFromCompMod, getUnsetTagsNamesParamString } = require('../../../helpers/unityTagsHelper');
const { buildTagPairs } = require('../../../helpers/unityTagsHelper');
const { prepareName } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');

/**
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const { EntitiesThatSupportComments } = require('../../../enums/entityType');
const { replaceSpaceWithUnderscore, wrapInSingleQuotes, prepareName } = require('../../../utils/general');
const { replaceSpaceWithUnderscore, wrapInSingleQuotes } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { prepareName } = require('../../../../shared/general');

/**
* @return {{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ const { getColumns, getColumnsStatement } = require('../../../helpers/columnHelp
const {
getEntityProperties,
generateFullEntityName,
prepareName,
getDBVersionNumber,
executeUnlessStreaming,
} = require('../../../utils/general');
Expand All @@ -13,6 +12,7 @@ const { hydrateIndex } = require('./indexHelper');
const { generateModifyCollectionScript } = require('./modifyCollectionScript');
const { Runtime } = require('../../../enums/runtime');
const { getColumnTagsStatement } = require('../../../helpers/unityTagsHelper');
const { prepareName } = require('../../../../shared/general');

/**
* @typedef {{
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
const _ = require('lodash');
const { generateFullEntityName, getEntityNameFromCollection, prepareName } = require('../../../utils/general');
const { AlterScriptDto } = require('../../types/AlterScriptDto');
const { generateFullEntityName, getEntityNameFromCollection } = require('../../../utils/general');
const { prepareName } = require('../../../../shared/general');

/**
* @return {(collection: Object, guid: string) => Object | undefined}
Expand Down
4 changes: 2 additions & 2 deletions forward_engineering/ddlProvider/ddlProvider.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
const _ = require('lodash');
const templates = require('./ddlTemplates');
const { getFullEntityName, replaceSpaceWithUnderscore, prepareName, wrapInBrackets } = require('../utils/general');
const { getFullEntityName, replaceSpaceWithUnderscore, wrapInBrackets } = require('../utils/general');
const { getViewTagsStatement } = require('../helpers/unityTagsHelper');
const { getTablePropertiesClause, checkTablePropertiesDefined } = require('../helpers/tableHelper');
const viewHelper = require('../helpers/viewHelper');
const keyHelper = require('../helpers/keyHelper');
const { prepareName } = require('../../shared/general');

module.exports = app => {
const { assignTemplates } = app.require('@hackolade/ddl-fe-utils');
Expand Down
4 changes: 1 addition & 3 deletions forward_engineering/helpers/columnHelper.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,7 @@
'use strict';

const {
replaceSpaceWithUnderscore,
getName,
getTypeDescriptor,
prepareName,
commentDeactivatedStatements,
encodeStringLiteral,
wrapInBrackets,
Expand All @@ -13,6 +10,7 @@ const {
getDBVersionNumber,
} = require('../utils/general');
const { getCheckConstraint } = require('./constrainthelper');
const { prepareName } = require('../../shared/general');

const getStructChild = (name, type, comment) =>
`${prepareName(name)}: ${type}` + (comment ? ` COMMENT '${encodeStringLiteral(comment)}'` : '');
Expand Down
2 changes: 1 addition & 1 deletion forward_engineering/helpers/databaseHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ const {
getTab,
replaceSpaceWithUnderscore,
encodeStringLiteral,
prepareName,
getDBVersionNumber,
} = require('../utils/general');
const { getCatalogTagsStatement, getSchemaTagsStatement } = require('../helpers/unityTagsHelper');
const { Runtime } = require('../enums/runtime');
const { prepareName } = require('../../shared/general');

/**
* @param {string|undefined} location
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
const { wrapInTicks } = require('../../utils/general');
const { wrapInTicks } = require('../../../shared/general');

/**
* @typedef GetStatementsFunction
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
const _ = require('lodash');
const { prepareName, getName, getFullEntityName } = require('../../utils/general');
const { getName, getFullEntityName } = require('../../utils/general');
const { prepareName } = require('../../../shared/general');

/**
* @param entityJsonSchema {Object}
Expand Down
3 changes: 2 additions & 1 deletion forward_engineering/helpers/foreignKeyHelper.js
Original file line number Diff line number Diff line change
@@ -1,7 +1,8 @@
const _ = require('lodash');
const schemaHelper = require('./jsonSchemaHelper');
const { getName, getTab, commentDeactivatedStatements, prepareName } = require('../utils/general');
const { getName, getTab, commentDeactivatedStatements } = require('../utils/general');
const ddlTemplates = require('../ddlProvider/ddlTemplates');
const { prepareName } = require('../../shared/general');

const getIdToNameHashTable = (
relationships,
Expand Down
3 changes: 2 additions & 1 deletion forward_engineering/helpers/indexHelper.js
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
'use strict';

const _ = require('lodash');
const { getTab, buildStatement, prepareName, getName, replaceSpaceWithUnderscore } = require('../utils/general');
const { getTab, buildStatement, getName, replaceSpaceWithUnderscore } = require('../utils/general');
const schemaHelper = require('./jsonSchemaHelper');
const { getItemByPath } = require('./jsonSchemaHelper');
const { prepareName } = require('../../shared/general');

const getIndexStatement = ({ tableName, dbName, columns, options, isActivated }) => {
return buildStatement(
Expand Down
3 changes: 2 additions & 1 deletion forward_engineering/helpers/jsonSchemaHelper.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
'use strict';

const { getName, prepareName } = require('../utils/general');
const { getName } = require('../utils/general');
const { prepareName } = require('../../shared/general');

const getPathById = (schema, id, path) => {
if (schema.GUID === id) {
Expand Down
2 changes: 1 addition & 1 deletion forward_engineering/helpers/tableHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ const {
replaceSpaceWithUnderscore,
commentDeactivatedInlineKeys,
encodeStringLiteral,
prepareName,
getDifferentItems,
getFullEntityName,
getDBVersionNumber,
Expand All @@ -25,6 +24,7 @@ const constraintHelper = require('./constrainthelper');
const { getColumnTagsStatement } = require('./unityTagsHelper');
const { Runtime } = require('../enums/runtime');
const { ScheduleTypesEnum } = require('../enums/schedules');
const { prepareName } = require('../../shared/general');

const getCreateStatement = ({
fullTableName,
Expand Down
3 changes: 2 additions & 1 deletion forward_engineering/helpers/viewHelper.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ const _ = require('lodash');
const { getKeyNames } = require('./keyHelper');
const { getColumns } = require('./columnHelper');
const { getPartitionKeyStatement, getPartitionsKeys, getClusteringKeys } = require('./tableHelper');
const { prepareName, encodeStringLiteral, commentDeactivatedStatement } = require('../utils/general');
const { encodeStringLiteral, commentDeactivatedStatement } = require('../utils/general');
const { prepareName } = require('../../shared/general');

const getColumnNames = (collectionRefsDefinitionsMap, columns) => {
return _.uniq(
Expand Down
3 changes: 2 additions & 1 deletion forward_engineering/sampleGeneration/generateSamples.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const _ = require('lodash');
const { generateFullEntityNameFromBucketAndTableNames, prepareName } = require('../utils/general');
const { generateFullEntityNameFromBucketAndTableNames } = require('../utils/general');
const { mapInsertSampleToDml } = require('./mapInsertSampleToDml');
const { prepareName } = require('../../shared/general');

/**
* @param columnIndex {number}
Expand Down
43 changes: 3 additions & 40 deletions forward_engineering/utils/general.js
Original file line number Diff line number Diff line change
@@ -1,12 +1,8 @@
'use strict';

const _ = require('lodash');
const sqlFormatter = require('@sqltools/formatter');
const { RESERVED_WORDS_AS_ARRAY } = require('../enums/reservedWords');
const { Runtime } = require('../enums/runtime');
const { escapeV6IpForURL } = require('./escapeV6IpForURL');

const MAX_STANDARD_ASCII_SYMBOL_CODE = 127;
const { prepareName } = require('../../shared/general');

/**
* @typedef {((args: any) => string) | ((args: any) => ChainFunction)} ChainFunction
Expand Down Expand Up @@ -53,34 +49,6 @@ const buildStatement = (mainStatement, isActivated) => {
return chain;
};

const isEscaped = name => /`[\s\S]*`/.test(name);

const checkContainSpecialCharacters = (name = '') => {
return !/^\w+$/.test(name);
};

const prepareName = (name = '') => {
const containSpacesRegexp = /[\s-]/g;
const isEscapedName = isEscaped(name);
const containSpaces = containSpacesRegexp.test(name);
const containSpecialCharacters = checkContainSpecialCharacters(name);
const includeReversedWords = RESERVED_WORDS_AS_ARRAY.includes(name.toLowerCase());
const containVariableExpression = /\$\{.+\}/g.test(name);

const shouldBeWrappedInTicks =
!isEscapedName &&
(containSpaces || containSpecialCharacters || includeReversedWords || containVariableExpression);

if (name === '') {
return '';
} else if (shouldBeWrappedInTicks) {
name = name.replace('`', '``');

return wrapInTicks(name);
} else {
return name;
}
};
const replaceSpaceWithUnderscore = (name = '') => {
return name.replace(/\s/g, '_');
};
Expand All @@ -96,6 +64,7 @@ const getRelationshipName = relationship => {
};

const getTab = (tabNum, configData) => (Array.isArray(configData) ? configData[tabNum] || {} : {});

const indentString = (str, tab = 4) =>
(str || '')
.split('\n')
Expand All @@ -112,7 +81,7 @@ const getTypeDescriptor = typeName => {
descriptors[typeName] = require(`../../types/${typeName}.json`);

return descriptors[typeName];
} catch (e) {
} catch {
return {};
}
};
Expand Down Expand Up @@ -178,10 +147,6 @@ const wrapInSingleQuotes = (str = '') => {
return `'${encodeStringLiteral(str)}'`;
};

const wrapInTicks = (str = '') => {
return `\`${str}\``;
};

const wrapInBrackets = (str = '') => {
return /^\(.*\)$/.test(str) ? str : `(${str})`;
};
Expand Down Expand Up @@ -365,7 +330,6 @@ module.exports = {
indentString,
getTypeDescriptor,
getRelationshipName,
prepareName,
replaceSpaceWithUnderscore,
replaceDotWithUnderscore,
commentDeactivatedStatement,
Expand All @@ -375,7 +339,6 @@ module.exports = {
encodeStringLiteral,
buildScript,
wrapInSingleQuotes,
wrapInTicks,
wrapInBrackets,
getEntityData,
getFullEntityName,
Expand Down
1 change: 1 addition & 0 deletions reverse_engineering/api.js
Original file line number Diff line number Diff line change
Expand Up @@ -216,6 +216,7 @@ module.exports = {
collections,
clusterState.spark_version,
logger,
clusterData,
);
const ddlByEntity = entitiesDdl.reduce((ddlByEntity, ddlObject) => {
const entityName = Object.keys(ddlObject)[0];
Expand Down
Loading
Loading