Swiftpack.co - henrik-dmg/HPNetwork as Swift Package

Swiftpack.co is a collection of thousands of indexed Swift packages. Search packages.
See all packages published by henrik-dmg.
henrik-dmg/HPNetwork 4.0.1
A protocol-based networking stack written in Swift
⭐️ 2
🕓 1 week ago
iOS macOS watchOS tvOS
.package(url: "https://github.com/henrik-dmg/HPNetwork.git", from: "4.0.1")

HPNetwork

Swift codecov

HPNetwork is a protocol-based networking stack written in pure Swift

Installation

Starting with v4 HPNetwork is only available via Swift Package Manager.

  • Package.swift: .package(url: "https://github.com/henrik-dmg/HPNetwork", from: "4.0.0")
  • Xcode: https://github.com/henrik-dmg/HPNetwork

Documentation

Documentation has been moved to https://henrik-dmg.github.io/HPNetwork/. That way I don't have to copy it back and forth between the README and the .docc catalogs.

Authors

GitHub

link
Stars: 2
Last commit: 1 week ago
Advertisement: IndiePitcher.com - Cold Email Software for Startups

Dependencies

Release Notes

swift-http-types
2 weeks ago

Overview

This release migrates a lot of the types to use the swift-http-types package by Apple. It brings breaking changes, so new major version.

Mocking

There's a new NetworkClientProtocol type that you can schedule network requests on. To mock network requests, you can use NetworkClientMock from the new HPNetworkMock library.

Example usage:

networkClient.mockRequest(ofType: SomeRequest.self) { _ in
    ReturnTypeOfRequest() // or throw an error
}

// To remove all mocks

networkClient.removeAllMocks()

You can also specify whether NetworkClientMock should just fall-back to regular networking if there are no mocks configured for the request it's about the execute by using fallbackToURLSessionIfNoMatchingMock

If you need to go deeper, for example if you don't want to migrate to NetworkClient, you can use URLSessionMock to use with URLSession

Example usage of URLSessionMock:

lazy var mockedURLSession: URLSession = {
    let configuration = URLSessionConfiguration.ephemeral
    configuration.protocolClasses = [URLSessionMock.self]
    return URLSession(configuration: configuration)
}()

// ...

_ = URLSessionMock.mockRequest(to: url, ignoresQuery: false) { _ in
    let response = HTTPURLResponse(
        url: url,
        statusCode: 200,
        httpVersion: nil,
        headerFields: ["Content-Type": ContentType.applicationJSON.rawValue]
    )!
    return (someDataYouWant, response)
}

Full Changelog: https://github.com/henrik-dmg/HPNetwork/compare/3.1.2...4.0.0

Swiftpack is being maintained by Petr Pavlik | @ptrpavlik | @swiftpackco | API | Analytics