@coderich/autograph

AutoGraph

Usage no npm install needed!

<script type="module">
  import coderichAutograph from 'https://cdn.skypack.dev/@coderich/autograph';
</script>

README

AutoGraph

Instantly Build Relay-Compliant GraphQL APIs

AutoGraph is a powerful framework to instantly build Relay-Compliant GraphQL APIs that adhere to standards and best practice. It provides a robust set of directives that encapsulates data access, validation, transformations, and so much more!

Features

  • Instantly Connected Relay-Compliant GraphQL APIs
  • Extensible Validation & Transformation Logic
  • Unified Data Access / Abstraction Layer
  • Memoized Caching (via DataLoader)
  • Transactions, Pagination, and more!

Installation

npm i @coderich/autograph --save

Schema API

Custom Types

scalar AutoGraphMixed
enum AutoGraphScopeEnum { private protected public restricted }
enum AutoGraphOnDeleteEnum { cascade nullify restrict }
enum AutoGraphIndexEnum { unique }

Custom Directives

@model
arg type description
id String Specify database id field name (default: id)
meta String Define a model
alias String Specify database table name (default models's name)
scope AutoGraphScopeEnum Access scope for this model (default protected)
driver String Specify database driver (default default)
namespace String Define a custom namespace
createdAt String TBD
updatedAt String TBD
@field
arg type description
alias String Specify database field name (default field's name)
scope AutoGraphScopeEnum Access scope for this field (default protected)
enforce [AutoGraphEnforceEnum!] List of Rules to enforce
noRepeat Boolean TBD
onDelete AutoGraphOnDeleteEnum Specify onDelete behavior
transform [AutoGraphTransformEnum!] List of Transformers to apply
materializeBy String Define a virtual field
@index
arg type description
on [String!]! The field names to use for this index
type AutoGraphIndexEnum! The type of index to create
name String The name of the index

Data API

Data Access

Data Validation

Data Transformation

Each Resolver treats your schema definition as a graph of connected nodes. To begin a query or mutation, you must first identify a node in the graph as your starting point.

.match

Identify a node, returns a QueryBuilder.

const queryBuilder = resolver.match('Person');
.transaction

Identify a node, returns a Transaction.

const txn = resolver.transaction('Person');