PadXcode-Daemon/Daemon/Models.swift

32 lines
1.4 KiB
Swift
Raw Permalink Normal View History

2026-04-12 00:42:51 -07:00
import Vapor
struct FileNode: Content {
let name: String; let path: String; let isDirectory: Bool; var children: [FileNode]?
}
struct FileContentResponse: Content { let path: String; let content: String }
struct FileSaveRequest: Content { let path: String; let content: String }
struct BuildRequest: Content {
let projectPath: String; let scheme: String; let destination: String
let action: BuildAction; let configuration: String
let preBuildHooks: [PreBuildHook]; let bundleIdentifier: String?
let extraBuildSettings: [String]
}
enum BuildAction: String, Codable { case build; case buildAndRun }
struct BuildSessionResponse: Content { let sessionId: String; let webSocketURL: String }
struct ConnectedDevice: Content {
let udid: String; let name: String; let model: String
let osVersion: String; let isNetworkConnected: Bool
}
struct BuildLogMessage: Content {
enum MessageType: String, Codable { case stdout, stderr, status }
let type: MessageType; let text: String; let exitCode: Int?
}
struct PreBuildHook: Codable {
let name: String; let command: String; let workingDirectory: String
let timeoutSeconds: Int; let continueOnFailure: Bool
static func xcodeGen(projectRoot: String) -> PreBuildHook {
PreBuildHook(name: "XcodeGen", command: "./generate.sh",
workingDirectory: projectRoot, timeoutSeconds: 60, continueOnFailure: false)
}
}