Skip to content

Conversation

@abelonogov-ld
Copy link
Contributor

feat: Add LightWeight GraphQL Client

  • It uses query strings and filename to specify query.
  • Encodable structures to pass variables

@abelonogov-ld abelonogov-ld requested a review from a team as a code owner September 15, 2025 23:39
throw NetworkError.transport(error)
}
}
}
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Error Wrapping Causes Handling Issues

The do-catch blocks in URLSessionNetworkClient.send and GraphQLClient.execute incorrectly re-wrap specific errors. NetworkError.invalidResponse and NetworkError.httpStatus become NetworkError.transport, while GraphQLClientError.graphQLErrors and GraphQLClientError.missingData become GraphQLClientError.decoding. This double-wrapping obscures the original error type and makes error handling less precise.

Additional Locations (1)

Fix in Cursor Fix in Web

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will be fixed in follow up PR

let bundle = Bundle(for: DummyClass.self)
let out: GetUserOut = try await client.executeFromFile(
resource: "getUser",
bundle: Bundle.module,
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Unused Variable Causes Test Inconsistency

In the executeFromFileLoadsAndRuns test, a bundle variable is declared but then Bundle.module is used in the executeFromFile call, leaving the declared bundle unused. This creates an inconsistency with the executeFromFileNotFoundThrows test, which correctly uses its locally declared bundle.

Fix in Cursor Fix in Web

@abelonogov-ld abelonogov-ld merged commit ed9f6b5 into main Sep 15, 2025
2 checks passed
@abelonogov-ld abelonogov-ld deleted the andrey/graphql-client-just branch September 15, 2025 23:53
Vadman97 pushed a commit that referenced this pull request Oct 23, 2025
🤖 I have created a release *beep* *boop*
---


##
[0.4.0](swift-launchdarkly-observability-v0.3.0...swift-launchdarkly-observability-v0.4.0)
(2025-10-23)


### Features

* Add GraphQL Client
([5e52365](5e52365))
* add gzip compression
([d2133a7](d2133a7))
* Add LightWeight GraphQL Client
([ed9f6b5](ed9f6b5))
* Add LightWeight GraphQL Client
([#12](#12))
([ed9f6b5](ed9f6b5))
* add standard output logger for debug
([#16](#16))
([435f4cb](435f4cb))
* add tap handler, send span
([#7](#7))
([96cf5ef](96cf5ef))
* add timeout for custom crash filter as param (10s default)
([daaa111](daaa111))
* instrumentation and session managers
([b6f1c05](b6f1c05))
* instrumentation and session managers
([#1](#1))
([a072154](a072154))
* instrumentation, client, sdk, crash report, network
([2255e48](2255e48))
* instrumentation, client, sdk, crash report, network
([#5](#5))
([df712ab](df712ab))
* ios26 transition
([0853a19](0853a19))
* plugin implementation
([c38588c](c38588c))
* plugin implementation
([#4](#4))
([1849209](1849209))
* sampling api
([#10](#10))
([242149f](242149f))
* set sampling config via graphql client
([#19](#19))
([500f550](500f550))
* swipe tracker
([4fca19d](4fca19d))
* swipe tracker
([#13](#13))
([0a302d7](0a302d7))
* **system-metrics:** add auto instrumentation for cpu and memory
([#36](#36))
([95ca6fc](95ca6fc))
* use apple format for crash report
([1390973](1390973))


### Bug Fixes

* compilation
([bdd3e22](bdd3e22))
* eval hook
([2749468](2749468))
* eval hook
([#8](#8))
([4b60b80](4b60b80))
* get sampling config
([#21](#21))
([12e35c7](12e35c7))
* guard inconsistent [weak self]
([59dce74](59dce74))
* Limit Package.swift to iOS and TV
([#34](#34))
([7d76b65](7d76b65))
* requirement 1.2.3.6 span name in eval hook
([#14](#14))
([ad15ef9](ad15ef9))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

<!-- CURSOR_SUMMARY -->
---

> [!NOTE]
> Prepare 0.4.0 release: add changelog and bump manifest version.
> 
> - **Docs**:
> - Add `CHANGELOG.md` for `0.4.0`, outlining new features and bug
fixes.
> - **Release**:
> - Bump version in `.release-please-manifest.json` from `0.3.0` to
`0.4.0`.
> 
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
4381ca4. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants