Skip to content

Commit

Permalink
[Swift4]Update templates for swift 4 (#6921)
Browse files Browse the repository at this point in the history
* update versions of dependencies on swift4 and swift3

* change syntax for swift4

* run petstore script

* change enum case from UpperCamel to lowerCamel

* remove unneeded break statements

* avoid wrapping conditionals in parentheses

* avoid force casting

* run pod update on petstore/swift4/rxswift

* update project for swift 4

* run swift4-petstore-all.sh

* fix compile error

* avoid use iso8601 date strategy for encoder / decoder

* resolve file references
  • Loading branch information
Daiki Matsudate authored and wing328 committed Nov 21, 2017
1 parent b06ccec commit a5e4abe
Show file tree
Hide file tree
Showing 379 changed files with 5,117 additions and 8,072 deletions.
1 change: 1 addition & 0 deletions .java-version
Original file line number Original file line Diff line number Diff line change
@@ -0,0 +1 @@
oracle64-1.8.0.152
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -88,7 +88,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
} }
self.processRequest(uploadRequest, managerId, completion) self.processRequest(uploadRequest, managerId, completion)
case .Failure(let encodingError): case .Failure(let encodingError):
completion(response: nil, error: ErrorResponse.Error(415, nil, encodingError)) completion(response: nil, error: ErrorResponse.error(415, nil, encodingError))
} }
} }
) )
Expand Down Expand Up @@ -121,7 +121,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
completion( completion(
response: nil, response: nil,
error: ErrorResponse.Error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!) error: ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error!)
) )
return return
} }
Expand All @@ -141,7 +141,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
completion( completion(
response: nil, response: nil,
error: ErrorResponse.Error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!) error: ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!)
) )
return return
} }
Expand All @@ -158,10 +158,10 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if (dataResponse.result.isFailure) { if dataResponse.result.isFailure {
completion( completion(
response: nil, response: nil,
error: ErrorResponse.Error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!) error: ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!)
) )
return return
} }
Expand All @@ -179,7 +179,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
cleanupRequest() cleanupRequest()
if response.result.isFailure { if response.result.isFailure {
completion(response: nil, error: ErrorResponse.Error(response.response?.statusCode ?? 500, response.data, response.result.error!)) completion(response: nil, error: ErrorResponse.error(response.response?.statusCode ?? 500, response.data, response.result.error!))
return return
} }


