UNPKG

mongoose-diff-tracking

Version:
42 lines (35 loc) 1.14 kB
'use strict'; 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] }; }