feat: add native macOS application launcher

This commit is contained in:
2026-10-11 18:16:01 +02:00
commit 0d033667ff
10 changed files with 780 additions and 0 deletions
+21
View File
@@ -0,0 +1,21 @@
import AppKit
@MainActor
enum AppLauncher {
static func launch(_ url: URL) async throws {
let configuration = NSWorkspace.OpenConfiguration()
configuration.activates = true
configuration.promptsUserIfNeeded = false
try await withCheckedThrowingContinuation { (continuation: CheckedContinuation<Void, any Error>) in
NSWorkspace.shared.openApplication(at: url, configuration: configuration) { _, error in
// AppKit calls this completion on a concurrent queue; only resume the continuation here.
if let error {
continuation.resume(throwing: error)
} else {
continuation.resume()
}
}
}
}
}