Expand All @@ -198,7 +198,7 @@ class AlamofireRequestBuilder<T>: RequestBuilder<T> {
return return
} }
completion(response: nil, error: ErrorResponse.Error(500, nil, NSError(domain: "localhost", code: 500, userInfo: ["reason": "unreacheable code"]))) completion(response: nil, error: ErrorResponse.error(500, nil, NSError(domain: "localhost", code: 500, userInfo: ["reason": "unreacheable code"])))
} }
} }
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -28,8 +28,8 @@ public class Response<T> {
public convenience init(response: NSHTTPURLResponse, body: T?) { public convenience init(response: NSHTTPURLResponse, body: T?) {
let rawHeader = response.allHeaderFields let rawHeader = response.allHeaderFields
var header = [String:String]() var header = [String:String]()
for (key, value) in rawHeader { for case let (key, value) as (String, String) in rawHeader {
header[key as! String] = value as? String header[key] = value
} }
self.init(statusCode: response.statusCode, header: header, body: body) self.init(statusCode: response.statusCode, header: header, body: body)
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -118,16 +118,12 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
else { else {
mpForm.append(fileURL, withName: k) mpForm.append(fileURL, withName: k)
} }
break
case let string as String: case let string as String:
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k) mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
break
case let number as NSNumber: case let number as NSNumber:
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k) mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
break
default: default:
fatalError("Unprocessable value \(v) with key \(k)") fatalError("Unprocessable value \(v) with key \(k)")
break
} }
} }
}, to: URLString, method: xMethod!, headers: nil, encodingCompletion: { encodingResult in }, to: URLString, method: xMethod!, headers: nil, encodingCompletion: { encodingResult in
Expand Down Expand Up @@ -206,7 +202,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if (dataResponse.result.isFailure) { if dataResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.HttpError(statusCode: dataResponse.response?.statusCode ?? 500, data: dataResponse.data, error: dataResponse.result.error!) ErrorResponse.HttpError(statusCode: dataResponse.response?.statusCode ?? 500, data: dataResponse.data, error: dataResponse.result.error!)
Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,3 +1,3 @@
github "Alamofire/Alamofire" >= 3.1.0{{#usePromiseKit}} github "Alamofire/Alamofire" ~> 4.5{{#usePromiseKit}}
github "mxcl/PromiseKit" >=1.5.3{{/usePromiseKit}}{{#useRxSwift}} github "mxcl/PromiseKit" ~> 4.4{{/usePromiseKit}}{{#useRxSwift}}
github "ReactiveX/RxSwift" ~> 2.0{{/useRxSwift}} github "ReactiveX/RxSwift" "rxswift-3.0"{{/useRxSwift}}
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ extension Dictionary: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
var dictionary = [AnyHashable: Any]() var dictionary = [AnyHashable: Any]()
for (key, value) in self { for (key, value) in self {
dictionary[key as! NSObject] = encodeIfPossible(value) dictionary[key] = encodeIfPossible(value)
} }
return dictionary as Any return dictionary as Any
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ open class Response<T> {
public convenience init(response: HTTPURLResponse, body: T?) { public convenience init(response: HTTPURLResponse, body: T?) {
let rawHeader = response.allHeaderFields let rawHeader = response.allHeaderFields
var header = [String:String]() var header = [String:String]()
for (key, value) in rawHeader { for case let (key, value) as (String, String) in rawHeader {
header[key as! String] = value as? String header[key] = value
} }
self.init(statusCode: response.statusCode, header: header, body: body) self.init(statusCode: response.statusCode, header: header, body: body)
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ Pod::Spec.new do |s|
s.documentation_url = '{{podDocumentationURL}}'{{/podDocumentationURL}} s.documentation_url = '{{podDocumentationURL}}'{{/podDocumentationURL}}
s.source_files = '{{projectName}}/Classes/**/*.swift'{{#usePromiseKit}} s.source_files = '{{projectName}}/Classes/**/*.swift'{{#usePromiseKit}}
s.dependency 'PromiseKit/CorePromise', '~> 4.4.0'{{/usePromiseKit}}{{#useRxSwift}} s.dependency 'PromiseKit/CorePromise', '~> 4.4.0'{{/usePromiseKit}}{{#useRxSwift}}
s.dependency 'RxSwift', '~> 3.4.1'{{/useRxSwift}} s.dependency 'RxSwift', '3.6.1'{{/useRxSwift}}
s.dependency 'Alamofire', '~> 4.5.0' s.dependency 'Alamofire', '~> 4.5.0'
end end
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -77,16 +77,12 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
else { else {
mpForm.append(fileURL, withName: k) mpForm.append(fileURL, withName: k)
} }
break
case let string as String: case let string as String:
mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k) mpForm.append(string.data(using: String.Encoding.utf8)!, withName: k)
break
case let number as NSNumber: case let number as NSNumber:
mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k) mpForm.append(number.stringValue.data(using: String.Encoding.utf8)!, withName: k)
break
default: default:
fatalError("Unprocessable value \(v) with key \(k)") fatalError("Unprocessable value \(v) with key \(k)")
break
} }
} }
}, to: URLString, method: xMethod!, headers: nil, encodingCompletion: { encodingResult in }, to: URLString, method: xMethod!, headers: nil, encodingCompletion: { encodingResult in
Expand All @@ -97,7 +93,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
} }
self.processRequest(request: upload, managerId, completion) self.processRequest(request: upload, managerId, completion)
case .failure(let encodingError): case .failure(let encodingError):
completion(nil, ErrorResponse.Error(415, nil, encodingError)) completion(nil, ErrorResponse.error(415, nil, encodingError))
} }
}) })
} else { } else {
Expand Down Expand Up @@ -129,7 +125,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.Error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!)
) )
return return
} }
Expand Down Expand Up @@ -186,9 +182,9 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
) )


} catch let requestParserError as DownloadException { } catch let requestParserError as DownloadException {
completion(nil, ErrorResponse.Error(400, dataResponse.data, requestParserError)) completion(nil, ErrorResponse.error(400, dataResponse.data, requestParserError))
} catch let error { } catch let error {
completion(nil, ErrorResponse.Error(400, dataResponse.data, error)) completion(nil, ErrorResponse.error(400, dataResponse.data, error))
} }
return return
}) })
Expand All @@ -199,7 +195,7 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.Error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!) ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!)
) )
return return
} }
Expand All @@ -215,10 +211,10 @@ open class AlamofireRequestBuilder<T>: RequestBuilder<T> {
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if (dataResponse.result.isFailure) { if dataResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.Error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!) ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!)
) )
return return
} }
Expand Down Expand Up @@ -331,7 +327,7 @@ open class AlamofireDecodableRequestBuilder<T:Decodable>: AlamofireRequestBuilde
if stringResponse.result.isFailure { if stringResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.Error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!) ErrorResponse.error(stringResponse.response?.statusCode ?? 500, stringResponse.data, stringResponse.result.error as Error!)
) )
return return
} }
Expand All @@ -351,7 +347,7 @@ open class AlamofireDecodableRequestBuilder<T:Decodable>: AlamofireRequestBuilde
if voidResponse.result.isFailure { if voidResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.Error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!) ErrorResponse.error(voidResponse.response?.statusCode ?? 500, voidResponse.data, voidResponse.result.error!)
) )
return return
} }
Expand All @@ -367,10 +363,10 @@ open class AlamofireDecodableRequestBuilder<T:Decodable>: AlamofireRequestBuilde
validatedRequest.responseData(completionHandler: { (dataResponse) in validatedRequest.responseData(completionHandler: { (dataResponse) in
cleanupRequest() cleanupRequest()
if (dataResponse.result.isFailure) { if dataResponse.result.isFailure {
completion( completion(
nil, nil,
ErrorResponse.Error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!) ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!)
) )
return return
} }
Expand All @@ -388,17 +384,17 @@ open class AlamofireDecodableRequestBuilder<T:Decodable>: AlamofireRequestBuilde
cleanupRequest() cleanupRequest()
guard dataResponse.result.isSuccess else { guard dataResponse.result.isSuccess else {
completion(nil, ErrorResponse.Error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!)) completion(nil, ErrorResponse.error(dataResponse.response?.statusCode ?? 500, dataResponse.data, dataResponse.result.error!))
return return
} }


guard let data = dataResponse.data, !data.isEmpty else { guard let data = dataResponse.data, !data.isEmpty else {
completion(nil, ErrorResponse.Error(-1, nil, AlamofireDecodableRequestBuilderError.emptyDataResponse)) completion(nil, ErrorResponse.error(-1, nil, AlamofireDecodableRequestBuilderError.emptyDataResponse))
return return
} }


guard let httpResponse = dataResponse.response else { guard let httpResponse = dataResponse.response else {
completion(nil, ErrorResponse.Error(-2, nil, AlamofireDecodableRequestBuilderError.nilHTTPResponse)) completion(nil, ErrorResponse.error(-2, nil, AlamofireDecodableRequestBuilderError.nilHTTPResponse))
return return
} }


Expand Down
Original file line number Original file line Diff line number Diff line change
@@ -1,3 +1,3 @@
github "Alamofire/Alamofire" >= 3.1.0{{#usePromiseKit}} github "Alamofire/Alamofire" ~> 4.5.0{{#usePromiseKit}}
github "mxcl/PromiseKit" >=1.5.3{{/usePromiseKit}}{{#useRxSwift}} github "mxcl/PromiseKit" ~> 4.4{{/usePromiseKit}}{{#useRxSwift}}
github "ReactiveX/RxSwift" ~> 2.0{{/useRxSwift}} github "ReactiveX/RxSwift" ~> 4.0{{/useRxSwift}}
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -22,9 +22,12 @@ open class CodableHelper {
decoder.dateDecodingStrategy = .formatted(df) decoder.dateDecodingStrategy = .formatted(df)
} else { } else {
decoder.dataDecodingStrategy = .base64 decoder.dataDecodingStrategy = .base64
if #available(iOS 10.0, *) { let formatter = DateFormatter()
decoder.dateDecodingStrategy = .iso8601 formatter.calendar = Calendar(identifier: .iso8601)
} formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX"
decoder.dateDecodingStrategy = .formatted(formatter)
} }


do { do {
Expand All @@ -45,9 +48,12 @@ open class CodableHelper {
encoder.outputFormatting = .prettyPrinted encoder.outputFormatting = .prettyPrinted
} }
encoder.dataEncodingStrategy = .base64 encoder.dataEncodingStrategy = .base64
if #available(iOS 10.0, *) { let formatter = DateFormatter()
encoder.dateEncodingStrategy = .iso8601 formatter.calendar = Calendar(identifier: .iso8601)
} formatter.locale = Locale(identifier: "en_US_POSIX")
formatter.timeZone = TimeZone(secondsFromGMT: 0)
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX"
encoder.dateEncodingStrategy = .formatted(formatter)


do { do {
returnedData = try encoder.encode(value) returnedData = try encoder.encode(value)
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@ extension Dictionary: JSONEncodable {
func encodeToJSON() -> Any { func encodeToJSON() -> Any {
var dictionary = [AnyHashable: Any]() var dictionary = [AnyHashable: Any]()
for (key, value) in self { for (key, value) in self {
dictionary[key as! NSObject] = encodeIfPossible(value) dictionary[key] = encodeIfPossible(value)
} }
return dictionary as Any return dictionary as Any
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ protocol JSONEncodable {
} }


public enum ErrorResponse : Error { public enum ErrorResponse : Error {
case Error(Int, Data?, Error) case error(Int, Data?, Error)
} }


open class Response<T> { open class Response<T> {
Expand All @@ -28,8 +28,8 @@ open class Response<T> {
public convenience init(response: HTTPURLResponse, body: T?) { public convenience init(response: HTTPURLResponse, body: T?) {
let rawHeader = response.allHeaderFields let rawHeader = response.allHeaderFields
var header = [String:String]() var header = [String:String]()
for (key, value) in rawHeader { for case let (key, value) as (String, String) in rawHeader {
header[key as! String] = value as? String header[key] = value
} }
self.init(statusCode: response.statusCode, header: header, body: body) self.init(statusCode: response.statusCode, header: header, body: body)
} }
Expand Down
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -16,6 +16,6 @@ Pod::Spec.new do |s|
s.documentation_url = '{{podDocumentationURL}}'{{/podDocumentationURL}} s.documentation_url = '{{podDocumentationURL}}'{{/podDocumentationURL}}
s.source_files = '{{projectName}}/Classes/**/*.swift'{{#usePromiseKit}} s.source_files = '{{projectName}}/Classes/**/*.swift'{{#usePromiseKit}}
s.dependency 'PromiseKit/CorePromise', '~> 4.4.0'{{/usePromiseKit}}{{#useRxSwift}} s.dependency 'PromiseKit/CorePromise', '~> 4.4.0'{{/usePromiseKit}}{{#useRxSwift}}
s.dependency 'RxSwift', '~> 3.4.1'{{/useRxSwift}} s.dependency 'RxSwift', '~> 4.0'{{/useRxSwift}}
s.dependency 'Alamofire', '~> 4.5.0' s.dependency 'Alamofire', '~> 4.5.0'
end end
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -74,9 +74,9 @@ open class {{classname}} {
return Observable.create { observer -> Disposable in return Observable.create { observer -> Disposable in
{{operationId}}({{#allParams}}{{paramName}}: {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { {{#returnType}}data, {{/returnType}}error in {{operationId}}({{#allParams}}{{paramName}}: {{paramName}}{{#hasMore}}, {{/hasMore}}{{/allParams}}) { {{#returnType}}data, {{/returnType}}error in
if let error = error { if let error = error {
observer.on(.error(error as Error)) observer.on(.error(error))
} else { } else {
observer.on(.next({{#returnType}}data!{{/returnType}})) observer.on(.next({{#returnType}}data!{{/returnType}}{{^returnType}}(){{/returnType}}))
} }
observer.on(.completed) observer.on(.completed)
} }
Expand Down
13 changes: 8 additions & 5 deletions modules/swagger-codegen/src/main/resources/swift4/model.mustache
Original file line number Original file line Diff line number Diff line change
Expand Up @@ -64,13 +64,13 @@ open class {{classname}}: {{#parent}}{{{parent}}}{{/parent}}{{^parent}}Codable{{
} }
{{/additionalPropertiesType}} {{/additionalPropertiesType}}


{{#hasVars}} {{^parent}}{{#hasVars}}
public init({{#vars}}{{name}}: {{{datatypeWithEnum}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/vars}}) { public init({{#vars}}{{name}}: {{{datatypeWithEnum}}}{{^required}}?{{/required}}{{#hasMore}}, {{/hasMore}}{{/vars}}) {
{{#vars}} {{#vars}}
self.{{name}} = {{name}} self.{{name}} = {{name}}
{{/vars}} {{/vars}}
} }
{{/hasVars}} {{/hasVars}}{{/parent}}


// Encodable protocol methods // Encodable protocol methods


Expand All @@ -79,7 +79,7 @@ open class {{classname}}: {{#parent}}{{{parent}}}{{/parent}}{{^parent}}Codable{{
var container = encoder.container(keyedBy: String.self) var container = encoder.container(keyedBy: String.self)
{{#vars}} {{#vars}}
try container.encode{{#isListContainer}}Array{{/isListContainer}}{{^required}}IfPresent{{/required}}({{{name}}}, forKey: "{{{baseName}}}") try container.encode{{^required}}IfPresent{{/required}}({{{name}}}, forKey: "{{{baseName}}}")
{{/vars}} {{/vars}}
{{#additionalPropertiesType}} {{#additionalPropertiesType}}
try container.encodeMap(additionalProperties) try container.encodeMap(additionalProperties)
Expand All @@ -88,11 +88,11 @@ open class {{classname}}: {{#parent}}{{{parent}}}{{/parent}}{{^parent}}Codable{{


// Decodable protocol methods // Decodable protocol methods


public {{#parent}}override {{/parent}}required init(from decoder: Decoder) throws { public required init(from decoder: Decoder) throws {
let container = try decoder.container(keyedBy: String.self) let container = try decoder.container(keyedBy: String.self)
{{#vars}} {{#vars}}
{{name}} = try container.decode{{#isListContainer}}Array{{/isListContainer}}{{^required}}IfPresent{{/required}}({{#isListContainer}}{{{items.datatype}}}{{/isListContainer}}{{^isListContainer}}{{{datatypeWithEnum}}}{{/isListContainer}}.self, forKey: "{{{baseName}}}") {{name}} = try container.decode{{^required}}IfPresent{{/required}}({{{datatypeWithEnum}}}.self, forKey: "{{{baseName}}}")
{{/vars}} {{/vars}}
{{#additionalPropertiesType}} {{#additionalPropertiesType}}
var nonAdditionalPropertyKeys = Set<String>() var nonAdditionalPropertyKeys = Set<String>()
Expand All @@ -101,6 +101,9 @@ open class {{classname}}: {{#parent}}{{{parent}}}{{/parent}}{{^parent}}Codable{{
{{/vars}} {{/vars}}
additionalProperties = try container.decodeMap({{{additionalPropertiesType}}}.self, excludedKeys: nonAdditionalPropertyKeys) additionalProperties = try container.decodeMap({{{additionalPropertiesType}}}.self, excludedKeys: nonAdditionalPropertyKeys)
{{/additionalPropertiesType}} {{/additionalPropertiesType}}
{{#parent}}
try super.init(from: decoder)
{{/parent}}
} }
} }


Expand Down
Loading

0 comments on commit a5e4abe

Please sign in to comment.