
Security News
New CNAPulse Dashboard Tracks CNA Activity and Disclosure Trends
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.
relay-compiler
Advanced tools
Relay-Compiler is a code-generation toolkit for GraphQL. It contains the core functionalities of GraphQL code-gen, including file parsing, validation, syntax tree parsing and transformation.
The simplest way to configure relay is to add a new relay section to your
package.json that contains the relay config.
At minimum, the relay config must specify where to find source files (i.e. files
containing graphql literals) and the GraphQL schema for the project.
// adding new section to package json
{
...
"scripts": {
"relay": "relay-compiler"
},
...
// relay configuration
"relay": {
"src": "./src",
"schema": "./src/schema/app_schema.graphql"
}
}
Relay Compiler will automatically discover the config if:
relay.config.json, relay.config.js file at the root of the
project (i.e. in the same folder as the package.json file).package.json file contains a "relay" key.Alternatively, the path to a configuration file can be specified as an argument:
npm run relay ./relay.json
or with yarn
yarn relay ./relay.json
Please note, in this case you'll need to provide a separate configuration for the babel plugin.
Relay compiler uses watchman to find
file sources, and "listen" to the file changes in the "watch" mode. If
watchman is not available, the compiler will use
glob to query the filesystem for files.
src Root directory of application code. [string] [required]
schema Relative path to the file with GraphQL SDL file. [string] [required]
language The name of the language used for input files and generated
artifacts. ["javascript" | "typescript" | "flow"] [required].
artifactDirectory A specific directory to output all artifacts to. When
enabling this the babel plugin needs artifactDirectory to be set as well.
[string]
excludes Directories to ignore under src. [array] [default:
["/node_modules/", "/mocks/", "/generated/"]]
schemaExtensions List of directories with schema extensions. [array]
schemaConfig
nodeInterfaceIdField Configure the name of the globally unique ID field on
the Node interface. Useful if you can't use the default id field name.nodeInterfaceIdVariableName Specifies the name of the variable expected by the node query to pass the Node id.
[string][default: "id"]nonNodeIdFields Restricts the type of all fields named id to ID.
allowedIdTypes Mappings from types in your schema to allowed types
for their fields named id (e.g. "ObjectType": "CustomIdType"). [object]noFutureProofEnums This option controls whether or not a
catch-all entry is added to enum type definitions values that may be added in
the future. Enabling this means you will have to update your application
whenever the GraphQL server schema adds new enum values to prevent it from
breaking. [boolean][default: false]
customScalars Mappings from custom scalars in your schema to built-in
GraphQL types, for type emission purposes. [object]
eagerEsModules This option enables emitting ES modules artifacts.
[boolean][default: false]
persistConfig Relay supports two versions of the config:
Remote Persisting:
url String, URL to send a POST request to to persist. This field is
required in persistConfig [string]
params The document will be in a POST parameter text. This map can
contain additional parameters to send. [object]
concurrency The maximum number concurrent requests that will be made to
url. Use a value greater than 0. [number]
file Path for the JSON file that will contain operations map. Compiler
will write queries in the format: { "md5(queryText) => "queryText", ...}.
[string]codegenCommand Command name that for relay compiler. [string]
isDevVariableName Name of the global variable for dev mode (__DEV__).
[string]
jsModuleFormat Formatting style for generated files. commonjs or haste.
Default is commonjs. [string]
diagnosticReportConfig Options for configuring the output of compiler
diagnostics. [object]
criticalLevel The severity level of diagnostics that will cause the
compiler to error out on. ["error" | "warning" | "info"]--repersist Run the persister even if the query has not changed.--watch Run compiler in watch mode. Requires
watchman to be installed.--output Output format of the compiler. Supported options: debug |
verbose | quiet | quietWithErrors. The default value is verbose.--validate Looks for pending changes and exits with non-zero code instead of
writing to disk.GraphQL Code Generator is a tool that generates code out of your GraphQL schema and operations. It supports various languages and frameworks, providing a flexible and extensible way to generate type-safe code. Compared to relay-compiler, it offers broader support for different environments and more customization options.
Apollo Codegen is a tool for generating static types for GraphQL queries in TypeScript and Flow. It is part of the Apollo ecosystem and is designed to work seamlessly with Apollo Client. While relay-compiler is specific to the Relay framework, Apollo Codegen is tailored for use with Apollo Client, making it a better fit for projects using Apollo.
GraphQL CLI is a command-line tool that provides various utilities for working with GraphQL, including schema validation, query validation, and code generation. It is more general-purpose compared to relay-compiler and can be used with different GraphQL clients and servers.
FAQs
A compiler tool for building GraphQL-driven applications.
The npm package relay-compiler receives a total of 267,616 weekly downloads. As such, relay-compiler popularity was classified as popular.
We found that relay-compiler demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 7 open source maintainers collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Security News
Open source dashboard CNAPulse tracks CVE Numbering Authorities’ publishing activity, highlighting trends and transparency across the CVE ecosystem.

Product
Detect malware, unsafe data flows, and license issues in GitHub Actions with Socket’s new workflow scanning support.

Product
Add real-time Socket webhook events to your workflows to automatically receive pull request scan results and security alerts in real time.