Grapher has moved to NPM & Typescript

…and is now called Nova.

Hello dear Meteor community,

We are pleased to announce that Grapher now works with native MongoDB drivers and treats GraphQL as a first-class citizen and has moved to npm here: https://www.npmjs.com/package/@kaviar/nova

We have refactored the most important aspects and made it more efficient and more robust and very importantly, type-safe (Typescript FTW). This package needn’t be only available to Meteor because it can help everyone in the code community.

Grapher remains LTS and no new features will be added.

28 Likes

https://www.kaviarjs.org/ Is this what am thinking…another Meteor pattern library???

1 Like

We don’t plan to move-out of Meteor. We want to fully embrace the NPM ecosystem.

9 Likes

Congrats @diaconutheodor, this is a good move to reach a broader audience for your packages. I know how hard you are working on this and is very good to see the progress.

And for sure this is still very useful for Meteor community as Meteor is for long fully compatible with NPM.

Keep up!

4 Likes

What do you mean LTS?

LTS stands for Long Term Support : https://en.wikipedia.org/wiki/Long-term_support.
In a nutshell, you can use it safely it will be maintain for a long time.

1 Like

Hope you will enjoy!

6 Likes

Is there a migration guide from grapher to nova? E.g. in grapher I can expose a named query server side so it’s safe to use it client-side. How to do this in nova?

Unfortunately there’s no migration path because nova is a very stripped-down Grapher. Nova no longer hooks into the api layer. Exposure logic is basically non-existent. Grapher is still the most advanced.

The solution is to make the cultofcoders:grapher use Nova as the main driver. However, the next problem appears with meta links which are no longer supported, so this makes things even more complicated.

2 Likes

Brilliant, thanks for sharing this info. This is all very interesting :slightly_smiling_face:
Check MyPrepaidCenter Balance

Can I ask what pattern do you use instead of exposing queries? Graphql-shield? Or query the db inside meteor methods?

Safest is graph intersection, you can look at the GraphQL intersection in the integration docs.