UNPKG

admin-mongo

Version:

A Web user interface to administer MongoDB databases built using Express

94 lines (83 loc) 3.38 kB
var toEJSON = (function (){ var serialize_BinData = function (bsonString){ var bson_full = bsonString.match(/(BinData\s?\([^)]+\))/g); if(bson_full){ for(var i = 0; i < bson_full.length; i++){ var bson_value = bson_full[i].match(/\((.*?)\)/i); var bson_data = bson_value[1].split(','); var ejson = '{ "$binary": ' + bson_data[1] + ', "$type": "' + bson_data[0] + '" }'; bsonString = bsonString.replace(bson_full[i], ejson); } } return bsonString; }; var serialize_Date = function (bsonString){ var bson_full = bsonString.match(/(new Date\s?)\(.?\)/g); if(bson_full){ for(var i = 0; i < bson_full.length; i++){ var dte = new Date(); var ejson = '{ "$date": "' + dte.toISOString() + '" }'; bsonString = bsonString.replace(bson_full[i], ejson); } } return bsonString; }; var serialize_ISODate = function (bsonString){ var bson_full = bsonString.match(/(ISODate\s?\([^)]+\))/g); if(bson_full){ for(var i = 0; i < bson_full.length; i++){ var bson_value = bson_full[i].match(/\((.*?)\)/i); var ejson = '{ "$date": ' + bson_value[1] + ' }'; bsonString = bsonString.replace(bson_full[i], ejson); } } return bsonString; }; var serialize_Timestamp = function (bsonString){ var bson_full = bsonString.match(/(Timestamp\s?\([^)]+\))/g); if(bson_full){ for(var i = 0; i < bson_full.length; i++){ var bson_value = bson_full[i].match(/\((.*?)\)/i); var bson_data = bson_value[1].split(','); var ejson = '{ "$timestamp": { "$t": ' + bson_data[0] + ', "$i": ' + bson_data[1] + '}}'; bsonString = bsonString.replace(bson_full[i], ejson); } } return bsonString; }; var serialize_Regex = function (bsonString){ // TODO: Implement a regex fixer return bsonString; }; var serialize_ObjectId = function (bsonString){ var bson_full = bsonString.match(/(ObjectId\s?\([^)]+\))/g); if(bson_full){ for(var i = 0; i < bson_full.length; i++){ var bson_value = bson_full[i].match(/\((.*?)\)/i); var ejson = '{ "$oid": ' + bson_value[1] + '}'; bsonString = bsonString.replace(bson_full[i], ejson); } } return bsonString; }; var serialize_DBRef = function (bsonString){ // TODO: possibly implement something in the future here return bsonString; }; var serializeString = function (bsonString){ if(bsonString){ bsonString = serialize_BinData(bsonString); bsonString = serialize_Date(bsonString); bsonString = serialize_ISODate(bsonString); bsonString = serialize_Timestamp(bsonString); bsonString = serialize_Regex(bsonString); bsonString = serialize_ObjectId(bsonString); bsonString = serialize_DBRef(bsonString); } var eJsonString = bsonString; return eJsonString; }; return{ serializeString: serializeString }; })();