datasquirel/package-shared/utils/deserialize-query.ts
2025-01-10 20:10:28 +01:00

30 lines
703 B
TypeScript

import EJSON from "./ejson";
/**
* # Convert Serialized Query back to object
*/
export default function deserializeQuery(
query: string | { [s: string]: any }
): {
[s: string]: any;
} {
/** @type {Object<string,any>} */
let queryObject: { [s: string]: any } =
typeof query == "object" ? query : Object(EJSON.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.parse(value);
}
}
}
return queryObject;
}