Moves Host
to Reference Type
The Host
type holds a reference to a URLSession
instance responsible for all requests. So any representation that it was a value type was half-hearted at best and misleading at worst.
Removes dependency on Medea
package
Medea was primarily being used for its AnyJSON
type’s ability to handle all JSON fragments. But fragments at the top level of responses are unsupported by specs like JSON:API and have never been a good idea. JSON object types are easy to provide without Medea’s help via JSONSerlialization
. And really, even this minimal amount of JSON parsing is less common now that Codable is a thing and decoding is happening at the call site. Everyone just wants Data
.
Of the rest of it’s features, the ValidJSONObject
type is the only that was really being used, and that's trivial to implement internally to SessionArtist.
Breaking Changes
Host
is now aclass
instead of astruct
.Request.json(_:)
has been removed.Medea
types likeJSONObject
,JSONArray
, andValidJSONObject
are now directly under theSessionArtist
namespace.- Actions that threw Medea-originated errors still throw errors. But now they're of the
SessionArtist.Error
type. Package.swift
has been updated to version 5.2. This should mean dependencies only used for testing (likePerfidy
) will no longer be pulled by consumers.