relay-compiler-language-scalajs

0.40.2 • Public • Published

relay-compiler-language-scalajs

The purpose of this project is to generate Scala.js bindings for the relay-compiler. Typically, the relay-compiler generates flow bindings along with the compiled queries. This project replaces that generation and outputs js.native traits instead. It should work on most "normal" gql features. If I personally run across something not supported I try to add it, but it is by no means totally complete.

This project uses flow because it's what Relay uses, and it's better than raw javascript.

It uses artifactDirectory to generate all the source files in the same package. So it's a big flat package repository in the same directory. This is controlled by (resourceManaged in Compile).value / "relay-compiler-out /" in sbt terms.

Versions

  • 0.32.x - Relay 11.0.2
  • 0.25.x - Relay 10.1.2
  • 0.22.2 - Relay 6.0.0
  • 0.20.1 - Relay 2,0,0
  • 0.11.0 - Relay 1.6.2
  • 0.9.0 - Relay 1.5.0
  • 0.8.2 - Relay 1.4.0

Example

$ ./node_modules/bin/relay-compiler --language scalajs --src example/src/ --schema example/schema.graphql --artifactDirectory example/out

Features

  • Handle names elegantly by scoping them to the companion object.
  • Provides two ways to customize the output
  • @scalajs(extends: String) This can give you a parent class to mixin. It's your job to verify it.
  • @scalajs(useNulls: Boolean) this can give you finer control on using A | Null on a Fragment, field or inline fragment.

Example

Looking at the sbt tests is the best way to get a handle on how things work.

Basic Test

Dev

Build with:

yarn build

Testing

Go to node-example and run:

yarn iterate

Debugging

First build and then use the relay-compiler Run Configuration in IntelliJ.

Alternatively, modify iterate.sh to:

node --inspect brk

Then run this and attach a debugger.

Readme

Keywords

none

Package Sidebar

Install

npm i relay-compiler-language-scalajs

Weekly Downloads

222

Version

0.40.2

License

Apache-2.0

Unpacked Size

226 kB

Total Files

46

Last publish

Collaborators

  • dispalt