Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/cult-of-coders/grapher
Grapher: Meteor Collection Joins + Reactive GraphQL like queries
https://github.com/cult-of-coders/grapher
hacktoberfest meteorjs
Last synced: about 14 hours ago
JSON representation
Grapher: Meteor Collection Joins + Reactive GraphQL like queries
- Host: GitHub
- URL: https://github.com/cult-of-coders/grapher
- Owner: cult-of-coders
- License: mit
- Created: 2016-09-14T13:03:37.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2024-08-12T13:10:35.000Z (5 months ago)
- Last Synced: 2025-01-05T09:06:30.026Z (8 days ago)
- Topics: hacktoberfest, meteorjs
- Language: JavaScript
- Homepage: https://atmospherejs.com/cultofcoders/grapher
- Size: 1.32 MB
- Stars: 276
- Watchers: 21
- Forks: 53
- Open Issues: 68
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Funding: .github/FUNDING.yml
- License: LICENSE
Awesome Lists containing this project
- awesome-meteor - cultofcoders:grapher - Grapher: Meteor.js Collection Joins + Reactive GraphQL like queries. (Packages)
- awesome-meteor - cultofcoders:grapher - Grapher: Meteor Collection Joins + Reactive GraphQL like queries. (Collections)
README
## Introducing BlueLibs
- [GitHub BlueLibs Monorepo](https://github.com/bluelibs/bluelibs)
- Following the same bold vision of Meteor, but with a modern twist. www.bluelibs.com
- Read more about our approach coming from Meteor: https://www.bluelibs.com/blog/2021/11/26/the-meteor-of-2022
- We've implemented [Grapher aka Nova](https://www.bluelibs.com/products/nova) as a standalone npm package compatible to native MongoDB drivers (including Meteor), it is not as feature-rich (no meta links, no pubsub functionality) but is more advanced.# Grapher 1.5
_Grapher_ is a Data Fetching Layer on top of Meteor and MongoDB. It is production ready and battle tested. Brought to you by [Cult of Coders](https://www.cultofcoders.com) β Web & Mobile Development Company.
Main features:
* Innovative way to make MongoDB relational
* Blends in with Apollo GraphQL making it highly performant
* Reactive data graphs for high availability
* Incredible performance
* Denormalization ability
* Connection to external data sources
* Usable from anywhereIt marks a stepping stone into evolution of data, enabling developers to write complex and secure code,
while maintaining the code base easy to understand.[Read more about the GraphQL Bridge](docs/graphql.md)
## Installation
```
meteor add cultofcoders:grapher
```## [Documentation](docs/index.md)
This provides a learning curve for Grapher and it explains all the features. If you want to visualize the documentation better, check it out here:
https://cult-of-coders.github.io/grapher/
## [API](docs/api.md)
Grapher cheatsheet, after you've learned it's powers this is the document will be very useful.
## Useful packages
* Live View: https://github.com/cult-of-coders/grapher-live
* Graphical Grapher: https://github.com/Herteby/graphical-grapher
* React HoC: https://github.com/cult-of-coders/grapher-react
* VueJS: https://github.com/Herteby/grapher-vue### Events for Meteor (+ Grapher, Redis Oplog and GraphQL/Apollo)
* Meteor Night 2018: [Arguments for Meteor](https://drive.google.com/file/d/1Tx9vO-XezO3DI2uAYalXPvhJ-Avqc4-q/view) - Theodor Diaconu, CEO of Cult of Coders: βRedis Oplog, Grapher, and Apollo Live.
## Contributors
This project exists thanks to all the people who contribute. [[Contribute]](CONTRIBUTING.md).
## Backers
Thank you to all our backers! π [[Become a backer](https://opencollective.com/grapher#backer)]
## Sponsors
Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/grapher#sponsor)]
### Quick Illustration
Query:
```js
createQuery({
posts: {
title: 1,
author: {
fullName: 1,
},
comments: {
text: 1,
createdAt: 1,
author: {
fullName: 1,
},
},
categories: {
name: 1,
},
},
}).fetch();
```Result:
```
[
{
_id: 'postId',
title: 'Introducing Grapher',
author: {
_id: 'authorId',
fullName: 'John Smith
},
comments: [
{
_id: 'commentId',
text: 'Nice article!,
createdAt: Date,
author: {
fullName: 1
}
}
],
categories: [ {_id: 'categoryId', name: 'JavaScript'} ]
}
]
```### Testing
You can create `test` directory and configure dependencies (working directory is the root of this repo):
```
# create meteor app for testing
# you can add a specific release with --release flag, this will just create the app with the latest release
meteor create --bare test
cd test
# install npm dependencies used for testing
meteor npm i --save [email protected] [email protected] [email protected] chai# Running tests (always from ./test directory)
METEOR_PACKAGE_DIRS="../" TEST_BROWSER_DRIVER=chrome meteor test-packages --once --driver-package meteortesting:mocha ../
```If you use `TEST_BROWSER_DRIVER=chrome` you have to have chrome installed in the test environment. Otherwise, you can just run tests in your browser.
Another option is to use `puppeteer` as a driver. You'll have to install it with `meteor npm i puppeteer@10`. Note that the latest versions don't work with Node 14.
With `--port=X` you can run tests on port X.
Omit `--once` and mocha will run in watch mode.