MCPcopy Index your code
hub / github.com/CapSoftware/Cap / createEditorInstanceContext

Function createEditorInstanceContext

apps/desktop/src/routes/editor/context.ts:1320–1425  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

1318export type TransformedMeta = ReturnType<typeof transformMeta>;
1319
1320const createEditorInstanceContext = () => {
1321 const [latestFrame, setLatestFrame] = createLazySignal<FrameData>();
1322
1323 const [_isConnected, setIsConnected] = createSignal(false);
1324 const [isWorkerReady, setIsWorkerReady] = createSignal(false);
1325 const [canvasControls, setCanvasControls] =
1326 createSignal<CanvasControls | null>(null);
1327 const [performanceMode, setPerformanceMode] = createSignal(false);
1328
1329 let disposeWorkerReadyEffect: (() => void) | undefined;
1330
1331 onCleanup(() => {
1332 disposeWorkerReadyEffect?.();
1333 canvasControls()?.dispose();
1334 });
1335
1336 const [editorInstance, { refetch: refetchEditorInstance }] = createResource(
1337 async () => {
1338 console.log("[Editor] Creating editor instance...");
1339
1340 let instance: SerializedEditorInstance | undefined;
1341 let lastError: unknown;
1342 for (let attempt = 0; attempt < 5; attempt++) {
1343 try {
1344 instance = await commands.createEditorInstance();
1345 break;
1346 } catch (e) {
1347 lastError = e;
1348 const errorMessage = e instanceof Error ? e.message : String(e);
1349 if (/may need to be recovered/i.test(errorMessage)) {
1350 break;
1351 }
1352 console.warn(
1353 `[Editor] Attempt ${attempt + 1}/5 failed:`,
1354 e,
1355 "- retrying...",
1356 );
1357 await new Promise((resolve) =>
1358 setTimeout(resolve, 500 * (attempt + 1)),
1359 );
1360 }
1361 }
1362
1363 if (!instance) {
1364 throw lastError;
1365 }
1366
1367 console.log("[Editor] Editor instance created, setting up WebSocket");
1368
1369 const requestFrame = () => {
1370 events.renderFrameEvent.emit({
1371 frame_number: 0,
1372 fps: FPS,
1373 resolution_base: getPreviewResolution(DEFAULT_PREVIEW_QUALITY),
1374 });
1375 };
1376
1377 const [ws, _wsConnected, workerReady, controls] = createImageDataWS(

Callers

nothing calls this directly

Calls 6

createLazySignalFunction · 0.90
createImageDataWSFunction · 0.90
createPresetsFunction · 0.90
requestFrameFunction · 0.85
disposeMethod · 0.80
addEventListenerMethod · 0.80

Tested by

no test coverage detected