UNPKG

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
/// <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;