Skip to content

Commit ca1f825

Browse files
authored
fix: support keepActiveWhileConnected for browser sessions (#81)
1 parent 6aa5387 commit ca1f825

File tree

1 file changed

+24
-24
lines changed

1 file changed

+24
-24
lines changed

src/sandbox.ts

Lines changed: 24 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,30 @@ export class SandboxSession extends Disposable {
183183
this.pitcherClient.disconnect();
184184
this.dispose();
185185
}
186+
187+
private keepAliveInterval: NodeJS.Timeout | null = null;
188+
/**
189+
* If enabled, we will keep the sandbox from hibernating as long as the SDK is connected to it.
190+
*/
191+
public keepActiveWhileConnected(enabled: boolean) {
192+
if (enabled && !this.keepAliveInterval) {
193+
this.keepAliveInterval = setInterval(() => {
194+
this.pitcherClient.clients.system.update();
195+
}, 1000 * 30);
196+
197+
this.onWillDispose(() => {
198+
if (this.keepAliveInterval) {
199+
clearInterval(this.keepAliveInterval);
200+
this.keepAliveInterval = null;
201+
}
202+
});
203+
} else {
204+
if (this.keepAliveInterval) {
205+
clearInterval(this.keepAliveInterval);
206+
this.keepAliveInterval = null;
207+
}
208+
}
209+
}
186210
}
187211

188212
export class Sandbox extends SandboxSession {
@@ -281,28 +305,4 @@ export class Sandbox extends SandboxSession {
281305
public async updateHibernationTimeout(timeoutSeconds: number): Promise<void> {
282306
await this.sandboxClient.updateHibernationTimeout(this.id, timeoutSeconds);
283307
}
284-
285-
private keepAliveInterval: NodeJS.Timeout | null = null;
286-
/**
287-
* If enabled, we will keep the sandbox from hibernating as long as the SDK is connected to it.
288-
*/
289-
public keepActiveWhileConnected(enabled: boolean) {
290-
if (enabled && !this.keepAliveInterval) {
291-
this.keepAliveInterval = setInterval(() => {
292-
this.pitcherClient.clients.system.update();
293-
}, 1000 * 30);
294-
295-
this.onWillDispose(() => {
296-
if (this.keepAliveInterval) {
297-
clearInterval(this.keepAliveInterval);
298-
this.keepAliveInterval = null;
299-
}
300-
});
301-
} else {
302-
if (this.keepAliveInterval) {
303-
clearInterval(this.keepAliveInterval);
304-
this.keepAliveInterval = null;
305-
}
306-
}
307-
}
308308
}

0 commit comments

Comments
 (0)