{"id":26186,"library":"relay-compiler-language-scalajs","title":"relay-compiler-language-scalajs","description":"A Relay compiler language plugin that generates Scala.js bindings (js.native traits) instead of Flow types for GraphQL-driven Scala.js applications. Compatible with Relay 11.0.2, graphql ^15.4.0, and relay-runtime ^11.0.2. The plugin outputs compiled queries as Scala.js native traits, supports custom output via @scalajs directives (extends, useNulls), and uses artifactDirectory for flat package generation. Release cadence is irregular with minor version bumps for dependency updates. Differentiator: enables Relay for Scala.js/React.js integration, not maintained by the core Relay team.","status":"active","version":"0.41.0","language":"javascript","source_language":"en","source_url":"https://github.com/dispalt/relay-modern-helper","tags":["javascript"],"install":[{"cmd":"npm install relay-compiler-language-scalajs","lang":"bash","label":"npm"},{"cmd":"yarn add relay-compiler-language-scalajs","lang":"bash","label":"yarn"},{"cmd":"pnpm add relay-compiler-language-scalajs","lang":"bash","label":"pnpm"}],"dependencies":[{"reason":"Peer dependency for GraphQL schema parsing","package":"graphql","optional":false},{"reason":"Peer dependency; version 11.0.2 required","package":"relay-compiler","optional":false},{"reason":"Peer dependency for Relay runtime types","package":"relay-runtime","optional":false}],"imports":[{"note":"This is a compiler language plugin; no JavaScript import. Configure via relay-compiler --language scalajs.","wrong":"No direct JS import; used via CLI","symbol":"relay-compiler","correct":"import 'relay-compiler' (see docs)"},{"note":"Use as @scalajs(extends: String) or @scalajs(useNulls: Boolean) on GraphQL fragments/fields.","wrong":"Not a JavaScript import","symbol":"@scalajs","correct":"Used as GraphQL directive in .graphql files"},{"note":"Required at runtime for Relay queries; version ^11.0.2.","wrong":"Missing peer dep","symbol":"relay-runtime","correct":"npm install relay-runtime"}],"quickstart":{"code":"// 1. Install dependencies\nnpm install --save-dev relay-compiler@11.0.2 relay-compiler-language-scalajs graphql@^15.4.0\nnpm install relay-runtime@^11.0.2\n\n// 2. Run relay-compiler with scalajs language\n// ./node_modules/.bin/relay-compiler --language scalajs --src ./src --schema ./schema.graphql --artifactDirectory ./src/__generated__\n\n// 3. Generated Scala.js file (example: src/__generated__/MyFragment.scala)\n@js.native\ntrait MyFragment_data extends js.Object {\n  val id: String = js.native\n  val name: String | Null = js.native\n}","lang":"typescript","description":"Installs required packages and shows relay-compiler invocation to generate Scala.js bindings."},"warnings":[{"fix":"Ensure relay-compiler version is pinned to 11.0.2.","message":"Requires exact Relay version 11.0.2; other versions may break.","severity":"gotcha","affected_versions":">=0.32.0"},{"fix":"Configure artifactDirectory to a dedicated output directory, not mixed with sources.","message":"Uses artifactDirectory flat layout; all generated files in one directory.","severity":"gotcha","affected_versions":">=0.32.0"},{"fix":"Ensure the extended class exists in Scala.js scope.","message":"The @scalajs(extends) directive requires manual verification of parent class.","severity":"deprecated","affected_versions":">=0.32.0"},{"fix":"Use GraphQL 15.4.x or compatible.","message":"graphql peer dependency must be ^15.4.0, not newer GraphQL versions.","severity":"gotcha","affected_versions":">=0.32.0"}],"env_vars":null,"last_verified":"2026-05-01T00:00:00.000Z","next_check":"2026-07-30T00:00:00.000Z","problems":[{"fix":"Run: npm install --save-dev relay-compiler-language-scalajs","cause":"Missing npm install of the package","error":"Error: Cannot find module 'relay-compiler-language-scalajs'"},{"fix":"Ensure relay-compiler@11.0.2 is installed and package is in node_modules.","cause":"relay-compiler version mismatch or missing plugin","error":"Error: The language 'scalajs' is not supported."},{"fix":"Provide valid .graphql schema path via --schema.","cause":"Invalid or missing GraphQL schema file","error":"Error: No schema found at --schema path"},{"fix":"Only use @scalajs on fragments, fields, or inline fragments.","cause":"Using @scalajs on unsupported GraphQL elements","error":"Error: Could not parse GraphQL file: unexpected directive"}],"ecosystem":"npm","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}