SafeDecoder

SafeDecoder is a swift package that set defaults when Codable fails to decode a field. SafeDecoder supports configurable default values, See SafeDecoder.Configuration.

Installation

Swift Package Manager

Swift Package Manager is Apple’s decentralized dependency manager to integrate libraries to your Swift projects. It is now fully integrated with Xcode 11

To integrate SafeDecoder into your project using SPM, specify it in your Package.swift file:

let package = Package(
    
    dependencies: [
        .package(url: "[email protected]:GodL/SafeDecoder.git", from: "1.0.0"),
    ],
    targets: [
        .target(name: "YourTarget", dependencies: ["SafeDecoder", ])
        
    ]
)

Usage

normal

let model: Data1 = try SafeDecoder().decode(Data1.self, from: try encode(testData))

custom

struct CustomConfiguration: SafeConfigurationType {
    static var configuration: SafeDecoder.Configuration {
        var configuration: SafeDecoder.Configuration = .default
        configuration.register([Data1.Epidemic].self, value: [.init(title: "aaa", num: 20, routeUri: "test://url")])
        return configuration
    }
}
let model: Data1 = try SafeDecoder().decode(Data1.self, CustomConfiguration.self, from: try encode(testData))

Author

GodL, [email protected]. Github GodL

I am happy to answer any questions you may have. Just create a new issue.

GitHub

View Github