Socket
Socket
Sign inDemoInstall

leo-connector-common

Package Overview
Dependencies
Maintainers
4
Versions
108
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

leo-connector-common - npm Package Compare versions

Comparing version 2.1.0-RC2 to 2.1.0-RC3

79

datawarehouse/load.js

@@ -112,49 +112,52 @@ "use strict";

let type = table.structure[field] && table.structure[field].type.match(/(\w+)(\((\d+)\))?/) || [undefined, undefined];
let fieldDefault = table.structure[field] && table.structure[field].default || null;
let value = eventObj[field];
switch (type[1]) {
case 'varchar':
if (!validate.isValidString(value, type[3] && type[3] || 255)) {
return handleFailedValidation(ID, obj, `Invalid String on field ${field}`);
}
if (value !== null) {
switch (type[1]) {
case 'varchar':
if (!validate.isValidString(value, type[3] && type[3] || 255, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid String on field ${field}`);
}
// check for enum and validate if exists
if (table.structure[field].sort && table.structure[field].sort.values && !validate.isValidEnum(value, table.structure[field].sort.values)) {
return handleFailedValidation(ID, obj, `Invalid enum on field ${field}`);
}
break;
// check for enum and validate if exists
if (table.structure[field].sort && table.structure[field].sort.values && !validate.isValidEnum(value, table.structure[field].sort.values, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid enum on field ${field}`);
}
break;
case 'timestamp':
if (!validate.isValidTimestamp(value)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'timestamp':
if (!validate.isValidTimestamp(value, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'datetime':
if (!validate.isValidDatetime(value)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'datetime':
if (!validate.isValidDatetime(value, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'integer':
if (!validate.isValidInteger(value)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'integer':
if (!validate.isValidInteger(value, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'bigint':
if (!validate.isValidBigint(value)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'bigint':
if (!validate.isValidBigint(value, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'float':
if (!validate.isValidFloat(value)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case 'float':
if (!validate.isValidFloat(value, fieldDefault)) {
return handleFailedValidation(ID, obj, `Invalid ${type[1]} on field ${field}`);
}
break;
case undefined:
return handleFailedValidation(ID, obj, `Invalid ${type[1]} in the table config for table: ${table.identifier} field ${field}`);
break;
case undefined:
return handleFailedValidation(ID, obj, `Invalid ${type[1]} in the table config for table: ${table.identifier} field ${field}`);
break;
}
}

@@ -161,0 +164,0 @@ });

@@ -727,3 +727,3 @@ 'use strict';

processResults(err, rows, done) {
if (rows && Object.keys(rows[0]).length > 1) {
if (rows && rows.length >= 1 && Object.keys(rows[0]).length > 1) {
return done(err, rows);

@@ -730,0 +730,0 @@ }

{
"name": "leo-connector-common",
"version": "2.1.0-RC2",
"version": "2.1.0-RC3",
"description": "Common package for all Leo Platform database connectors",

@@ -5,0 +5,0 @@ "main": "index.js",

@@ -11,6 +11,9 @@ 'use strict';

* @param maxLength {int}
* @param fieldDefault
* @returns {boolean}
*/
isValidString: function (value, maxLength) {
if (typeof value !== 'string') {
isValidString: function (value, maxLength, fieldDefault) {
if (value === fieldDefault) {
return true;
} else if (typeof value !== 'string') {
return false;

@@ -28,6 +31,7 @@ } else if (value.length > maxLength) {

* @param values {array}
* @param fieldDefault
* @returns {boolean}
*/
isValidEnum: function (value, values) {
return values.indexOf(value) !== -1;
isValidEnum: function (value, values, fieldDefault) {
return value === fieldDefault || values.indexOf(value) !== -1;
},

@@ -38,6 +42,7 @@

* @param value
* @param fieldDefault
* @returns {boolean}
*/
isValidTimestamp: function (value) {
return moment(value).format() !== 'Invalid date';
isValidTimestamp: function (value, fieldDefault) {
return value === fieldDefault || moment(value).isValid();
},

@@ -48,7 +53,8 @@

* @param value
* @param fieldDefault
* @returns {boolean}
*/
isValidDatetime: function (value) {
isValidDatetime: function (value, fieldDefault) {
// check if it's a valid string. Most datetimes would use 35 chars max if the month is a full name. Give a little extra buffer.
return this.isValidString(value, 40) && moment(value).format() !== 'Invalid date';
return value === fieldDefault || this.isValidString(value, 40) && moment(value).isValid();
},

@@ -59,6 +65,9 @@

* @param value
* @param fieldDefault
* @returns {boolean}
*/
isValidInteger: function (value) {
if (typeof value !== 'number') {
isValidInteger: function (value, fieldDefault) {
if (value === fieldDefault) {
return true;
} else if (typeof value !== 'number') {
return false;

@@ -78,6 +87,9 @@ } else if (value > 2147483647) { // above this, we're going into bigint territory

* @param maxSize {default: 9223372036854775807, which is the max bigint size for databases}
* @param fieldDefault
* @returns {boolean}
*/
isValidBigint: function (value, maxSize = '9223372036854775807') {
if (typeof value !== 'number' && !value.match(/^\-?\d{0,19}$/)) {
isValidBigint: function (value, maxSize = '9223372036854775807', fieldDefault) {
if (value === fieldDefault) {
return true;
} else if (typeof value !== 'number' && !value.match(/^\-?\d{0,19}$/)) {
logger.error('Invalid bigint', value);

@@ -112,7 +124,8 @@ return false;

* @param value
* @param fieldDefault
* @returns {boolean}
*/
isValidFloat: function (value) {
return parseFloat(value) == value;
isValidFloat: function (value, fieldDefault) {
return parseFloat(value) == value || value === fieldDefault;
},
};
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc