As previously mentioned I was interested in porting GraphQL to work with linked data. I forked the graphql javascript implementation and added rules to the parser to work with namespace prefixes. The working title is webql.
It completes namespace prefixes by using the namespaces in solid-namespace + additional namespaces that can be declared in a json file similar to how they’re declared in solid-namespace; the path to this file needs to be set in CUSTOM_NAMESPACES_PATH
The client that helps to load and patch linked data resources and makes them consumable by GraphQL is at webql-client
Apart from the changes made to the graphql vanilla implementation, i also forked (webql-nexus-schema) graphql-nexus-schema for an easier way to declare graphql schemas; it now also account for the namespace prefixes in the schema.
And if you are now curious how this can be used i built a small profile editor that exemplifies the functionalities: https://webql-demo.owntech.de (Source)
You can see in src/api/objects/person how a file structure can look like and how it can be used to declare types, mutations and queries. I also have some useful helpers in src/api/schema.ts that use react-query to transform operations into react hooks. In src/components/Profile.tsx you can see these operations in action.
As I am just finishing this in time for my uni exams I didn’t get to properly document it, but that will follow. So for now it is unfortunately all over the place However typescript should expose most of the api’s so if you are already somewhat familiar with graphql and you want to try it out, you already can. I also plan to implement graphql-codegen to work with the webql types, queries & mutations, to make it an even better developer experience.
Any feedback, opinions or issues are as always highly appreciated