Giter VIP home page Giter VIP logo

graphql2ts's Introduction

graphql2ts

graphql2ts Logo

Transform .graphql files to graphql-js typescript code

History

We first had graphql-js implementation, but developers weren't happy with it. So it was born schema first with graphql-tools, merge-graphql-schemas, graphql-modules.

There is also a codemod to transform your .js files to .graphql files: jscodeshift-graphql-files.

After a lot of time, schema first showed some scaling problems, Schema First Problems, mostly because it does not colocate schema with resolvers, and code is much more powerful to implement abstraction on top of it.

This codemod exists to helps us move back to code first approach (graphql-js and related tools).

It will transform a .graphql file and transform in a graphql-js .ts declartion

How to run

npx graphql2ts myschema.graphql mySchemaOutput.ts

How to test

yarn jest

graphql2ts's People

Contributors

sibelius avatar washingtonsoares avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

graphql2ts's Issues

Import dependencies on code generation

Currently the generated code doesn't import any dependencies. Here's what it generates:

image

One possible solution would be to include a configuration file to specify which package to include the dependencies. Something like graphql2ts.config.js or a command-line argument like --package which could be omitted since we are using the graphql-js package.

Unable to run the CLI

What I tried to do

npx graphql2ts schema.graphql schema.ts

What I expected

To have the TS schema

What happened

Cannot find module '../lib/cli.js'
Require stack:
- /Users/zaguini/.npm/_npx/1599/lib/node_modules/graphql2ts/bin/cli

Further research

It looks like the transpiled code has not been shipped:

image

This screenshot above is directly from the path specified above on the stack trace.

I tried to run the build process locally cloning the repository but it failed, maybe that's why. Here's what happened:

> rm -rf lib/* && babel src --extensions ".es6,.js,.es,.jsx,.mjs,.ts,.tsx" --ignore __test__,__testfixtures__,*.spec.ts --out-dir lib

Error: Cannot find module '@babel/plugin-proposal-nullish-coalescing-operator' from '/Users/zaguini/Development/graphql2ts'

There's already a PR in place (#9) that fixes this bug.

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.