All Versions
Latest Version
Avg Release Cycle
59 days
Latest Release
740 days ago

Changelog History
Page 2

  • v2.1.0 Changes

    October 03, 2019

    ๐Ÿš€ This release is entirely for updating the pre-compiled Carthage framework to one having been compiled using the Swift 5.1 compiler.

  • v2.0.4 Changes

    September 13, 2019

    ๐Ÿš€ In this release, we've:

    • (#36 / #37 / 1fbca8e) Made properties within ErrorRecoveryOption public, so they can be accessed outside of the ThunderRequest module.
  • v2.0.3 Changes

    August 01, 2019

    ๐Ÿš€ In this release, we've:

    • ๐Ÿš€ (1d97bb6) Changed some access modifiers within Request and RequestController to allow for mocking beyond the framework. In a future release, these will be removed in favour of a protocol-based system instead.
  • v2.0.2 Changes

    July 24, 2019

    ๐Ÿš€ In this release, we've fixed:

    • (#34) A bug where an extraneous ? was appended to requests even when nil queryItems were provided
  • v2.0.1 Changes

    June 20, 2019

    ๐Ÿš€ In this release, we've fixed:

    • ๐Ÿšš An issue where if you included parameters within the base URL, they would be mistakenly removed.
  • v2.0 Changes

    May 16, 2019

    ๐Ÿ‘ In this version ThunderRequest has been completely re-written in Swift! This will allow us to continue to continue to support this framework moving forward as we work exclusively in Swift at 3SidedCube.

    ๐Ÿ’ฅ Breaking Changes

    ๐Ÿ”จ During this re-write we also took the decision to refactor some of the API which has introduced some breaking changes.

    • Individual GET, POST e.t.c. functions have been replaced with a single request function which takes an enum representation of the HTTP method. There is a much wider array of parameters available to this function now.

      // REMOVED! requestController.get("path") { (response, error) in


      // NEW SYNTAX! requestController.request("path", method: .GET) { (response, error) in


    • Request body is no longer of type Any it's of type RequestBody which is a protocol. Standard implementations such as JSONRequestBody and FormURLEncodedRequestBody e.t.c. are provided out of the box.

      requestController.request("users", method: .POST, body: JSONRequestBody(user.dictionaryRepresentation)) { (response, error) in


    • ๐Ÿšš The TSC prefix has been removed from all classes.

    • ๐Ÿšš TSCErrorRecoveryAttempter overrides have been moved to a ErrorOverrides struct.

      // REMOVED! TSCErrorRecoveryAttempter.registerOverrideDescription("We're having some trouble getting your location. Please check that you have location services enabled.", forDomain: kCLErrorDomain, code: CLError.locationUnknown.rawValue)

      // NEW SYNTAX! ErrorOverrides.register(overrideDescription: "We're having some trouble getting your location. Please check that you have location services enabled.".localised(with: "_GENERAL_ERROR_CLERROR_UNKNOWN"), recoverySuggestion: nil, forDomain: kCLErrorDomain, code: CLError.locationUnknown.rawValue)

    • Other minor breaking changes (re-naming of variables and method signatures e.t.c.)

    ๐Ÿ†• New Features

    We also took the time to add some nice new features!

    • ๐Ÿ‘ Full support for Codable!

      // Encodable request body! requestController.request("users", method: .POST, body: EncodableRequestBody(user, encoding: .json)) { (response, error) in

      } // Decodable request response! requestController.request("users", method: .GET) { (response, error) in guard let _response = response else { return } let user: User? = _response.decoded() }

    • ๐Ÿ‘Œ Support for xml and binary plist request type

      requestController.request("users", method: .POST, body: PropertyListRequestBody(user, format: .binary)) { (response, error) in


    • Cleaner and easier MultipartForm API

  • v1.1 Changes

    February 13, 2018

    โฌ†๏ธ This version contains a number of bug fixes and upgrades.