MCPcopy Create free account
hub / github.com/NativeScript/SimDeck / allocateSession

Function allocateSession

scripts/studio-host-provider.mjs:245–298  ·  view source on GitHub ↗
(config, state, job)

Source from the content-addressed store, hash-verified

243}
244
245async function allocateSession(config, state, job) {
246 const payload = job.payload || {};
247 const templateName =
248 payload.simulatorTemplateName ||
249 config.simulatorTemplateName ||
250 "iPhone 17 Pro";
251 let udid = "";
252 try {
253 const template = await ensureTemplateSimulator(templateName);
254 const sessionName = `SimDeck ${payload.sessionId || job.sessionId}`;
255 udid = await cloneSimulator(template.udid, sessionName);
256 state.activeSessions.set(job.sessionId, { udid });
257 await bootSimulator(config, udid);
258 if (payload.artifactId) {
259 const appPath = await downloadAndExtractArtifact(config, job.sessionId);
260 await localJson(
261 config,
262 `/api/simulators/${encodeURIComponent(udid)}/install`,
263 {
264 appPath,
265 },
266 );
267 }
268 if (payload.bundleId) {
269 await localJson(
270 config,
271 `/api/simulators/${encodeURIComponent(udid)}/action`,
272 {
273 action: "launch",
274 bundleId: payload.bundleId,
275 },
276 );
277 }
278 const simulator = await simulatorByUdid(config, udid);
279 await completeJob(config, job.id, {
280 activeSessionCount: state.activeSessions.size,
281 runtimeName: simulator?.runtimeName,
282 simulatorName: simulator?.name || sessionName,
283 simulatorUdid: udid,
284 status: "completed",
285 });
286 console.log(`[simdeck-provider] allocated ${udid} for ${job.sessionId}`);
287 } catch (error) {
288 if (udid) {
289 await deleteSimulator(udid).catch(() => {});
290 state.activeSessions.delete(job.sessionId);
291 }
292 await completeJob(config, job.id, {
293 activeSessionCount: state.activeSessions.size,
294 error: describeError(error),
295 status: "failed",
296 });
297 }
298}
299
300async function releaseSession(config, state, job) {
301 const payload = job.payload || {};

Callers 1

handleJobFunction · 0.85

Calls 12

ensureTemplateSimulatorFunction · 0.85
cloneSimulatorFunction · 0.85
simulatorByUdidFunction · 0.85
completeJobFunction · 0.85
deleteSimulatorFunction · 0.85
setMethod · 0.80
logMethod · 0.80
bootSimulatorFunction · 0.70
localJsonFunction · 0.70
describeErrorFunction · 0.70
deleteMethod · 0.65

Tested by

no test coverage detected