Skip to content

Commit d79bc0d

Browse files
chore: Replace force-unwrapped String(data:encoding:) with String(decoding:as:) (#1164)
Use the non-optional String(decoding:as:) initializer for converting JSON-encoded Data to String. This is safe for UTF-8 and eliminates force
1 parent 21dabb7 commit d79bc0d

10 files changed

Lines changed: 10 additions & 10 deletions

File tree

Sources/ContainerCommands/Builder/BuilderStatus.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ extension Application {
6767
PrintableContainer($0)
6868
}
6969
let data = try JSONEncoder().encode(printables)
70-
print(String(data: data, encoding: .utf8)!)
70+
print(String(decoding: data, as: UTF8.self))
7171

7272
return
7373
}

Sources/ContainerCommands/Codable+JSON.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,6 @@ import Foundation
1818

1919
extension [any Codable] {
2020
func jsonArray() throws -> String {
21-
"[\(try self.map { String(data: try JSONEncoder().encode($0), encoding: .utf8)! }.joined(separator: ","))]"
21+
"[\(try self.map { String(decoding: try JSONEncoder().encode($0), as: UTF8.self) }.joined(separator: ","))]"
2222
}
2323
}

Sources/ContainerCommands/Container/ContainerList.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ extension Application {
5858
PrintableContainer($0)
5959
}
6060
let data = try JSONEncoder().encode(printables)
61-
print(String(data: data, encoding: .utf8)!)
61+
print(String(decoding: data, as: UTF8.self))
6262

6363
return
6464
}

Sources/ContainerCommands/Container/ContainerStats.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ extension Application {
8989
if format == .json {
9090
let jsonStats = statsData.map { $0.stats2 }
9191
let data = try JSONEncoder().encode(jsonStats)
92-
print(String(data: data, encoding: .utf8)!)
92+
print(String(decoding: data, as: UTF8.self))
9393
return
9494
}
9595

Sources/ContainerCommands/Image/ImageList.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ extension Application {
119119
)
120120
}
121121
let data = try JSONEncoder().encode(printableImages)
122-
print(String(data: data, encoding: .utf8)!)
122+
print(String(decoding: data, as: UTF8.self))
123123
return
124124
}
125125

Sources/ContainerCommands/Network/NetworkList.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ extension Application {
5454
PrintableNetwork($0)
5555
}
5656
let data = try JSONEncoder().encode(printables)
57-
print(String(data: data, encoding: .utf8)!)
57+
print(String(decoding: data, as: UTF8.self))
5858

5959
return
6060
}

Sources/ContainerCommands/System/DNS/DNSList.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ extension Application {
5050
func printDomains(domains: [String], format: ListFormat) throws {
5151
if format == .json {
5252
let data = try JSONEncoder().encode(domains)
53-
print(String(data: data, encoding: .utf8)!)
53+
print(String(decoding: data, as: UTF8.self))
5454

5555
return
5656
}

Sources/ContainerCommands/System/Property/PropertyList.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ extension Application {
5050
private func printValues(_ vals: [DefaultsStoreValue], format: ListFormat) throws {
5151
if format == .json {
5252
let data = try JSONEncoder().encode(vals)
53-
print(String(data: data, encoding: .utf8)!)
53+
print(String(decoding: data, as: UTF8.self))
5454
return
5555
}
5656

Sources/ContainerCommands/Volume/VolumeInspect.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ extension Application.VolumeCommand {
4747
encoder.dateEncodingStrategy = .iso8601
4848

4949
let data = try encoder.encode(volumes)
50-
print(String(data: data, encoding: .utf8)!)
50+
print(String(decoding: data, as: UTF8.self))
5151
}
5252
}
5353
}

Sources/ContainerCommands/Volume/VolumeList.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ extension Application.VolumeCommand {
5151
func printVolumes(volumes: [Volume], format: Application.ListFormat) throws {
5252
if format == .json {
5353
let data = try JSONEncoder().encode(volumes)
54-
print(String(data: data, encoding: .utf8)!)
54+
print(String(decoding: data, as: UTF8.self))
5555
return
5656
}
5757

0 commit comments

Comments
 (0)