Compare commits

..

No commits in common. "b2c8e07bead17cea909dd5ae42f31d45bcf0225d" and "5ca22837bf7784dd195c1c1c8671a34e56ee6381" have entirely different histories.

3 changed files with 3 additions and 46 deletions

View File

@ -34,15 +34,6 @@ extension Encodable {
return jsonAny return jsonAny
} }
public func toJSONArray() throws -> [Any] {
let data = try self.encode()
let json = try JSONSerialization.jsonObject(with: data, options: .allowFragments)
guard let jsonArray = json as? [Any] else {
throw JSONError.error(message: "JSON Array not found")
}
return jsonArray
}
public func toJSONString() -> String? { public func toJSONString() -> String? {
guard let json = self.toJSON(), guard let json = self.toJSON(),
let data = try? JSONSerialization.data(withJSONObject: json, options: .prettyPrinted), let data = try? JSONSerialization.data(withJSONObject: json, options: .prettyPrinted),

View File

@ -13,7 +13,6 @@ public typealias JSONValueDictionary = [String: JSONValue]
public enum JSONValueError: Error { public enum JSONValueError: Error {
case encode case encode
case TypeMismatch
} }
extension Optional { extension Optional {
@ -69,38 +68,6 @@ public enum JSONValue: Codable, Equatable {
case .null: break case .null: break
} }
} }
public var base: Any {
switch self {
case .string(let string): return string
case .int(let int): return int
case .double(let double): return double
case .bool(let bool): return bool
case .object(let object): return try! object.toJSONAny()
case .array(let array): return try! array.toJSONArray()
case .null: return NSNull()
}
}
public func value<T>() throws -> T {
guard let base = self.base as? T else {
throw JSONValueError.TypeMismatch
}
return base
}
private func value<T>(type: T.Type) throws -> T {
let base: T = try value()
return base
}
public func toString() throws -> String { try value(type: String.self) }
public func toDouble() throws -> Double { try value(type: Double.self) }
public func toInt() throws -> Int { try value(type: Int.self) }
public func toBool() throws -> Bool { try value(type: Bool.self) }
public func toArray<T>(of type: T.Type) throws -> [T]{ try value(type: [T].self) }
public func toObject<T>(of type: T.Type) throws -> T { try value(type: T.self) }
} }
public func ==(lhs: JSONValue, rhs: JSONValue) -> Bool { public func ==(lhs: JSONValue, rhs: JSONValue) -> Bool {

View File

@ -365,11 +365,10 @@ public extension UnkeyedDecodingContainer {
} }
// Now get the decoder to use for the type // Now get the decoder to use for the type
let decoder = try self.superDecoder() let decoder = try self.superDecoder()
let model = try type.init(from: decoder) if let model = try type.init(from: decoder) as? T {
if let found = model as? T { models.append(model)
models.append(found)
} else { } else {
MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(identifier)") MVMCoreLoggingHandler.logDebugMessage(withDelegate: "ModelRegistry Error decoderError: \(typeCodingKey)")
throw ModelRegistry.Error.decoderError throw ModelRegistry.Error.decoderError
} }
} }