GitShow/facebook/relay
facebook

relay

Relay is a JavaScript framework for building data-driven React applications.

by facebook
Star on GitHubForkWebsite

Rust

18.9k stars1.9k forks1.0k contributorsActive · 13h agoSince 2015v21.0.1MIT

Meet the team

See all 1044 on GitHub →
kassens
kassens1.7k contributions
alunyov
alunyov993 contributions
captbaritone
captbaritone876 contributions
tyao1
tyao1732 contributions
josephsavona
josephsavona556 contributions
rbalicki2
rbalicki2446 contributions
yungsters
yungsters261 contributions
wincent
wincent254 contributions

Languages

View on GitHub →
Rust52.3%
JavaScript31.4%
MDX14.8%
HTML0.8%
CSS0.4%
TypeScript0.3%

Commit activity

Last 12 weeks · 304 commits

Full graph →

Community health

5 of 6 standards met

Community profile →
75
✓README✓License✓Contributing✓Code of Conduct✓Issue Template○PR Template

Recent PRs & issues

Active · Last activity 13h ago
See all on GitHub →
christiansany
Fix nested `@catch`: stop inner-handled errors from propagatingOpenPR

Fixes #5339 The bug When directives are nested, a field error handled by the inner is also counted by the outer , so the outer boundary fires even though, from its perspective, the inner field resolved successfully. : the outer field becomes instead of . : the whole outer object is nulled instead of just the inner field. It compiles fine and fails silently at runtime. Full write-up and a runnable reproduction are in the linked issue (repro: https://github.com/christiansany/relay-playground/pull/1). The fix In , whether a boundary "saw" an error was based on being non-empty — but that list also contains errors already marked by an inner (they flow through only for logging). The fix excludes already-handled errors when deciding an outer boundary's outcome: now builds its result from the unhandled errors only ( when none remain). The path nulls the field only when there is an unhandled error (). An inner consumes its error and the outer boundary no longer reacts to it. Errors that are genuinely unhandled at a given level still propagate exactly as before. Tests Added regression tests in covering both targets with a server error on the inner field: nested → outer is (inner catches, outer succeeds). nested → (only the inner field nulled). In both cases the error is still surfaced once in with . Testing New tests pass; existing tests remain green. Runtime-only change in (10 lines); no API or compiler changes.

christiansany · 2d ago

Recent fixes

View closed PRs →
durvesh1992
fix: correct duplicated-word typos in comments and docsMergedPR

Summary Fixes a batch of duplicated-word typos in code comments and documentation. These are all self-evident repeated-word mistakes (e.g. "the the", "to to", "is is", "are are", "a a") that hurt readability. No behavior changes — comments, docblocks, and Markdown/MDX docs only. Changes Notes Only the canonical sources were edited; frozen snapshots were intentionally left untouched. Verified that grammatically-correct sequences (e.g. "indicates ... that that ID is stable") were not changed.

durvesh1992 · 1d ago
christiansany
Fix and add missing TypeScript declarations for react-relay & ..MergedPR

First off — thank you! We've been building on Relay for nearly three years and it's been fantastic. We're especially happy that the TypeScript types are now maintained directly in this repo: it's what makes contributions like this one straightforward, and we're glad to be able to give a little back to the core team and the community. 🙏 / are written in Flow but ship hand-written files for TypeScript consumers. Since nothing generates them from the Flow source, they can drift. This PR fixes three such drifts (declarations only — no Flow/runtime changes). The motivating one for us was #3: a real type bug, not just a gap. Mutations using at the root level are correctly typed in Flow but were falsely rejected by the TypeScript types, which we've had to work around by overriding Relay's types in our own codebase. Fixing it at the source removes that workaround for everyone. The two missing declarations (#1) we hit along the way. 1. Add two hooks that had no TypeScript types and are exported from but had no , making them invisible to TypeScript. Added declarations for both and re-exported them from . Both are constrained on (matching the Flow sources, which don't constrain the response, and consistent with the other modern hooks). 2. Add the missing prop to The Flow component accepts this optional prop but the omitted it, so passing it was a type error. 3. Fix so mutations type-check The Flow type uses ("any object") for //, but the translated it as , which requires an index signature. Responses that lack one — notably the unions from mutations, and interface-typed responses — are valid in Flow but were rejected by TypeScript, forcing consumers to override Relay's types locally. Fixed by translating faithfully as : This only widens a constraint, so it's backward compatible — nothing that compiled before breaks. Fixing it at the source corrects the whole mutation surface at once (, , , , …), so itself needs no special-casing. Testing Verified via linking the files directly in our monorepo and removing our local shims / ts overwrites that we currently have to have.

christiansany · 1d ago
captbaritone
Fix Windows CI: allow backslash path separator in disallowed-chars checkMergedPR

Summary The function hardcoded as the only allowed path separator, but on Windows operations produce separators This caused to be flagged as a disallowed character, making all sharded extra-artifact paths fall back to the flat layout on Windows Replace the literal with which handles both (all platforms) and (Windows) Fixes the CI failures: Test plan [x] All 6 tests pass locally on macOS [ ] Windows CI should now pass (the two previously failing tests should produce correct sharded paths instead of falling back to flat layout)

captbaritone · 2d ago
Structured data for AI agents

Repository: facebook/relay. Description: Relay is a JavaScript framework for building data-driven React applications. Stars: 18946, Forks: 1891. Primary language: Rust. Languages: Rust (52.3%), JavaScript (31.4%), MDX (14.8%), HTML (0.8%), CSS (0.4%). License: MIT. Homepage: https://relay.dev Latest release: v21.0.1 (1mo ago). Open PRs: 100, open issues: 753. Last activity: 13h ago. Community health: 75%. Top contributors: kassens, alunyov, captbaritone, tyao1, josephsavona, rbalicki2, yungsters, wincent, leebyron, SamChou19815 and others.

·@ofershap

Replace github.com with gitshow.dev