"use strict";
var __importDefault = (this && this.__importDefault) || function (mod) {
    return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = deserializeQuery;
const ejson_1 = __importDefault(require("./ejson"));
/**
 * # Convert Serialized Query back to object
 */
function deserializeQuery(query) {
    let queryObject = typeof query == "object" ? query : Object(ejson_1.default.parse(query));
    const keys = Object.keys(queryObject);
    for (let i = 0; i < keys.length; i++) {
        const key = keys[i];
        const value = queryObject[key];
        if (typeof value == "string") {
            if (value.match(/^\{|^\[/)) {
                queryObject[key] = ejson_1.default.parse(value);
            }
        }
    }
    return queryObject;
}