MCPcopy Create free account
hub / github.com/github/copilot-sdk / onLifecycle

Method onLifecycle

nodejs/src/client.ts:2138–2164  ·  view source on GitHub ↗
(
        eventTypeOrHandler: K | SessionLifecycleHandler,
        handler?: TypedSessionLifecycleHandler<K>
    )

Source from the content-addressed store, hash-verified

2136 onLifecycle(handler: SessionLifecycleHandler): () => void;
2137
2138 onLifecycle<K extends SessionLifecycleEventType>(
2139 eventTypeOrHandler: K | SessionLifecycleHandler,
2140 handler?: TypedSessionLifecycleHandler<K>
2141 ): () => void {
2142 // Overload 1: onLifecycle(eventType, handler) - typed event subscription
2143 if (typeof eventTypeOrHandler === "string" && handler) {
2144 const eventType = eventTypeOrHandler;
2145 if (!this.typedLifecycleHandlers.has(eventType)) {
2146 this.typedLifecycleHandlers.set(eventType, new Set());
2147 }
2148 const storedHandler = handler as (event: SessionLifecycleEvent) => void;
2149 this.typedLifecycleHandlers.get(eventType)!.add(storedHandler);
2150 return () => {
2151 const handlers = this.typedLifecycleHandlers.get(eventType);
2152 if (handlers) {
2153 handlers.delete(storedHandler);
2154 }
2155 };
2156 }
2157
2158 // Overload 2: onLifecycle(handler) - wildcard subscription
2159 const wildcardHandler = eventTypeOrHandler as SessionLifecycleHandler;
2160 this.sessionLifecycleHandlers.add(wildcardHandler);
2161 return () => {
2162 this.sessionLifecycleHandlers.delete(wildcardHandler);
2163 };
2164 }
2165
2166 /**
2167 * Start the CLI server process

Callers 1

Calls 4

setMethod · 0.45
addMethod · 0.45
getMethod · 0.45
deleteMethod · 0.45

Tested by

no test coverage detected