Relay is a JavaScript framework for building data-driven React applications.
This report summarizes scanner evidence for facebook/relay, a Rust project with 18,969 GitHub stars. SynthScan examined 614,252 lines of code across 2772 source files, recording 687 pattern matches distributed across 11 syntactic categories. The legacy adjusted pattern signal is 1.5 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 603 finding(s).
Are imports declared and package/API names verified? 42 finding(s).
Are wrappers, guards, and repeated structures necessary? 270 finding(s).
Which changes need focused human review? 687 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 687 distinct pattern matches across 11 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/dev-compiler.sh | 1 | #!/usr/bin/env bash | COMMENT |
| LOW | packages/relay-runtime/util/RelayFeatureFlags.js | 61 | ENABLE_READ_TIME_RESOLVER_STORAGE_KEY_PREFIX: boolean, | COMMENT |
| LOW | packages/relay-runtime/util/RelayFeatureFlags.js | 81 | COMMENT | |
| LOW | packages/relay-runtime/util/RelayFeatureFlags.js | 101 | // outer @catch(to: RESULT) to report {ok: false}, even though the inner | COMMENT |
| LOW | …relay-runtime/store/RelayModernFragmentSpecResolver.js | 261 | if (this._isMissingData === true) { | COMMENT |
| LOW | …relay-runtime/store/RelayModernFragmentSpecResolver.js | 341 | setVariables(variables: Variables, request: ConcreteRequest): void { | COMMENT |
| LOW | packages/relay-runtime/store/RelayPublishQueue.js | 101 | // True if data was published without notifying, so the next `run()` must not | COMMENT |
| LOW | packages/relay-runtime/store/RelayStoreSubscriptions.js | 81 | COMMENT | |
| LOW | packages/relay-runtime/store/NormalizationEngine.js | 721 | parentOrigin, | COMMENT |
| LOW | packages/relay-runtime/store/OperationExecutor.js | 561 | // Both reads are confined to this method on purpose. Detecting the | COMMENT |
| LOW | packages/relay-runtime/store/OperationExecutor.js | 701 | this._updater, | COMMENT |
| LOW | packages/relay-runtime/store/RelayModernStore.js | 1061 | COMMENT | |
| LOW | packages/relay-runtime/store/RelayReader.js | 821 | COMMENT | |
| LOW | packages/relay-runtime/store/RelayReader.js | 2141 | const {abstractKey} = node; | COMMENT |
| LOW | packages/relay-runtime/store/RelayReader.js | 3261 | // * `OutputType`/`WeakModel`: LiveResolverCache normalized the resolver | COMMENT |
| LOW | packages/relay-runtime/store/RelayReader.js | 3681 | COMMENT | |
| LOW | …elay-runtime/store/live-resolvers/LiveResolverCache.js | 861 | // For weak models we have a simpler case. We simply need to update a | COMMENT |
| LOW | …tests__/RelayReader-ShadowResolverStrongPlural-test.js | 61 | function titleOf(item: unknown): unknown { | COMMENT |
| LOW | …tests__/RelayReader-ShadowResolverClientObject-test.js | 61 | // resolver compiles to a plain singular `ClientEdgeToClientObject` whose | COMMENT |
| LOW | …tests__/RelayReader-ShadowResolverClientObject-test.js | 261 | expect(getCombinedPageTitle(data)).toEqual('Client Page Title'); | COMMENT |
| LOW | …tests__/RelayReader-ShadowResolverClientObject-test.js | 381 | // No `serverObjectOperations`, present record -> null traversal segment, so | COMMENT |
| LOW | …RelayReader-ShadowResolverMixedInterfaceInline-test.js | 61 | describe('RelayReader shadow resolver mixed weak+value interface (read-in-place dispatch)', () => { | COMMENT |
| LOW | …s/relay-runtime/store/__tests__/readInlineData-test.js | 321 | COMMENT | |
| LOW | …ay-runtime/store/__tests__/NormalizationEngine-test.js | 161 | }); | COMMENT |
| LOW | …eferenceMarker-ShadowResolverServerValueInline-test.js | 21 | import RelayRecordSource from '../RelayRecordSource'; | COMMENT |
| LOW | …tore/__tests__/RelayModernEnvironment-NoInline-test.js | 61 | loadFragment: (operationReference: unknown) => ?NormalizationRootNode, | COMMENT |
| LOW | …__/RelayReader-ShadowResolverServerValueInline-test.js | 61 | // (`PageStats`) compiles to a singular `ClientEdgeToClientObject` whose backing | COMMENT |
| LOW | …y-runtime/store/__tests__/resolvers/ResolverGC-test.js | 981 | recordIdsInStore: Array<DataID>, | COMMENT |
| LOW | …ct-relay/relay-hooks/useRefetchableFragmentInternal.js | 221 | // If refetch was called, we expect to have a refetchQuery and queryRef | COMMENT |
| LOW | …es/react-relay/relay-hooks/useIsOperationNodeActive.js | 21 | getSelector, | COMMENT |
| LOW | …react-relay/relay-hooks/useQueryLoader_EXPERIMENTAL.js | 201 | // query references in undisposedQueryReferences and dispose all of | COMMENT |
| LOW | packages/react-relay/relay-hooks/useQueryLoader.js | 241 | // Attempt to detect if the component was | COMMENT |
| LOW | packages/react-relay/relay-hooks/useQueryLoader.js | 281 | // - We are relying on the fact that sets iterate in insertion order, and we | COMMENT |
| LOW | packages/react-relay/relay-hooks/useEntryPointLoader.js | 161 | // hidden (by Offscreen API), or fast refresh occurred; | COMMENT |
| LOW | …-relay/relay-hooks/useFragmentInternal_EXPERIMENTAL.js | 701 | // need to re-render), but did affect the seen records. So if there were missed updates | COMMENT |
| LOW | packages/react-relay/relay-hooks/loadQuery.js | 101 | // This will ensure that every query reference that is created and | COMMENT |
| LOW | packages/react-relay/relay-hooks/loadQuery.js | 161 | parentOperation: ?OperationDescriptor, | COMMENT |
| LOW | packages/react-relay/relay-hooks/loadQuery.js | 241 | // so we set this to true before deduping, to guarantee that the `source` | COMMENT |
| LOW | …_flowtests__/useBlockingPaginationFragment-flowtest.js | 81 | // $FlowFixMe[react-rule-hook] | COMMENT |
| LOW | …s/__tests__/useFragment-WithDeferAndLiveUpdate-test.js | 61 | const DEFER_LABEL = | COMMENT |
| LOW | .vscode/settings.json | 21 | // compiler first. | COMMENT |
| LOW | compiler/crates/relay-schema/src/definitions.rs | 41 | .named(*RELAY_RESOLVER_WEAK_OBJECT_DIRECTIVE)?; | COMMENT |
| LOW | compiler/crates/relay-schema/src/definitions.rs | 81 | .iter() | COMMENT |
| LOW | compiler/crates/relay-schema/src/definitions.rs | 161 | let member = Type::Object(*object_id); | COMMENT |
| LOW | compiler/crates/graphql-ir/src/build.rs | 101 | /// The semantic of defining variables on a fragment definition. | COMMENT |
| LOW | …er/crates/relay-transforms/src/refetchable_fragment.rs | 61 | COMMENT | |
| LOW | compiler/crates/relay-transforms/src/relay_resolvers.rs | 41 | pub(crate) use self::shadow_transform::selections_contain_shadow_return_marker; | COMMENT |
| LOW | compiler/crates/relay-transforms/src/relay_resolvers.rs | 61 | /// Reader/typegen pipeline: suppress the shadow transplant so it stays out of | COMMENT |
| LOW | compiler/crates/relay-transforms/src/relay_resolvers.rs | 141 | impl RelayResolverFieldMetadata { | COMMENT |
| LOW | …mpiler/crates/relay-transforms/src/inline_fragments.rs | 41 | /// Expand fragment spreads into inline fragments containing the named | COMMENT |
| LOW | …relay-transforms/src/relay_resolvers_abstract_types.rs | 441 | // could self-project a `ClientEdgeQuery` the operation pipeline suppresses). | COMMENT |
| LOW | compiler/crates/relay-transforms/src/flatten.rs | 41 | type SeenLinkedFields = DashMap<PointerAddress, TransformedValue<Arc<LinkedField>>>; | COMMENT |
| LOW | …piler/crates/relay-transforms/src/generate_typename.rs | 41 | /// Transform to add the `__typename` field to any LinkedField that both a) returns an | COMMENT |
| LOW | …s/relay-transforms/src/validate_operation_variables.rs | 21 | pub remove_unused_variables: bool, | COMMENT |
| LOW | compiler/crates/relay-transforms/src/client_edges.rs | 81 | LazyLock::new(|| ArgumentName("clientEdgeSourceDocument".intern())); | COMMENT |
| LOW | compiler/crates/relay-transforms/src/client_edges.rs | 121 | server_object_operations: Vec<ClientEdgeServerObjectOperation>, | COMMENT |
| LOW | compiler/crates/relay-transforms/src/client_edges.rs | 141 | GenerateWaterfallOperations, | COMMENT |
| LOW | compiler/crates/relay-transforms/src/client_edges.rs | 181 | } | COMMENT |
| LOW | compiler/crates/relay-transforms/src/client_edges.rs | 741 | } | COMMENT |
| LOW | compiler/crates/relay-transforms/src/client_edges.rs | 821 | let id_field_name = self.project_config.schema_config.node_interface_id_field; | COMMENT |
| 181 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …v13.0.0/guided-tour/updating-data/graphql-mutations.md | 100 | function commitFeedbackLikeMutation( | CODE |
| LOW | …v13.0.0/guided-tour/updating-data/graphql-mutations.md | 158 | function commitCommentCreateMutation( | CODE |
| LOW | …v13.0.0/guided-tour/updating-data/graphql-mutations.md | 243 | function commitFeedbackLikeMutation( | CODE |
| LOW | …v13.0.0/guided-tour/updating-data/graphql-mutations.md | 295 | function commitFeedbackLikeMutation( | CODE |
| LOW | …v13.0.0/guided-tour/updating-data/graphql-mutations.md | 378 | function commitCommentCreateMutation( | CODE |
| LOW | …13.0.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v13.0.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v14.0.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v14.0.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v14.0.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v14.0.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| LOW | …ating-data/imperatively-modifying-store-data-legacy.md | 68 | function commitCommentCreateMutation( | CODE |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 86 | function commitCreateFeedbackMutation( | CODE |
| LOW | …14.0.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v14.0.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v15.0.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v15.0.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v15.0.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v15.0.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| LOW | …ating-data/imperatively-modifying-store-data-legacy.md | 68 | function commitCommentCreateMutation( | CODE |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 86 | function commitCreateFeedbackMutation( | CODE |
| LOW | …15.0.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v15.0.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v20.1.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v20.1.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v20.1.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v20.1.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| LOW | …ating-data/imperatively-modifying-store-data-legacy.md | 68 | function commitCommentCreateMutation( | CODE |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 86 | function commitCreateFeedbackMutation( | CODE |
| LOW | …20.1.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v20.1.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v17.0.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v17.0.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v17.0.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v17.0.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| LOW | …ating-data/imperatively-modifying-store-data-legacy.md | 68 | function commitCommentCreateMutation( | CODE |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 86 | function commitCreateFeedbackMutation( | CODE |
| LOW | …17.0.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v17.0.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v16.0.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v16.0.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v16.0.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v16.0.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| LOW | …ating-data/imperatively-modifying-store-data-legacy.md | 68 | function commitCommentCreateMutation( | CODE |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 86 | function commitCreateFeedbackMutation( | CODE |
| LOW | …16.0.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v16.0.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …/version-experimental/RelayHooks-AGuidedTourOfRelay.md | 2897 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v18.0.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v18.0.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v18.0.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v18.0.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| LOW | …ating-data/imperatively-modifying-store-data-legacy.md | 68 | function commitCommentCreateMutation( | CODE |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 86 | function commitCreateFeedbackMutation( | CODE |
| LOW | …18.0.0/guided-tour/updating-data/local-data-updates.md | 28 | function commitCommentCreateLocally( | CODE |
| LOW | …n-v18.0.0/guided-tour/list-data/advanced-pagination.md | 35 | function CombinedFriendsListComponent(props: Props) { | CODE |
| LOW | …e/versioned_docs/version-v19.0.0/tutorial/queries-2.md | 167 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v19.0.0/tutorial/queries-2.md | 262 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …e/versioned_docs/version-v19.0.0/tutorial/queries-2.md | 284 | export default function PosterDetailsHovercardContents({ | CODE |
| LOW | …cs/version-v19.0.0/tutorial/interfaces-polymorphism.md | 123 | function PosterDetailsHovercardContentsBody({ poster }: Props): React.ReactElement { | CODE |
| 168 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/version-v13.0.0/getting-started/step-by-step-guide.md | 16 | ## Step 1: Create React App | COMMENT |
| LOW | …/version-v13.0.0/getting-started/step-by-step-guide.md | 42 | ## Step 2: Fetch GraphQL (without Relay) | COMMENT |
| LOW | …/version-v13.0.0/getting-started/step-by-step-guide.md | 146 | ## Step 3: When To Use Relay | COMMENT |
| LOW | …/version-v13.0.0/getting-started/step-by-step-guide.md | 151 | ## Step 4: Adding Relay To Our Project | COMMENT |
| LOW | …/version-v13.0.0/getting-started/step-by-step-guide.md | 232 | ## Step 5: Fetching a Query With Relay | COMMENT |
| LOW | …/version-v13.0.0/getting-started/step-by-step-guide.md | 304 | ## Step 6: Explore! | COMMENT |
| LOW | …e/versioned_docs/version-v14.0.0/tutorial/queries-2.md | 301 | ### Step 2: export the query for access from the parent component | COMMENT |
| LOW | …e/versioned_docs/version-v14.0.0/tutorial/queries-2.md | 309 | ### Step 3: Call useQueryLoader in the parent component | COMMENT |
| LOW | …e/versioned_docs/version-v14.0.0/tutorial/queries-2.md | 342 | ### Step 4: Fetch the query in the event handler | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 96 | # Step 1: in the mutation response, spread an updatable fragment (defined below). | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 106 | // Step 2: define an updater | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 108 | // Step 3: Access and nullcheck the feedback object. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 115 | // Step 3: call store.readUpdatableFragment | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 117 | // Step 4: Pass it a fragment literal, where the fragment contains the @updatable directive. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 125 | // Step 5: Pass the fragment reference. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 129 | // Step 6: Mutate the updatableData object! | COMMENT |
| LOW | …/version-v14.0.0/getting-started/step-by-step-guide.md | 16 | ## Step 1: Create React App | COMMENT |
| LOW | …/version-v14.0.0/getting-started/step-by-step-guide.md | 42 | ## Step 2: Fetch GraphQL (without Relay) | COMMENT |
| LOW | …/version-v14.0.0/getting-started/step-by-step-guide.md | 146 | ## Step 3: When To Use Relay | COMMENT |
| LOW | …/version-v14.0.0/getting-started/step-by-step-guide.md | 151 | ## Step 4: Adding Relay To Our Project | COMMENT |
| LOW | …/version-v14.0.0/getting-started/step-by-step-guide.md | 233 | ## Step 5: Fetching a Query With Relay | COMMENT |
| LOW | …/version-v14.0.0/getting-started/step-by-step-guide.md | 305 | ## Step 6: Explore! | COMMENT |
| LOW | …e/versioned_docs/version-v15.0.0/tutorial/queries-2.md | 301 | ### Step 2: export the query for access from the parent component | COMMENT |
| LOW | …e/versioned_docs/version-v15.0.0/tutorial/queries-2.md | 309 | ### Step 3: Call useQueryLoader in the parent component | COMMENT |
| LOW | …e/versioned_docs/version-v15.0.0/tutorial/queries-2.md | 342 | ### Step 4: Fetch the query in the event handler | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 96 | # Step 1: in the mutation response, spread an updatable fragment (defined below). | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 106 | // Step 2: define an updater | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 108 | // Step 3: Access and nullcheck the feedback object. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 115 | // Step 3: call store.readUpdatableFragment | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 117 | // Step 4: Pass it a fragment literal, where the fragment contains the @updatable directive. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 125 | // Step 5: Pass the fragment reference. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 129 | // Step 6: Mutate the updatableData object! | COMMENT |
| LOW | …/version-v15.0.0/getting-started/step-by-step-guide.md | 16 | ## Step 1: Create React App | COMMENT |
| LOW | …/version-v15.0.0/getting-started/step-by-step-guide.md | 42 | ## Step 2: Fetch GraphQL (without Relay) | COMMENT |
| LOW | …/version-v15.0.0/getting-started/step-by-step-guide.md | 146 | ## Step 3: When To Use Relay | COMMENT |
| LOW | …/version-v15.0.0/getting-started/step-by-step-guide.md | 151 | ## Step 4: Adding Relay To Our Project | COMMENT |
| LOW | …/version-v15.0.0/getting-started/step-by-step-guide.md | 233 | ## Step 5: Fetching a Query With Relay | COMMENT |
| LOW | …/version-v15.0.0/getting-started/step-by-step-guide.md | 305 | ## Step 6: Explore! | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 96 | # Step 1: in the mutation response, spread an updatable fragment (defined below). | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 106 | // Step 2: define an updater | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 108 | // Step 3: Access and nullcheck the feedback object. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 115 | // Step 3: call store.readUpdatableFragment | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 117 | // Step 4: Pass it a fragment literal, where the fragment contains the @updatable directive. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 125 | // Step 5: Pass the fragment reference. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 129 | // Step 6: Mutate the updatableData object! | COMMENT |
| LOW | …e/versioned_docs/version-v17.0.0/tutorial/queries-2.md | 301 | ### Step 2: export the query for access from the parent component | COMMENT |
| LOW | …e/versioned_docs/version-v17.0.0/tutorial/queries-2.md | 309 | ### Step 3: Call useQueryLoader in the parent component | COMMENT |
| LOW | …e/versioned_docs/version-v17.0.0/tutorial/queries-2.md | 342 | ### Step 4: Fetch the query in the event handler | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 96 | # Step 1: in the mutation response, spread an updatable fragment (defined below). | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 106 | // Step 2: define an updater | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 108 | // Step 3: Access and nullcheck the feedback object. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 115 | // Step 3: call store.readUpdatableFragment | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 117 | // Step 4: Pass it a fragment literal, where the fragment contains the @updatable directive. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 125 | // Step 5: Pass the fragment reference. | COMMENT |
| LOW⚡ | …our/updating-data/imperatively-modifying-store-data.md | 129 | // Step 6: Mutate the updatableData object! | COMMENT |
| LOW | …/version-v17.0.0/getting-started/step-by-step-guide.md | 16 | ## Step 1: Create React App | COMMENT |
| LOW | …/version-v17.0.0/getting-started/step-by-step-guide.md | 42 | ## Step 2: Fetch GraphQL (without Relay) | COMMENT |
| LOW | …/version-v17.0.0/getting-started/step-by-step-guide.md | 146 | ## Step 3: When To Use Relay | COMMENT |
| LOW | …/version-v17.0.0/getting-started/step-by-step-guide.md | 151 | ## Step 4: Adding Relay To Our Project | COMMENT |
| LOW | …/version-v17.0.0/getting-started/step-by-step-guide.md | 233 | ## Step 5: Fetching a Query With Relay | COMMENT |
| 57 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 886 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 888 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 914 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 916 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 928 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 930 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 988 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 990 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1050 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1052 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1158 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1160 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1183 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1185 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1240 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1242 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1266 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1268 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1298 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1300 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1322 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1324 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1376 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1378 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1471 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1473 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1504 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1506 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1532 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1534 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1573 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1575 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1647 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1649 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1732 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1734 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1871 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …mpiler/crates/schema-set/src/find_subset_violations.rs | 1873 | // ─────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | compiler/crates/schema-coordinates/src/lib.rs | 387 | // ── parse_schema_coordinate (strict) ──────────────────────────── | COMMENT |
| MEDIUM | compiler/crates/schema-coordinates/src/lib.rs | 568 | // ── parse_schema_coordinate_best_effort ───────────────────────── | COMMENT |
| MEDIUM | compiler/crates/schema-coordinates/src/lib.rs | 739 | // ── Display ───────────────────────────────────────────────────── | COMMENT |
| MEDIUM | compiler/crates/schema-coordinates/src/lib.rs | 817 | // ── Ord ─────────────────────────────────────────────────────────── | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ocs/version-v13.0.0/guides/testing-relay-components.md | 96 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v14.0.0/guides/testing-relay-components.md | 96 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v15.0.0/guides/testing-relay-components.md | 96 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v20.1.0/guides/testing-relay-components.md | 104 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v17.0.0/guides/testing-relay-components.md | 104 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v16.0.0/guides/testing-relay-components.md | 96 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v18.0.0/guides/testing-relay-components.md | 104 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v19.0.0/guides/testing-relay-components.md | 104 | return "Lorem Ipsum" | CODE |
| LOW | …ocs/version-v20.0.0/guides/testing-relay-components.md | 104 | return "Lorem Ipsum" | CODE |
| LOW | packages/relay-runtime/store/OperationExecutor.js | 106 | readonly kind: 'placeholder', | CODE |
| LOW | packages/relay-runtime/store/OperationExecutor.js | 1289 | resultForLabel.set(pathKey, {kind: 'placeholder', placeholder}); | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1035 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1044 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1053 | exclamation: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1189 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1195 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1201 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1209 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1245 | token: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1250 | at: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1258 | colon: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1260 | token: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1269 | colon: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1271 | token: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1380 | colon: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1382 | token: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1391 | token: dummy_token(Span::empty()), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1400 | token: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1409 | token: dummy_token(span), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1416 | token: dummy_token(value.location.span()), | CODE |
| LOW⚡ | compiler/crates/relay-docblock/src/ir.rs | 1421 | fn dummy_token(span: Span) -> Token { | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 409 | at: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 485 | at: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 813 | equals: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 1081 | at: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 1367 | colon: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 1369 | token: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 1468 | at: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 1486 | exclamation: dummy_token(span), | CODE |
| LOW | compiler/crates/relay-docblock/src/ir.rs | 1500 | at: dummy_token(span), | CODE |
| LOW | compiler/crates/schema-set/src/ir_collector.rs | 349 | // we might insert __typename as a "placeholder" field. So we should not explicitly add all impls when encounter | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | …versioned_docs/version-v13.0.0/guides/type-emission.md | 273 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v14.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v15.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v20.1.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v17.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v16.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v18.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v19.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| HIGH | …versioned_docs/version-v20.0.0/guides/type-emission.md | 268 | Consider a component that [composes](../../guided-tour/rendering/fragments/#composing-fragments) the above fragment comp | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| CRITICAL | …docs/version-classic/Classic-APIReference-Container.md | 375 | {this.props.viewer.feed.edges.map( | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | compiler/crates/graphql-syntax/src/node/type_system.rs | 287 | /// to type method usages that utilize this trait and call into_definition(). | COMMENT |
| MEDIUM | compiler/crates/schema-set/src/set_merges.rs | 511 | // The lowest-common-denominator of a nullable and nonnull output is a nullable output, as the consumer must be | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | compiler/crates/schema/src/in_memory.rs | 808 | // Step 1: build the type_map from type names to type keys | COMMENT |
| LOW | compiler/crates/schema/src/in_memory.rs | 899 | // Step 2: define operation types, directives, and types | COMMENT |
| LOW | compiler/crates/relay-lsp/src/goto_definition.rs | 311 | // Step 1: does extra_data_provider know anything about this field? | COMMENT |
| LOW | compiler/crates/relay-lsp/src/goto_definition.rs | 329 | // Step 2: is field a standalone graphql file? | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …ay/relay-hooks/legacy/useBlockingPaginationFragment.js | 193 | // TODO: Handle error; we probably don't want to throw an error | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | scripts/release-notes.js | 83 | function getData() { | CODE |