Functions for creating a JSON-RPC 2.0 client. See http://www.jsonrpc.org/specification. This library supports batch requests and notifications, as well as single method calls. It also provides a function for creating corresponding server-side methods with the package json-rpc-server. This library does not handle transport, so a function for communicating with the server must be provided.
CHANGES I MADE
-
Compatibility with Aeson 2: Modifications to ensure compatibility with version 2 of the Aeson library, involving changes from
HashMap
toAeson.KeyMap
andAeson.Key
for JSON object manipulation. -
Text to Key Fix: Adjustments for issues related to transitioning from text strings to Aeson's Key type in JSON object keys, as part of Aeson 2 compatibility efforts.
-
GHC 9 Warnings Ignored: Explicit ignoring of warnings produced by GHC version 9, likely to allow compilation without addressing these warnings directly.
-
Fixed Typo in GHC Option: Correction of a typo in a GHC compilation option, pertaining to compiler flags used in the project configuration or build processes.
-
Temporarily Removing Tests to Build: Temporary removal of tests to facilitate building the project, indicating a workaround for test failures or dependency issues during development.
-
Test File Edits: Modifications to test files, possibly including compatibility adjustments for library updates, changes in testing strategies, or improvements to test coverage and effectiveness.
-
Code Refactoring and Bug Fixes:
- Refactoring to use
replicateM
instead ofsequenceA . replicate
for creating a batch of RPC calls, improving readability or efficiency. - Updates for Aeson's KeyMap and Key types use in JSON object construction and manipulation, reflecting Aeson 2 compatibility.
- Miscellaneous fixes and improvements, including adjustments to GHC options and handling of JSON RPC identifiers.
- Refactoring to use
These changes reflect a focused effort on updating the library for newer versions of dependencies (like Aeson 2), addressing compiler warnings, and improving the codebase through various fixes and refactoring.