mongoose-diff-tracking
Version:
Manage Mongo Collection diff History and versions
42 lines (35 loc) • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.findOperationToJSON = findOperationToJSON;
exports.queryConditionToJSON = queryConditionToJSON;
var _visitFindOperation = require('./visit-find-operation.js');
/**
*
*/
function findOperationToJSON(where) {
return (0, _visitFindOperation.visitFindOperation)(where, {
queryCondition: function queryCondition(condition) {
return queryConditionToJSON(condition);
}
});
}
/**
*
*/
function queryConditionToJSON(queryCondition) {
if (queryCondition.$regex == null || typeof queryCondition.$regex === 'string') {
return queryCondition;
}
var _regexToJSON = regexToJSON(queryCondition.$regex),
pattern = _regexToJSON.pattern,
flags = _regexToJSON.flags;
var newCondition = flags ? { $regex: pattern, $options: flags } : { $regex: pattern };
return Object.assign({}, queryCondition, newCondition);
}
function regexToJSON(regex) {
var matched = regex.toString().match(/\/(.*?)\/([gimy]*)?$/);
// $FlowIssue(stringified-regex-always-match-the-pattern)
return { pattern: matched[1], flags: matched[2] };
}