@intuitionrobotics/ts-common
Version:
32 lines • 1.18 kB
JavaScript
import { _keys } from "./object-tools.js";
import {} from "./types.js";
export function regexpCase(value, reg) {
return value.match(new RegExp(reg)) || { input: undefined };
}
export function createFilterPattern(rawFilter) {
let filter = rawFilter || "";
filter = filter.trim();
filter = filter.replace(/\s+/, " ");
filter = filter.replace(new RegExp("(.)", "g"), ".*?$1");
if (filter.length === 0)
filter = ".*?";
else
filter += ".*";
return filter;
}
export function calculateJsonSizeMb(data) {
const number = JSON.stringify(data).length / 1024 / 1024;
return Math.round(number * 100) / 100;
}
export function __stringify(obj, pretty) {
if (Array.isArray(pretty) && typeof obj === "object") {
return `${_keys(obj).reduce((carry, key, idx) => {
// @ts-expect-error TS struggles with this dynamic typing
return carry + ` ${String(key)}: ${__stringify(obj[key], pretty.includes(key))}${idx !== _keys(obj).length - 1 && ',\n'}`;
}, `{\n`)}\n}`;
}
if (pretty)
return JSON.stringify(obj, null, 2);
return JSON.stringify(obj);
}
//# sourceMappingURL=tools.js.map