titanium-graphql

Sugaring layer above graphql-js library that makes it easier to create deeply interconnected and complex GraphQL Schemas


Keywords
graphql, schema, library, javascript, titanium
License
MIT
Install
npm install titanium-graphql@0.0.4

Documentation

Titanium-GraphQL

Titanium is a sugaring layer above graphql-js library that eases the pain to create deeply interconnected and complex GraphQL Schemas.

npm Codacy Badge Build Status Dependency Status

It has:

  1. Painless Schema declaration;
  2. Built-in access and write rules;
  3. Input validation and sanitization;
  4. DataLoader for query batching support.

But why Titanium and not just plain GraphQL?

This is one of the most frequently asked questions about it! GraphQL is an amazing tool created by Facebook. It provides one of the most understandable ways to build and use a rich web API. However, the amount of boilerplate to setup a complex schema is huge. Been there, trust me!

Titanium was born to make you focus on your product development instead of platform setup. It comes with Relay and DataLoader bundled on its core. Just set up a field with a connection type and you are ready to go! It is really that simple, check out the Blog Example.

One of the biggest advantages is the rules configuration for a defined type. Inspired by the amazing Firebase Rules, you can prevent access from individual fields and arguments to whole nodes and mutations per user context!

Titanium is still being forged!

Titanium was initally created as a helper tool inside a personal project, but one day I decided to open its source, given its power and ability to accelerate development. Since then, a heavy work has been done every day to make it mature to real world situations.

Because of that, its API is still unstable and might change. It is still not recommended for production. Please help us to complete the Spec! Fork it, add more metallic sugar and send us a pull request :)

Known issues

  1. Severe lack of documentation. I am really sorry about that. It's my very first open source project.
  2. Connection of Union types are still under development. Using them now may cause undesired results.

Having a weird issue? Drop a message at our Issues section. We'd be happy to help!