diff --git a/Sources/CodableTransform.swift b/Sources/CodableTransform.swift index 4cb72d55..e959ed7d 100644 --- a/Sources/CodableTransform.swift +++ b/Sources/CodableTransform.swift @@ -33,8 +33,13 @@ open class CodableTransform: TransformType { public typealias Object = T public typealias JSON = Any - - public init() {} + private let encoder: JSONEncoder + private let decoder: JSONDecoder + + public init(decoder: JSONDecoder = .init(), encoder: JSONEncoder = .init()) { + self.encoder = encoder + self.decoder = decoder + } open func transformFromJSON(_ value: Any?) -> Object? { var _data: Data? = nil @@ -49,7 +54,6 @@ open class CodableTransform: TransformType { guard let data = _data else { return nil } do { - let decoder = JSONDecoder() let item = try decoder.decode(T.self, from: data) return item } catch { @@ -62,7 +66,6 @@ open class CodableTransform: TransformType { return nil } do { - let encoder = JSONEncoder() let data = try encoder.encode(item) let dictionary = try JSONSerialization.jsonObject(with: data, options: .allowFragments) return dictionary