UNPKG

@agentscope/studio

Version:

AgentScope Studio is a powerful local monitoring and visualization tool designed to provide real-time insights into your system's performance and behavior.

75 lines (74 loc) 2.15 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.objectUtils = void 0; exports.getNestedValue = getNestedValue; exports.unflattenObject = unflattenObject; exports.flattenObject = flattenObject; exports.parseByMimeType = parseByMimeType; function getNestedValue(obj, path, separator = '.') { if (!obj || typeof obj !== 'object') { return undefined; } const keys = Array.isArray(path) ? path.flatMap((k) => k.split(separator)) : path.split(separator); return keys.reduce((acc, key) => { if (acc && typeof acc === 'object' && key in acc) { return acc[key]; } return undefined; }, obj); } function unflattenObject(flat) { const result = {}; for (const [key, value] of Object.entries(flat)) { const parts = key.split('.'); let current = result; for (let i = 0; i < parts.length - 1; i++) { if (!current[parts[i]] || typeof current[parts[i]] !== 'object') { current[parts[i]] = {}; } current = current[parts[i]]; } current[parts[parts.length - 1]] = value; } return result; } function flattenObject(obj, prefix = '') { const result = {}; for (const [key, value] of Object.entries(obj)) { const newKey = prefix ? `${prefix}.${key}` : key; if (value && typeof value === 'object' && !Array.isArray(value) && value !== null) { Object.assign(result, flattenObject(value, newKey)); } else { result[newKey] = value; } } return result; } function parseByMimeType(value, mime_type) { try { switch (mime_type) { case 'application/json': { const jsonData = JSON.parse(value); return jsonData; } default: return value; } } catch (_a) { return value; } } exports.objectUtils = { getNestedValue, flattenObject, unflattenObject, parseByMimeType, }; exports.default = exports.objectUtils;