graphql-kit / graphql-voyager

🛰️ Represent any GraphQL API as an interactive graph
https://graphql-kit.com/graphql-voyager/
MIT License
7.81k stars 516 forks source link

cache SVG render by md5 hash of TypeGraph #197

Closed Claudiohbsantos closed 1 year ago

Claudiohbsantos commented 3 years ago

When loading very large schemas the SVGRender.renderSvg method takes a very long time to calculate the svg. In larger projects the schemas don't change that often, so caching the svg string is a good way to avoid having to recalculate the svg on every page load.

I used a md5 hash of TypeGraph to identify schemas and use the hash as the key for caching using localStorage.

This could probably be improved with eviction strategies or other fancier mechanisms but first I wanted to make sure there was interest in the feature.