adk-typescript
Version:
TypeScript port of Google's Agent Development Kit (ADK)
78 lines (77 loc) • 1.91 kB
JavaScript
;
/**
* Utils module - Provides utility functions and helpers
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.Logger = void 0;
exports.formatDate = formatDate;
exports.sleep = sleep;
exports.deepClone = deepClone;
exports.generateId = generateId;
/**
* Format a date to ISO string
* @param date Date to format
* @returns Formatted date string
*/
function formatDate(date = new Date()) {
return date.toISOString();
}
/**
* Sleep for a specified number of milliseconds
* @param ms Milliseconds to sleep
* @returns Promise that resolves after the specified time
*/
function sleep(ms) {
return new Promise(resolve => setTimeout(resolve, ms));
}
/**
* Deep clone an object
* @param obj Object to clone
* @returns Cloned object
*/
function deepClone(obj) {
return JSON.parse(JSON.stringify(obj));
}
/**
* Generate a random ID
* @param length Length of the ID (default: 10)
* @returns Random ID string
*/
function generateId(length = 10) {
const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
let result = '';
for (let i = 0; i < length; i++) {
result += characters.charAt(Math.floor(Math.random() * characters.length));
}
return result;
}
/**
* Logger utility
*/
class Logger {
constructor(prefix = 'ADK') {
this.prefix = prefix;
}
/**
* Log an informational message
* @param message Message to log
*/
info(message) {
console.log(`[${this.prefix}] [INFO] ${message}`);
}
/**
* Log a warning message
* @param message Message to log
*/
warn(message) {
console.warn(`[${this.prefix}] [WARN] ${message}`);
}
/**
* Log an error message
* @param message Message to log
*/
error(message) {
console.error(`[${this.prefix}] [ERROR] ${message}`);
}
}
exports.Logger = Logger;