mysql-live
Version:
Brings the server.publish and client.subscribe for live updates on mysql database. The only one Live Collections.
58 lines (57 loc) • 2.38 kB
JavaScript
/// <reference path="../../typings/node-mysql-wrapper/node-mysql-wrapper.d.ts" />
var node_mysql_wrapper_1 = require("node-mysql-wrapper");
var _ = require("lodash");
var LiveHelper = (function () {
function LiveHelper() {
}
LiveHelper.upsert = function (arr, key, newval) {
var match = _.find(arr, key);
if (match) {
var index = _.indexOf(arr, _.find(arr, key));
arr.splice(index, 1, newval);
}
else {
arr.push(newval);
}
};
LiveHelper.canInsert = function (objRow, rawCriteria, joinedRow) {
var canInsert = true;
node_mysql_wrapper_1.Helper.forEachKey(rawCriteria, function (key) {
if (!canInsert) {
return;
}
try {
if (objRow[key] !== undefined) {
var _valCriteria = rawCriteria[key];
var _valSplited = _valCriteria.split(" ");
if (_valSplited[0] === "IN(") {
var _values = _valCriteria.substring(_valSplited[0].length, _valCriteria.lastIndexOf(")")).split(",");
_values = " " + objRow[key] + " === " + _values.join("|| " + objRow[key] + " === ");
if (!eval(_values)) {
canInsert = false;
}
}
else {
var _symbolCombarison = node_mysql_wrapper_1.ConditionalConverter.toJS(_valSplited[0]);
var valComparison = _valSplited[1];
var ifEvalStatementStr = objRow[key] + _symbolCombarison + valComparison;
ifEvalStatementStr = node_mysql_wrapper_1.ConditionalConverter.toJSConditional(ifEvalStatementStr);
if (!eval(ifEvalStatementStr)) {
canInsert = false;
}
}
}
}
catch (ex) {
canInsert = false;
}
});
return canInsert;
};
LiveHelper.getArgumentsFromCallback = function (cb) {
return cb.toString().split(')', 1)[0].replace(/\s/g, '').substr(9).split(',');
};
return LiveHelper;
})();
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = LiveHelper;