{"version":3,"file":"scheduler.mjs","names":[],"sources":["../../src/scheduler.ts"],"sourcesContent":["//\n// Copyright 2026 DXOS.org\n//\n\n// CF Workers / Node fallback: there is no main thread to yield to.\n// scheduleTask runs the callback on the next microtask; yieldOrContinue is a microtask hop; update\n// flushes have no frame budget.\n\nimport type * as GraphBuilder from '@dxos/graph/GraphBuilder';\n\ntype ScheduleOptions = { strategy?: 'smooth' | 'interactive' | 'idle'; signal?: AbortSignal };\n\nexport const scheduleTask = async <T>(callback: () => T | Promise<T>, _options?: ScheduleOptions): Promise<T> => {\n  await Promise.resolve();\n  return callback();\n};\n\nexport const yieldOrContinue = async (_priority: 'smooth' | 'interactive' | 'idle'): Promise<void> => {\n  await Promise.resolve();\n};\n\n/** A frame budget that a user action can lift until its task ends. */\nexport type FrameBudget = GraphBuilder.FrameBudget & {\n  /** Lets update flushes ignore the budget until the current task ends. */\n  flushBeforePaint(): void;\n};\n\nexport const makeFrameBudget = (): FrameBudget | undefined => undefined;\n"],"mappings":";AAYA,IAAa,eAAe,OAAU,UAAgC,aAA2C;CAC/G,MAAM,QAAQ,QAAQ;CACtB,OAAO,SAAS;AAClB;AAEA,IAAa,kBAAkB,OAAO,cAAgE;CACpG,MAAM,QAAQ,QAAQ;AACxB;AAQA,IAAa,wBAAiD,KAAA"}