Files
Termind/TFI/Infrastructure/SSH/MobileWorkspaceConnectionServices+Live.swift
T

30 lines
1.2 KiB
Swift

import Foundation
import TermindRemoteInfrastructure
extension MobileWorkspaceConnectionServices {
static var live: MobileWorkspaceConnectionServices {
live(coordinator: RemoteConnectionCoordinator())
}
static func live(coordinator: RemoteConnectionCoordinator) -> MobileWorkspaceConnectionServices {
return MobileWorkspaceConnectionServices(
makePTYChannel: { output, exit, shellIntegration in
coordinator.makePTYChannel(output: output, exit: exit, shellIntegration: shellIntegration)
},
connectSSH: { session, request, shellIntegrationEnabled, columns, rows, progress in
try await session.connect(
using: request,
shellIntegrationEnabled: shellIntegrationEnabled,
columns: columns,
rows: rows,
progress: progress
)
},
connectSFTP: { request, progress, connectionFailure in
try await coordinator.connectSFTP(
using: request, progress: progress, connectionFailure: connectionFailure)
},
writeSSH: { session, data in await session.write(data) })
}
}