MCPcopy Create free account
hub / github.com/GCWing/BitFun / formatData

Function formatData

src/web-ui/src/shared/utils/logger.ts:229–263  ·  view source on GitHub ↗

* Format data for logging * Separates Error objects from data: JSON for regular data, stack trace appended separately

(data: unknown)

Source from the content-addressed store, hash-verified

227 * Separates Error objects from data: JSON for regular data, stack trace appended separately
228 */
229function formatData(data: unknown): string {
230 if (data === undefined || data === null) return '';
231 if (data instanceof Error) {
232 return data.stack || data.message;
233 }
234 if (typeof data === 'object') {
235 try {
236 // Separate Error objects from regular data
237 const regularData: Record<string, unknown> = {};
238 const errors: string[] = [];
239
240 for (const key of Object.keys(data as Record<string, unknown>)) {
241 const value = (data as Record<string, unknown>)[key];
242 if (value instanceof Error) {
243 errors.push(value.stack || `${value.name}: ${value.message}`);
244 } else {
245 regularData[key] = value;
246 }
247 }
248
249 const parts: string[] = [];
250 if (Object.keys(regularData).length > 0) {
251 parts.push(JSON.stringify(regularData));
252 }
253 if (errors.length > 0) {
254 parts.push(errors.join('\n'));
255 }
256
257 return parts.join(', ');
258 } catch {
259 return String(data);
260 }
261 }
262 return String(data);
263}
264
265export class Logger {
266 private static instance: Logger;

Callers 1

outputMethod · 0.85

Calls 3

stringifyMethod · 0.80
pushMethod · 0.45
joinMethod · 0.45

Tested by

no test coverage detected