mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-21 00:21:43 +00:00
24 lines
701 B
TypeScript
24 lines
701 B
TypeScript
import { isPromiseLike } from "./embedded-agent-subscribe.promise.js";
|
|
|
|
type CallbackLogger = {
|
|
warn(message: string): void;
|
|
};
|
|
|
|
/** Contains failures from untracked subscriber presentation and telemetry callbacks. */
|
|
export function runBestEffortCallback(params: {
|
|
callback: () => void | Promise<void>;
|
|
label: string;
|
|
log: CallbackLogger;
|
|
}): void {
|
|
try {
|
|
const result = params.callback();
|
|
if (isPromiseLike<void>(result)) {
|
|
void Promise.resolve(result).catch((error: unknown) => {
|
|
params.log.warn(`${params.label} callback failed: ${String(error)}`);
|
|
});
|
|
}
|
|
} catch (error) {
|
|
params.log.warn(`${params.label} callback failed: ${String(error)}`);
|
|
}
|
|
}
|