All Projects → relay-tools → Relay Compiler Language Typescript

relay-tools / Relay Compiler Language Typescript

Licence: mit
A language plugin for Relay that adds TypeScript support, including emitting type definitions.

Programming Languages

typescript
32286 projects

Labels

Projects that are alternatives of or similar to Relay Compiler Language Typescript

Frontend
🌏 The front-end application code for https://buildkite.com
Stars: ✭ 132 (-34.33%)
Mutual labels:  relay
Reactconfbr
Public infos and issues about React Conf Brasil organization
Stars: ✭ 156 (-22.39%)
Mutual labels:  relay
Awesome Graphql
Awesome list of GraphQL
Stars: ✭ 13,020 (+6377.61%)
Mutual labels:  relay
Wora
Write Once, Render Anywhere. typescript libraries: cache-persist, apollo-offline, relay-offline, offline-first, apollo-cache, relay-store, netinfo, detect-network
Stars: ✭ 138 (-31.34%)
Mutual labels:  relay
Laravel Graphql
Facebook GraphQL for Laravel 5. It supports Relay, eloquent models, validation and GraphiQL.
Stars: ✭ 1,793 (+792.04%)
Mutual labels:  relay
Protostar Relay
Open-source iteration of the official Relay devtool.
Stars: ✭ 161 (-19.9%)
Mutual labels:  relay
Graphql Sequelize Crud
Automatically generate queries and mutations from Sequelize models
Stars: ✭ 129 (-35.82%)
Mutual labels:  relay
Relay Workshop
Material for my Relay Workshop
Stars: ✭ 197 (-1.99%)
Mutual labels:  relay
Relay Authentication
An example app demonstrating role based authentication and file upload with Relay and GraphQL.
Stars: ✭ 153 (-23.88%)
Mutual labels:  relay
Reactnavigationrelaymodern
React Navigation integration with Relay
Stars: ✭ 170 (-15.42%)
Mutual labels:  relay
Relay Rails Blog
A graphql, relay and standard rails application powered demo weblog. We are using Graphql server and relay for our react component data needs.
Stars: ✭ 140 (-30.35%)
Mutual labels:  relay
Absinthe relay
Absinthe support for the Relay framework
Stars: ✭ 143 (-28.86%)
Mutual labels:  relay
Relay Visual Learners
An interactive diagram of Relay Classic.
Stars: ✭ 164 (-18.41%)
Mutual labels:  relay
Relayer
SMB Relay Attack Script
Stars: ✭ 136 (-32.34%)
Mutual labels:  relay
Ws Tcp Relay
A simple relay between WebSocket clients and TCP servers
Stars: ✭ 186 (-7.46%)
Mutual labels:  relay
Graphbrainz
A fully-featured GraphQL interface for the MusicBrainz API.
Stars: ✭ 130 (-35.32%)
Mutual labels:  relay
Sonoff wifi switch
Прошивка для ESP8266 (Умный дом)-Firmware for ESP8266 (Smart Home)
Stars: ✭ 156 (-22.39%)
Mutual labels:  relay
Django Graphql Auth
Django registration and authentication with GraphQL.
Stars: ✭ 200 (-0.5%)
Mutual labels:  relay
Graphql.js
A Simple and Isomorphic GraphQL Client for JavaScript
Stars: ✭ 2,206 (+997.51%)
Mutual labels:  relay
React Relay Offline
TypeScript library files for Relay Modern Offline
Stars: ✭ 169 (-15.92%)
Mutual labels:  relay

relay-compiler-language-typescript

Build Status

A language plugin for Relay that adds TypeScript support, including emitting type definitions.

Installation

Add the package to your dev dependencies:

yarn add graphql relay-compiler --dev
yarn add typescript relay-compiler-language-typescript --dev

Configuration

relay-compiler

Then configure your relay-compiler script to use it, like so:

{
  "scripts": {
    "relay":
      "relay-compiler --src ./src --schema data/schema.graphql --language typescript --artifactDirectory ./src/__generated__"
  }
}

This is going to store all artifacts in a single directory, which you also need to instruct babel-plugin-relay to use in your .babelrc:

{
  "plugins": [["relay", { "artifactDirectory": "./src/__generated__" }]]
}

TypeScript

Also be sure to configure the TypeScript compiler to transpile to es2015 modules and leave transpilation to commonjs modules up to Babel with the following tsconfig.json settings:

{
  "compilerOptions": {
    "target": "es2015",
    "module": "es2015"
  }
}

The reason for this is that tsc would otherwise generate code where the imported graphql function is being namespaced (react_relay_1 in this example):

react_relay_1.createFragmentContainer(
  MyComponent,
  react_relay_1.graphql`
  ...
`
);

…and this makes it impossible for babel-plugin-relay to find the locations where the graphql function is being used.

Note that this does mean you need to configure Babel to transform the ES module import and export statements, by using the babel-plugin-transform-es2015-modules-commonjs transform plugin, if you’re not already.

Problems

React Hot Loader

React Hot Loader is known to not always work well with generated code such as our typing artefacts, which will lead to loading modules with TypeScript types into the browser and break. As a maintainer of RHL pointed out in a similar issue:

The problem - hot reloading is not "complete"

So until RHL will be made “complete” this project can’t gurantee to always work well with it, nor is it our control to do anything about that.

Also see

License

This package is available under the MIT license. See the included LICENSE file for details.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].