Giter Club home page Giter Club logo

gentle's Introduction

๐Ÿšง๐Ÿšง this is pre-alpha software ๐Ÿšง๐Ÿšง

Gentle

Fast, simple, type-safe, code-first GraphQL framework.

Quick Start

it's recommended to install Gentle using Go modules.

  1. go get github.com/sijad/gentle/cmd/gentc to install Gentle
  2. go run github.com/sijad/gentle/cmd/gentc init to initialize a GraphQL project
  3. Make changes to GraphQL schema at ./graph/schema/
  4. go generate graph/generate.go to generate Graph codes
  5. Run go run server.go

Credits

inspired by Nexus, PostGraphile and gqlgen

gentle's People

Contributors

sijad avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

gentle's Issues

0.1.0 Todo List

Gentc CLI

  • create server.go with init command
    • try only import all codes from generated or gentle/graphql package

Code Generating

  • introspection
  • generate correct marshalers
  • generate correct args unmarshalers
  • write tests
  • implement interfaces using Go interfaces + adding it to the struct
  • implement subscriptions
  • types and fields comments
  • ability to deprecate using comments (similar to Go)
  • remove NONNULL type (add IsNull prop to the type ref or add NULLABLE type)
  • investigate how to generate same code and SDL
    • we can sort elements alphabetically
  • cleanup ImportType() and remove inline functions
    • we probably can scan packages and export all fulltypes (enums, inputs and objects) first
    • then scan root objects and build the type refs tree
  • ability to merge and use multiple root objects (Query, Mutation)
  • don't allow none methods fields in root objects
    • makes it easier to implement introspection
    • makes it clear to run the server
  • investigate ability to mark objects as input if they appears only as args
  • specify types for basic types (int, string, uint32, etc)
  • better errors with line number of the code
  • cleanup code generating

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.