in Website/Packages/datax-pipeline/src/modules/flowDefinition/flowSelectors.js [426:468]
function isSinkerSettingsComplete(sinker) {
let validations = [];
validations.push(sinker && sinker.properties);
validations.push(Helpers.isNumberAndStringOnly(sinker.id));
switch (sinker.type) {
case Models.sinkerTypeEnum.cosmosdb:
validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
validations.push(sinker.properties.db && Helpers.isNumberAndStringOnly(sinker.properties.db));
validations.push(sinker.properties.collection && Helpers.isNumberAndStringOnly(sinker.properties.collection));
break;
case Models.sinkerTypeEnum.eventHub:
validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
break;
case Models.sinkerTypeEnum.blob:
validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
validations.push(sinker.properties.containerName && Helpers.isNumberAndStringOnly(sinker.properties.containerName));
validations.push(sinker.properties.blobPrefix && sinker.properties.blobPrefix.trim() !== '');
validations.push(sinker.properties.blobPartitionFormat && sinker.properties.blobPartitionFormat.trim() !== '');
break;
case Models.sinkerTypeEnum.sql:
validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
validations.push(sinker.properties.tableName && sinker.properties.connectionString.trim() !== '');
break;
case Models.sinkerTypeEnum.metric:
// no additional validation needed, this is a system provided sinker type
break;
case Models.sinkerTypeEnum.local:
validations.push(sinker.properties.connectionString && sinker.properties.connectionString.trim() !== '');
break;
default:
// if unknown type, return validation failure so newly onboarded sinker will look into what needs to be validated
validations.push(false);
break;
}
return validations.every(value => value);
}