openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
22 lines (21 loc) • 803 B
JavaScript
//#region src/llm/session-resources.ts
const sessionResourceCleanups = /* @__PURE__ */ new Set();
/** Registers a session-resource cleanup hook and returns an unregister function. */
function registerSessionResourceCleanup(cleanup) {
sessionResourceCleanups.add(cleanup);
return () => {
sessionResourceCleanups.delete(cleanup);
};
}
/** Runs all registered cleanup hooks, aggregating failures after every hook has run. */
function cleanupSessionResources(sessionId) {
const errors = [];
for (const cleanup of sessionResourceCleanups) try {
cleanup(sessionId);
} catch (error) {
errors.push(error);
}
if (errors.length > 0) throw new AggregateError(errors, "Failed to cleanup session resources");
}
//#endregion
export { registerSessionResourceCleanup as n, cleanupSessionResources as t };