Hello @samberger,
Welcome to our community! I see you’ve been a member here for a while, and we appreciate your engagement.
I understand your struggle to find comprehensive resources for a “Javascript/Typescript SDK” and the existing JS ObjectLoader. You’re completely correct; currently, we don’t have a robust SDK for JS/TS.
Each package relies upon and expects some of the others to be ‘active’ at the same time. The ObjectLoader and the Viewer are both available as npm
packages. You can find them here:
Unfortunately, the documentation for both is limited at the moment. We’re working hard to stabilise the API, especially for the Viewer, which is a rapidly evolving project.
The ObjectLoader and the GQL interfaces are more stable. Still, providing a Typed response is challenging due to the nature of the data. Depending on the source application or analysis, the data stored in Speckle will be arbitrary JSON, which you’ve already encountered.
We do plan to map Speckle Types to JS/TS eventually. However, as most of the Connectors are built using other SDKs, this hasn’t been a priority yet. One possibility we’ve considered is having our CI process automatically document a common schema, allowing our Core Objects library to continue evolving while maintaining consistency.
Even with the Objects library, a lot of dynamic data might not fit neatly into a schema. This is intentional - Speckle does not enforce a strict schema but employs opinionated structures.
I also encourage you to explore the current server and frontend code, following the instructions in the viewer-sandbox. This might provide some interim solutions and further insights into the areas that need improvement. There are also some equivalences to the helpful SDK wrapper functions in the speckle-excel connector. However, you seem to have the GQL querying sorted already.
We understand the challenge you’re facing, and we want to ensure that our development efforts meet the needs of our users. To this end, we’d greatly appreciate it if you could share the specific requirements or features you feel are essential for a JavaScript/TypeScript SDK. Your insights will be instrumental in helping us develop a minimum viable product (MVP) that addresses real-world needs.
Your interest sounds like it is the data object side of any SDK rather than the interfaces with the server, so your feedback in this process is invaluable. We’re here to support you and make the development process as smooth and effective as possible - in lieu of more tooling, please continue to ask questions.
Thank you again for your engagement and support.