entria / graphql-dataloader-boilerplate

Very simple boilerplate using GraphQL and DataLoader

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Deprecated

Try a better version here https://github.com/entria/entria-fullstack

GraphQL DataLoader Boilerplate

CircleCI codecov

Boilerplate using GraphQL and DataLoader

⭐ TypeScript ⭐

Check it out TS version of this boilerplate: https://github.com/entria/graphql-dataloader-boilerplate-ts

Blog Posts

Directory Structure

├── /data/                   # GraphQL generated schema
├── /repl/                   # Read-Eval-Print-Loop (REPL) configuration
├── /scripts/                # Generate GraphQL schema script
├── /src/                    # Source code of GraphQL Server
│   ├── /core/               # Core types and helper files, can be used like a global module
│   ├── /interface/          # NodeInterface (Relay) and other GraphQL Interfaces
│   ├── /modules/            # Modules (think on modules like isolated pieces of your code)
│   │   │── /mutation/       # Module mutations (add an index file to be used on MutationType)
│   │   │── /subscription/   # Module subscriptions (add an index file to be used on SubscriptionType)
│   │   │── /enum/           # Enums related to this module
├── /test/                   # Test helpers

Create-GraphQL

If you want to move faster you should use create-graphql to simplify the creation of a GraphQL Server

Command

Setup

yarn install

Note: If you do not have mongodb installed, please install it:

brew install mongodb

Develop

yarn watch

Test

yarn test

Or

yarn test:watch

Docker and docker-compose

No needs for installing dependencies or running mongod in another terminal window

docker-compose build && docker-compose up

Test

docker-compose -f docker-compose.test.yml build && docker-compose -f docker-compose.test.yml up

Production

# first compile the code
yarn build

# run graphql compiled server
yarn start

Flow

yarn flow

Or

flow

REPL server

yarn repl

awesome > const user = await M.User.find()

Yep, await syntax works on the repl, it is awesome, tks @princejwesley (https://gist.github.com/princejwesley/a66d514d86ea174270210561c44b71ba)

Schema

Update your schema

yarn update-schema

Take a look on the Schema

About

Very simple boilerplate using GraphQL and DataLoader

License:MIT License


Languages

Language:JavaScript 74.9%Language:TypeScript 24.7%Language:Dockerfile 0.4%