From e802338be2068c972b944299eb8385c647b5a0bf Mon Sep 17 00:00:00 2001 From: PJ Date: Sat, 6 Jun 2026 12:44:20 +0530 Subject: [PATCH] refactor(ios): extract pure simctl JSON parsers --- internal/ios/ios.go | 32 ++++++++++++++++++++------------ 1 file changed, 20 insertions(+), 12 deletions(-) diff --git a/internal/ios/ios.go b/internal/ios/ios.go index f91ed13..b227e5b 100644 --- a/internal/ios/ios.go +++ b/internal/ios/ios.go @@ -69,18 +69,7 @@ func bootedSimulator(ctx context.Context) (*simDevice, error) { if err != nil { return nil, err } - var list simctlDeviceList - if err := json.Unmarshal(out, &list); err != nil { - return nil, err - } - for _, devices := range list.Devices { - for _, d := range devices { - if d.State == "Booted" { - return &d, nil - } - } - } - return nil, nil + return parseBootedDevice(out) } func availableSimulators(ctx context.Context) ([]simDevice, error) { @@ -88,6 +77,25 @@ func availableSimulators(ctx context.Context) ([]simDevice, error) { if err != nil { return nil, err } + return parseAvailableDevices(out) +} + +func parseBootedDevice(out []byte) (*simDevice, error) { + var list simctlDeviceList + if err := json.Unmarshal(out, &list); err != nil { + return nil, err + } + for _, devices := range list.Devices { + for i := range devices { + if devices[i].State == "Booted" { + return &devices[i], nil + } + } + } + return nil, nil +} + +func parseAvailableDevices(out []byte) ([]simDevice, error) { var list simctlDeviceList if err := json.Unmarshal(out, &list); err != nil { return nil, err