diff --git a/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap b/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap index c1ac39f03c459..d01635e3d4c84 100644 --- a/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap +++ b/packages/relay-compiler/codegen/__tests__/__snapshots__/compileRelayArtifacts-test.js.snap @@ -9351,7 +9351,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "StreamedActorsLabel") { + actors @stream(initialCount: 1, label: "StreamedActorsLabel") { name } } @@ -9493,7 +9493,7 @@ query QueryWithFragmentWithStream( fragment FeedbackFragment on Feedback { id - actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", initial_count: 1) { + actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", initialCount: 1) { __typename name id @@ -18291,7 +18291,7 @@ fragment PaginationFragment on Node ... on User { name friends(after: $cursor, first: $count) - @stream_connection(key: "PaginationFragment_friends", initial_count: 1) { + @stream_connection(key: "PaginationFragment_friends", initialCount: 1) { edges { node { id @@ -18546,7 +18546,7 @@ fragment PaginationFragment_1G22uz on Node { ... on User { name friends(after: $cursor, first: $count) { - edges @stream(label: "PaginationFragment$stream$PaginationFragment_friends", initial_count: 1) { + edges @stream(label: "PaginationFragment$stream$PaginationFragment_friends", initialCount: 1) { node { id __typename @@ -18722,7 +18722,7 @@ fragment PaginationFragment on Node if: {type: "Boolean", defaultValue: false} count: {type: "Int", defaultValue: 10} cursor: {type: "ID"} - initial_count: {type: "Int", defaultValue: 5} + initialCount: {type: "Int", defaultValue: 5} ) { id ... on User { @@ -18731,7 +18731,7 @@ fragment PaginationFragment on Node @stream_connection( if: $if key: "PaginationFragment_friends" - initial_count: $initial_count + initialCount: $initialCount ) { edges { node { @@ -18958,7 +18958,7 @@ Fragment { }, LocalArgument { defaultValue: 5, - name: "initial_count", + name: "initialCount", }, ], metadata: { @@ -19090,7 +19090,7 @@ fragment PaginationFragment on Node @argumentDefinitions( count: {type: "Int", defaultValue: 10} cursor: {type: "ID"} - initial_count: {type: "Int", defaultValue: 5} + initialCount: {type: "Int", defaultValue: 5} ) { id ... on User { @@ -19098,7 +19098,7 @@ fragment PaginationFragment on Node friends(after: $cursor, first: $count) @stream_connection( key: "PaginationFragment_friends" - initial_count: $initial_count + initialCount: $initialCount ) { edges { node { @@ -19307,7 +19307,7 @@ fragment PaginationFragment on Node { ... on User { name friends(first: 10) { - edges @stream(label: "PaginationFragment$stream$PaginationFragment_friends", initial_count: 5) { + edges @stream(label: "PaginationFragment$stream$PaginationFragment_friends", initialCount: 5) { node { id __typename @@ -19337,7 +19337,7 @@ Fragment { }, LocalArgument { defaultValue: 5, - name: "initial_count", + name: "initialCount", }, ], metadata: { @@ -20534,7 +20534,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { @@ -20868,7 +20868,7 @@ query NodeQuery( id ... on Story { comments(first: 10) { - edges @stream(label: "NodeQuery$stream$NodeQuery_comments", initial_count: 0) { + edges @stream(label: "NodeQuery$stream$NodeQuery_comments", initialCount: 0) { node { actor { __typename diff --git a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/fragment-with-stream.graphql b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/fragment-with-stream.graphql index 8891fba1b9c8d..ceb87c5700edc 100644 --- a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/fragment-with-stream.graphql +++ b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/fragment-with-stream.graphql @@ -7,7 +7,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "StreamedActorsLabel") { + actors @stream(initialCount: 1, label: "StreamedActorsLabel") { name } } diff --git a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-connection-with-stream.graphql b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-connection-with-stream.graphql index e6fc5872ef07d..a4cf016c7d77a 100644 --- a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-connection-with-stream.graphql +++ b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-connection-with-stream.graphql @@ -8,7 +8,7 @@ fragment PaginationFragment on Node ... on User { name friends(after: $cursor, first: $count) - @stream_connection(key: "PaginationFragment_friends", initial_count: 1) { + @stream_connection(key: "PaginationFragment_friends", initialCount: 1) { edges { node { id diff --git a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-if.graphql b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-if.graphql index f2295cc2109df..da34bce8a9b5a 100644 --- a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-if.graphql +++ b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-if.graphql @@ -9,7 +9,7 @@ fragment PaginationFragment on Node if: {type: "Boolean", defaultValue: false} count: {type: "Int", defaultValue: 10} cursor: {type: "ID"} - initial_count: {type: "Int", defaultValue: 5} + initialCount: {type: "Int", defaultValue: 5} ) { id ... on User { @@ -18,7 +18,7 @@ fragment PaginationFragment on Node @stream_connection( if: $if key: "PaginationFragment_friends" - initial_count: $initial_count + initialCount: $initialCount ) { edges { node { diff --git a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-initial-count.graphql b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-initial-count.graphql index 126acc3341f04..7204d74aa4717 100644 --- a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-initial-count.graphql +++ b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/refetchable-fragment-with-stream-with-local-initial-count.graphql @@ -8,7 +8,7 @@ fragment PaginationFragment on Node @argumentDefinitions( count: {type: "Int", defaultValue: 10} cursor: {type: "ID"} - initial_count: {type: "Int", defaultValue: 5} + initialCount: {type: "Int", defaultValue: 5} ) { id ... on User { @@ -16,7 +16,7 @@ fragment PaginationFragment on Node friends(after: $cursor, first: $count) @stream_connection( key: "PaginationFragment_friends" - initial_count: $initial_count + initialCount: $initialCount ) { edges { node { diff --git a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/stream-connection.graphql b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/stream-connection.graphql index e688708be3259..14406dcf91753 100644 --- a/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/stream-connection.graphql +++ b/packages/relay-compiler/codegen/__tests__/fixtures/compileRelayArtifacts/stream-connection.graphql @@ -3,7 +3,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/core/IRPrinter.js b/packages/relay-compiler/core/IRPrinter.js index 3ec12ad9049ed..1f6e79939aa0f 100644 --- a/packages/relay-compiler/core/IRPrinter.js +++ b/packages/relay-compiler/core/IRPrinter.js @@ -15,6 +15,7 @@ const invariant = require('invariant'); const {DEFAULT_HANDLE_KEY} = require('../util/DefaultHandleKey'); +const {DeferStreamInterface} = require('relay-runtime'); import type {CompilerContextDocument} from './CompilerContext'; import type { @@ -130,6 +131,12 @@ function printSelection( let str; const parentDirectives = options?.parentDirectives ?? ''; const isClientExtension = options?.isClientExtension === true; + const { + INITIAL_COUNT, + LABEL, + IF, + USE_CUSTOMIZED_BATCH, + } = DeferStreamInterface.get(); if (selection.kind === 'LinkedField') { str = printField(schema, selection, {parentDirectives, isClientExtension}); str += printSelections(schema, selection, indent + INDENT, { @@ -192,19 +199,19 @@ function printSelection( str = subSelections.join('\n' + indent + INDENT); } else if (selection.kind === 'Stream') { let streamStr = parentDirectives; - streamStr += ` @stream(label: "${selection.label}"`; + streamStr += ` @stream(${LABEL}: "${selection.label}"`; if (selection.if !== null) { - streamStr += `, if: ${printValue(schema, selection.if, null) ?? ''}`; + streamStr += `, ${IF}: ${printValue(schema, selection.if, null) ?? ''}`; } if (selection.initialCount !== null) { - streamStr += `, initial_count: ${printValue( + streamStr += `, ${INITIAL_COUNT}: ${printValue( schema, selection.initialCount, null, ) ?? ''}`; } if (selection.useCustomizedBatch !== null) { - streamStr += `, use_customized_batch: ${printValue( + streamStr += `, ${USE_CUSTOMIZED_BATCH}: ${printValue( schema, selection.useCustomizedBatch, null, @@ -220,9 +227,9 @@ function printSelection( str = subSelections.join('\n' + INDENT); } else if (selection.kind === 'Defer') { let deferStr = parentDirectives; - deferStr += ` @defer(label: "${selection.label}"`; + deferStr += ` @defer(${LABEL}: "${selection.label}"`; if (selection.if !== null) { - deferStr += `, if: ${printValue(schema, selection.if, null) ?? ''}`; + deferStr += `, ${IF}: ${printValue(schema, selection.if, null) ?? ''}`; } deferStr += ')'; if ( diff --git a/packages/relay-compiler/language/javascript/__tests__/__snapshots__/RelayFlowGenerator-test.js.snap b/packages/relay-compiler/language/javascript/__tests__/__snapshots__/RelayFlowGenerator-test.js.snap index 3f2cb3eb78322..944182c213276 100644 --- a/packages/relay-compiler/language/javascript/__tests__/__snapshots__/RelayFlowGenerator-test.js.snap +++ b/packages/relay-compiler/language/javascript/__tests__/__snapshots__/RelayFlowGenerator-test.js.snap @@ -1938,7 +1938,7 @@ query TestStream @raw_response_type { friends(first: 10) @stream_connection( key: "PaginationFragment_friends" - initial_count: 1 + initialCount: 1 ) { edges { node { @@ -2002,7 +2002,7 @@ query TestDefer @raw_response_type { ... on User { name friends(first: 10) - @stream_connection(key: "TestDefer_friends", initial_count: 0) { + @stream_connection(key: "TestDefer_friends", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream-connection.graphql b/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream-connection.graphql index d318b27e3e3f0..88832391bf57e 100644 --- a/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream-connection.graphql +++ b/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream-connection.graphql @@ -3,7 +3,7 @@ query TestDefer @raw_response_type { ... on User { name friends(first: 10) - @stream_connection(key: "TestDefer_friends", initial_count: 0) { + @stream_connection(key: "TestDefer_friends", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream.graphql b/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream.graphql index 4d2caacc587ba..0f5e1b4d9b8c8 100644 --- a/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream.graphql +++ b/packages/relay-compiler/language/javascript/__tests__/fixtures/flow-generator/useHaste/query-with-stream.graphql @@ -5,7 +5,7 @@ query TestStream @raw_response_type { friends(first: 10) @stream_connection( key: "PaginationFragment_friends" - initial_count: 1 + initialCount: 1 ) { edges { node { diff --git a/packages/relay-compiler/transforms/ConnectionTransform.js b/packages/relay-compiler/transforms/ConnectionTransform.js index 3089e1d10767f..0169f3cc33002 100644 --- a/packages/relay-compiler/transforms/ConnectionTransform.js +++ b/packages/relay-compiler/transforms/ConnectionTransform.js @@ -20,7 +20,11 @@ const getLiteralArgumentValues = require('../core/getLiteralArgumentValues'); const {createCompilerError, createUserError} = require('../core/CompilerError'); const {parse} = require('graphql'); -const {ConnectionInterface, RelayFeatureFlags} = require('relay-runtime'); +const { + ConnectionInterface, + DeferStreamInterface, + RelayFeatureFlags, +} = require('relay-runtime'); import type CompilerContext from '../core/CompilerContext'; import type { @@ -109,9 +113,9 @@ const SCHEMA_EXTENSION = ` key: String! filters: [String] handler: String - initial_count: Int! + initialCount: Int! if: Boolean = true - use_customized_batch: Boolean = false + useCustomizedBatch: Boolean = false dynamicKey_UNSTABLE: String ) on FIELD `; @@ -227,6 +231,7 @@ function buildConnectionArguments( field: LinkedField, connectionDirective: Directive, ): ConnectionArguments { + const {INITIAL_COUNT, USE_CUSTOMIZED_BATCH} = DeferStreamInterface.get(); const { handler, key, @@ -294,10 +299,10 @@ function buildConnectionArguments( let stream = null; if (connectionDirective.name === STREAM_CONNECTION) { const initialCountArg = connectionDirective.args.find( - arg => arg.name === 'initial_count', + arg => arg.name === INITIAL_COUNT, ); const useCustomizedBatchArg = connectionDirective.args.find( - arg => arg.name === 'use_customized_batch', + arg => arg.name === USE_CUSTOMIZED_BATCH, ); const ifArg = connectionDirective.args.find(arg => arg.name === 'if'); stream = { diff --git a/packages/relay-compiler/transforms/DeferStreamTransform.js b/packages/relay-compiler/transforms/DeferStreamTransform.js index 7cef08d6a2e65..47dff34419eb3 100644 --- a/packages/relay-compiler/transforms/DeferStreamTransform.js +++ b/packages/relay-compiler/transforms/DeferStreamTransform.js @@ -18,6 +18,7 @@ const getIdentifierForArgumentValue = require('../core/getIdentifierForArgumentV const murmurHash = require('../util/murmurHash'); const {createUserError} = require('../core/CompilerError'); +const {DeferStreamInterface} = require('relay-runtime'); import type CompilerContext from '../core/CompilerContext'; import type { @@ -53,27 +54,28 @@ function deferStreamTransform(context: CompilerContext): CompilerContext { ScalarField: visitScalarField, }, sourceNode => { + const {LABEL} = DeferStreamInterface.get(); const labels = new Map(); return { documentName: sourceNode.name, recordLabel: (label, directive) => { const prevDirective = labels.get(label); if (prevDirective) { - const labelArg = directive.args.find(({name}) => name === 'label'); + const labelArg = directive.args.find(({name}) => name === LABEL); const prevLabelArg = prevDirective.args.find( - ({name}) => name === 'label', + ({name}) => name === LABEL, ); const previousLocation = prevLabelArg?.loc ?? prevDirective.loc; if (labelArg) { throw createUserError( `Invalid use of @${directive.name}, the provided label is ` + - "not unique. Specify a unique 'label' as a literal string.", + `not unique. Specify a unique '${LABEL}' as a literal string.`, [labelArg?.loc, previousLocation], ); } else { throw createUserError( `Invalid use of @${directive.name}, could not generate a ` + - "default label that is unique. Specify a unique 'label' " + + `default label that is unique. Specify a unique '${LABEL}' ` + 'as a literal string.', [directive.loc, previousLocation], ); @@ -90,6 +92,12 @@ function visitLinkedField( field: LinkedField, state: State, ): LinkedField | Stream { + const { + INITIAL_COUNT, + LABEL, + IF, + USE_CUSTOMIZED_BATCH, + } = DeferStreamInterface.get(); const context: CompilerContext = this.getContext(); const schema = context.getSchema(); @@ -113,25 +121,24 @@ function visitLinkedField( directive => directive.name !== 'stream', ), }; - const ifArg = streamDirective.args.find(arg => arg.name === 'if'); + const ifArg = streamDirective.args.find(arg => arg.name === IF); if (isLiteralFalse(ifArg)) { return transformedField; } const initialCount = streamDirective.args.find( - arg => arg.name === 'initial_count', + arg => arg.name === INITIAL_COUNT, ); if (initialCount == null) { throw createUserError( - "Invalid use of @stream, the 'initial_count' argument is required.", + `Invalid use of @stream, the '${INITIAL_COUNT}' argument is required.`, [streamDirective.loc], ); } const useCustomizedBatch = streamDirective.args.find( - arg => arg.name === 'use_customized_batch', + arg => arg.name === USE_CUSTOMIZED_BATCH, ); - const label = - getLiteralStringArgument(streamDirective, 'label') ?? field.alias; + const label = getLiteralStringArgument(streamDirective, LABEL) ?? field.alias; const transformedLabel = transformLabel(state.documentName, 'stream', label); state.recordLabel(transformedLabel, streamDirective); return { @@ -179,6 +186,7 @@ function visitFragmentSpread( spread: FragmentSpread, state: State, ): FragmentSpread | Defer { + const {LABEL, IF} = DeferStreamInterface.get(); let transformedSpread: FragmentSpread = this.traverse(spread, state); const deferDirective = transformedSpread.directives.find( directive => directive.name === 'defer', @@ -192,12 +200,12 @@ function visitFragmentSpread( directive => directive.name !== 'defer', ), }; - const ifArg = deferDirective.args.find(arg => arg.name === 'if'); + const ifArg = deferDirective.args.find(arg => arg.name === IF); if (isLiteralFalse(ifArg)) { return transformedSpread; } const label = - getLiteralStringArgument(deferDirective, 'label') ?? + getLiteralStringArgument(deferDirective, LABEL) ?? getFragmentSpreadName(spread); const transformedLabel = transformLabel(state.documentName, 'defer', label); state.recordLabel(transformedLabel, deferDirective); diff --git a/packages/relay-compiler/transforms/__tests__/__snapshots__/ConnectionTransform-test.js.snap b/packages/relay-compiler/transforms/__tests__/__snapshots__/ConnectionTransform-test.js.snap index e6837c8b251b4..97f88a9d8fe83 100644 --- a/packages/relay-compiler/transforms/__tests__/__snapshots__/ConnectionTransform-test.js.snap +++ b/packages/relay-compiler/transforms/__tests__/__snapshots__/ConnectionTransform-test.js.snap @@ -992,7 +992,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { @@ -1017,7 +1017,7 @@ query NodeQuery( id ... on Story { comments(first: 10) @__clientField(handle: "connection", key: "NodeQuery_comments") { - edges @stream(initial_count: 0, label: "NodeQuery_comments") { + edges @stream(initialCount: 0, label: "NodeQuery_comments") { node { actor { name @@ -1068,7 +1068,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { @@ -1093,7 +1093,7 @@ query NodeQuery( id ... on Story { comments(first: 10) @__clientField(handle: "connection", key: "NodeQuery_comments") { - edges @stream(initial_count: 0, label: "NodeQuery_comments") { + edges @stream(initialCount: 0, label: "NodeQuery_comments") { node { actor { name @@ -1145,7 +1145,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { commentEdges: edges { node { actor { @@ -1167,7 +1167,7 @@ THROWN EXCEPTION: @stream_connection does not support aliasing the 'edges' field. Source: GraphQL request (8:9) -7: @stream_connection(key: "NodeQuery_comments", initial_count: 0) { +7: @stream_connection(key: "NodeQuery_comments", initialCount: 0) { 8: commentEdges: edges { ^ 9: node { @@ -1182,7 +1182,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/transforms/__tests__/__snapshots__/DeferStreamTransform-test.js.snap b/packages/relay-compiler/transforms/__tests__/__snapshots__/DeferStreamTransform-test.js.snap index 1d8014330ae1e..0df82c978db5e 100644 --- a/packages/relay-compiler/transforms/__tests__/__snapshots__/DeferStreamTransform-test.js.snap +++ b/packages/relay-compiler/transforms/__tests__/__snapshots__/DeferStreamTransform-test.js.snap @@ -274,7 +274,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "StreamedActorsLabel") { + actors @stream(initialCount: 1, label: "StreamedActorsLabel") { name } } @@ -291,7 +291,7 @@ query QueryWithFragmentWithStream( fragment FeedbackFragment on Feedback { id - actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", initial_count: 1) { + actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", initialCount: 1) { name } } @@ -309,7 +309,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1) { + actors @stream(initialCount: 1) { name } } @@ -326,7 +326,7 @@ query QueryWithFragmentWithStream( fragment FeedbackFragment on Feedback { id - actors @stream(label: "FeedbackFragment$stream$actors", initial_count: 1) { + actors @stream(label: "FeedbackFragment$stream$actors", initialCount: 1) { name } } @@ -345,10 +345,10 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "actors") { + actors @stream(initialCount: 1, label: "actors") { name } - otherActors: actors @stream(initial_count: 1, label: "actors") { + otherActors: actors @stream(initialCount: 1, label: "actors") { # invalid: duplicate label name } @@ -359,16 +359,16 @@ THROWN EXCEPTION: Invalid use of @stream, the provided label is not unique. Specify a unique 'label' as a literal string. -Source: GraphQL request (14:49) +Source: GraphQL request (14:48) 13: } -14: otherActors: actors @stream(initial_count: 1, label: "actors") { - ^ +14: otherActors: actors @stream(initialCount: 1, label: "actors") { + ^ 15: # invalid: duplicate label -Source: GraphQL request (11:36) +Source: GraphQL request (11:35) 10: id -11: actors @stream(initial_count: 1, label: "actors") { - ^ +11: actors @stream(initialCount: 1, label: "actors") { + ^ 12: name `; @@ -385,7 +385,7 @@ query QueryWithFragmentWithStream($id: ID!, $enableStream: Boolean) { fragment FeedbackFragment on Feedback { id actors - @stream(initial_count: 1, label: "StreamedActorsLabel", if: $enableStream) { + @stream(initialCount: 1, label: "StreamedActorsLabel", if: $enableStream) { name } } @@ -403,7 +403,7 @@ query QueryWithFragmentWithStream( fragment FeedbackFragment on Feedback { id - actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", if: $enableStream, initial_count: 1) { + actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", if: $enableStream, initialCount: 1) { name } } @@ -421,7 +421,7 @@ query QueryWithFragmentWithStream($id: ID!, $initialCount: Int) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: $initialCount, label: "StreamedActorsLabel") { + actors @stream(initialCount: $initialCount, label: "StreamedActorsLabel") { name } } @@ -439,7 +439,7 @@ query QueryWithFragmentWithStream( fragment FeedbackFragment on Feedback { id - actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", initial_count: $initialCount) { + actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", initialCount: $initialCount) { name } } @@ -459,7 +459,7 @@ query QueryWithFragmentWithStream($id: ID!, $initialCount: Int) { fragment FeedbackFragment on Feedback { id actors @stream(label: "StreamedActorsLabel") { - # invalid: missing initial_count + # invalid: missing initialCount name } } @@ -467,13 +467,13 @@ fragment FeedbackFragment on Feedback { ~~~~~~~~~~ OUTPUT ~~~~~~~~~~ THROWN EXCEPTION: -Invalid use of @stream, the 'initial_count' argument is required. +Invalid use of @stream, the 'initialCount' argument is required. Source: GraphQL request (11:10) 10: id 11: actors @stream(label: "StreamedActorsLabel") { ^ -12: # invalid: missing initial_count +12: # invalid: missing initialCount `; @@ -488,7 +488,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "StreamedActorsLabel", if: false) { + actors @stream(initialCount: 1, label: "StreamedActorsLabel", if: false) { name } } @@ -526,9 +526,9 @@ fragment FeedbackFragment on Feedback { actors @stream( if: true - initial_count: 1 + initialCount: 1 label: "StreamedActorsLabel" - use_customized_batch: $useCustomizedBatch + useCustomizedBatch: $useCustomizedBatch ) { name } @@ -547,7 +547,7 @@ query QueryWithFragmentWithStream( fragment FeedbackFragment on Feedback { id - actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", if: true, initial_count: 1, use_customized_batch: $useCustomizedBatch) { + actors @stream(label: "FeedbackFragment$stream$StreamedActorsLabel", if: true, initialCount: 1, useCustomizedBatch: $useCustomizedBatch) { name } } @@ -566,7 +566,7 @@ query QueryWithFragmentWithStream($id: ID!, $label: String!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: $label) { + actors @stream(initialCount: 1, label: $label) { name } } @@ -576,10 +576,10 @@ THROWN EXCEPTION: Expected the 'label' value to @stream to be a string literal if provided. -Source: GraphQL request (11:43) +Source: GraphQL request (11:42) 10: id -11: actors @stream(initial_count: 1, label: $label) { - ^ +11: actors @stream(initialCount: 1, label: $label) { + ^ 12: name `; @@ -684,7 +684,7 @@ exports[`DeferStreamTransform when streaming is enabled matches expected output: query QueryWithStream($id: ID!) { node(id: $id) { ... on Feedback { - actors @stream(initial_count: 1, label: "StreamedActorsLabel") { + actors @stream(initialCount: 1, label: "StreamedActorsLabel") { name } } @@ -697,7 +697,7 @@ query QueryWithStream( ) { node(id: $id) { ... on Feedback { - actors @stream(label: "QueryWithStream$stream$StreamedActorsLabel", initial_count: 1) { + actors @stream(label: "QueryWithStream$stream$StreamedActorsLabel", initialCount: 1) { name } } diff --git a/packages/relay-compiler/transforms/__tests__/__snapshots__/RefetchableFragmentTransform-test.js.snap b/packages/relay-compiler/transforms/__tests__/__snapshots__/RefetchableFragmentTransform-test.js.snap index 74d418a350b10..3a8cbecee5ebe 100644 --- a/packages/relay-compiler/transforms/__tests__/__snapshots__/RefetchableFragmentTransform-test.js.snap +++ b/packages/relay-compiler/transforms/__tests__/__snapshots__/RefetchableFragmentTransform-test.js.snap @@ -923,7 +923,7 @@ fragment PaginationFragment on Node ... on User { name friends(after: $cursor, first: $count) - @stream_connection(key: "PaginationFragment_friends", initial_count: 1) { + @stream_connection(key: "PaginationFragment_friends", initialCount: 1) { edges { node { id @@ -942,7 +942,7 @@ fragment PaginationFragment on Node @argumentDefinitions( ... on User { name friends(after: $cursor, first: $count) @__clientField(handle: "connection", key: "PaginationFragment_friends") { - edges @stream(initial_count: 1, label: "PaginationFragment_friends") { + edges @stream(initialCount: 1, label: "PaginationFragment_friends") { node { id } diff --git a/packages/relay-compiler/transforms/__tests__/__snapshots__/ValidateServerOnlyDirectivesTransform-test.js.snap b/packages/relay-compiler/transforms/__tests__/__snapshots__/ValidateServerOnlyDirectivesTransform-test.js.snap index c16fc3eb86000..28ceb200f8fa2 100644 --- a/packages/relay-compiler/transforms/__tests__/__snapshots__/ValidateServerOnlyDirectivesTransform-test.js.snap +++ b/packages/relay-compiler/transforms/__tests__/__snapshots__/ValidateServerOnlyDirectivesTransform-test.js.snap @@ -135,7 +135,7 @@ fragment FeedbackFragment on Feedback { id foo { bar { - users @stream(initial_count: 1, label: "StreamedActorsLabel") { + users @stream(initialCount: 1, label: "StreamedActorsLabel") { id name } @@ -162,7 +162,7 @@ Unexpected directive: @stream. This directive can only be used on fields/fragmen Source (derived): GraphQL request (13:13) 12: bar { -13: users @stream(initial_count: 1, label: "StreamedActorsLabel") { +13: users @stream(initialCount: 1, label: "StreamedActorsLabel") { ^ 14: id @@ -186,7 +186,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - foos @stream(initial_count: 1, label: "StreamedActorsLabel") { + foos @stream(initialCount: 1, label: "StreamedActorsLabel") { bar } } @@ -206,13 +206,13 @@ Unexpected directive: @stream. This directive can only be used on fields/fragmen Source (derived): GraphQL request (11:8) 10: id -11: foos @stream(initial_count: 1, label: "StreamedActorsLabel") { +11: foos @stream(initialCount: 1, label: "StreamedActorsLabel") { ^ 12: bar Source: GraphQL request (11:3) 10: id -11: foos @stream(initial_count: 1, label: "StreamedActorsLabel") { +11: foos @stream(initialCount: 1, label: "StreamedActorsLabel") { ^ 12: bar @@ -384,7 +384,7 @@ query NodeQuery($id: ID!) { id ... on Story { clientComments(first: 10) - @stream_connection(key: "NodeQuery_clientComments", initial_count: 0) { + @stream_connection(key: "NodeQuery_clientComments", initialCount: 0) { edges { node { actor { @@ -412,7 +412,7 @@ Unexpected directive: @stream. This directive can only be used on fields/fragmen Source (derived): GraphQL request (7:9) 6: clientComments(first: 10) -7: @stream_connection(key: "NodeQuery_clientComments", initial_count: 0) { +7: @stream_connection(key: "NodeQuery_clientComments", initialCount: 0) { ^ 8: edges { @@ -420,6 +420,6 @@ Source: GraphQL request (6:7) 5: ... on Story { 6: clientComments(first: 10) ^ -7: @stream_connection(key: "NodeQuery_clientComments", initial_count: 0) { +7: @stream_connection(key: "NodeQuery_clientComments", initialCount: 0) { `; diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-no-label.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-no-label.graphql index e688708be3259..14406dcf91753 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-no-label.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-no-label.graphql @@ -3,7 +3,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-edges.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-edges.invalid.graphql index d0aab1efddabc..fd1e797aae68e 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-edges.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-edges.invalid.graphql @@ -4,7 +4,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { commentEdges: edges { node { actor { diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-pageInfo.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-pageInfo.invalid.graphql index 07452848d1db5..9252ecd1319c7 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-pageInfo.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection-with-aliased-pageInfo.invalid.graphql @@ -4,7 +4,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection.graphql index e688708be3259..14406dcf91753 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/connection-transform/stream-connection.graphql @@ -3,7 +3,7 @@ query NodeQuery($id: ID!) { id ... on Story { comments(first: 10) - @stream_connection(key: "NodeQuery_comments", initial_count: 0) { + @stream_connection(key: "NodeQuery_comments", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-default-label.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-default-label.graphql index 23fa23b3e8e43..739db7de64c6a 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-default-label.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-default-label.graphql @@ -7,7 +7,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1) { + actors @stream(initialCount: 1) { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-duplicate-label.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-duplicate-label.invalid.graphql index 6f0d3488b2cb9..a05f524d1de46 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-duplicate-label.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-duplicate-label.invalid.graphql @@ -8,10 +8,10 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "actors") { + actors @stream(initialCount: 1, label: "actors") { name } - otherActors: actors @stream(initial_count: 1, label: "actors") { + otherActors: actors @stream(initialCount: 1, label: "actors") { # invalid: duplicate label name } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-if-arg.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-if-arg.graphql index 20ae2c07f0bcf..266ebda30663d 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-if-arg.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-if-arg.graphql @@ -8,7 +8,7 @@ query QueryWithFragmentWithStream($id: ID!, $enableStream: Boolean) { fragment FeedbackFragment on Feedback { id actors - @stream(initial_count: 1, label: "StreamedActorsLabel", if: $enableStream) { + @stream(initialCount: 1, label: "StreamedActorsLabel", if: $enableStream) { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-initial-count-arg.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-initial-count-arg.graphql index 9e689d6875cb5..338a8274a7ed7 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-initial-count-arg.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-initial-count-arg.graphql @@ -7,7 +7,7 @@ query QueryWithFragmentWithStream($id: ID!, $initialCount: Int) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: $initialCount, label: "StreamedActorsLabel") { + actors @stream(initialCount: $initialCount, label: "StreamedActorsLabel") { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-missing-initial-count-arg.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-missing-initial-count-arg.invalid.graphql index c21bf7d7967ff..205c6284cd71c 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-missing-initial-count-arg.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-missing-initial-count-arg.invalid.graphql @@ -9,7 +9,7 @@ query QueryWithFragmentWithStream($id: ID!, $initialCount: Int) { fragment FeedbackFragment on Feedback { id actors @stream(label: "StreamedActorsLabel") { - # invalid: missing initial_count + # invalid: missing initialCount name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-statically-disabled.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-statically-disabled.graphql index cc529d908f6db..9fb1e0e3212d6 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-statically-disabled.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-statically-disabled.graphql @@ -7,7 +7,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "StreamedActorsLabel", if: false) { + actors @stream(initialCount: 1, label: "StreamedActorsLabel", if: false) { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-use_customized_batch-arg.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-use_customized_batch-arg.graphql index 5c0f7c15b697e..b252e2ba8dfbe 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-use_customized_batch-arg.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-use_customized_batch-arg.graphql @@ -10,9 +10,9 @@ fragment FeedbackFragment on Feedback { actors @stream( if: true - initial_count: 1 + initialCount: 1 label: "StreamedActorsLabel" - use_customized_batch: $useCustomizedBatch + useCustomizedBatch: $useCustomizedBatch ) { name } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-variable-label.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-variable-label.invalid.graphql index 0877996f4bd7b..9d6f748019d5d 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-variable-label.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream-variable-label.invalid.graphql @@ -8,7 +8,7 @@ query QueryWithFragmentWithStream($id: ID!, $label: String!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: $label) { + actors @stream(initialCount: 1, label: $label) { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream.graphql index 8891fba1b9c8d..ceb87c5700edc 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/fragment-with-stream.graphql @@ -7,7 +7,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - actors @stream(initial_count: 1, label: "StreamedActorsLabel") { + actors @stream(initialCount: 1, label: "StreamedActorsLabel") { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/query-with-stream.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/query-with-stream.graphql index 2b7d7173527d1..cb244a79f1267 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/query-with-stream.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-defer-stream-transform/query-with-stream.graphql @@ -1,7 +1,7 @@ query QueryWithStream($id: ID!) { node(id: $id) { ... on Feedback { - actors @stream(initial_count: 1, label: "StreamedActorsLabel") { + actors @stream(initialCount: 1, label: "StreamedActorsLabel") { name } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/relay-refetchable-fragment-transform/refetchable-fragment-with-connection-with-stream.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/relay-refetchable-fragment-transform/refetchable-fragment-with-connection-with-stream.graphql index e6fc5872ef07d..a4cf016c7d77a 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/relay-refetchable-fragment-transform/refetchable-fragment-with-connection-with-stream.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/relay-refetchable-fragment-transform/refetchable-fragment-with-connection-with-stream.graphql @@ -8,7 +8,7 @@ fragment PaginationFragment on Node ... on User { name friends(after: $cursor, first: $count) - @stream_connection(key: "PaginationFragment_friends", initial_count: 1) { + @stream_connection(key: "PaginationFragment_friends", initialCount: 1) { edges { node { id diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-child-of-client.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-child-of-client.invalid.graphql index 71c72c62a67ce..a2d7236083953 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-child-of-client.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-child-of-client.invalid.graphql @@ -10,7 +10,7 @@ fragment FeedbackFragment on Feedback { id foo { bar { - users @stream(initial_count: 1, label: "StreamedActorsLabel") { + users @stream(initialCount: 1, label: "StreamedActorsLabel") { id name } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-on-client.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-on-client.invalid.graphql index 7800f13a2b04d..71702f3f41c18 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-on-client.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/fragment-with-stream-on-client.invalid.graphql @@ -8,7 +8,7 @@ query QueryWithFragmentWithStream($id: ID!) { fragment FeedbackFragment on Feedback { id - foos @stream(initial_count: 1, label: "StreamedActorsLabel") { + foos @stream(initialCount: 1, label: "StreamedActorsLabel") { bar } } diff --git a/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/stream-connection-on-client.invalid.graphql b/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/stream-connection-on-client.invalid.graphql index 9df3f024c662d..862d62c84ec4f 100644 --- a/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/stream-connection-on-client.invalid.graphql +++ b/packages/relay-compiler/transforms/__tests__/fixtures/server-only-directives/stream-connection-on-client.invalid.graphql @@ -4,7 +4,7 @@ query NodeQuery($id: ID!) { id ... on Story { clientComments(first: 10) - @stream_connection(key: "NodeQuery_clientComments", initial_count: 0) { + @stream_connection(key: "NodeQuery_clientComments", initialCount: 0) { edges { node { actor { diff --git a/packages/relay-experimental/__tests__/useBlockingPaginationFragment-test.js b/packages/relay-experimental/__tests__/useBlockingPaginationFragment-test.js index 91c9bab41e4f6..a11576f2e33f8 100644 --- a/packages/relay-experimental/__tests__/useBlockingPaginationFragment-test.js +++ b/packages/relay-experimental/__tests__/useBlockingPaginationFragment-test.js @@ -488,7 +488,7 @@ describe('useBlockingPaginationFragment', () => { last: $last, orderby: $orderby, isViewerFriend: $isViewerFriendLocal - ) @stream_connection(key: "UserFragment_friends", initial_count: 1) { + ) @stream_connection(key: "UserFragment_friends", initialCount: 1) { edges { node { id diff --git a/packages/relay-experimental/__tests__/usePaginationFragment-test.js b/packages/relay-experimental/__tests__/usePaginationFragment-test.js index 980847e7205ff..b0d2ff86cec67 100644 --- a/packages/relay-experimental/__tests__/usePaginationFragment-test.js +++ b/packages/relay-experimental/__tests__/usePaginationFragment-test.js @@ -197,7 +197,7 @@ describe('usePaginationFragment', () => { isViewerFriend: $isViewerFriendLocal scale: $scale ) @stream_connection( - initial_count: 1 + initialCount: 1 key: "UserFragment_friends", filters: ["orderby", "isViewerFriend"] ) { diff --git a/packages/relay-runtime/handlers/directives/DeferStreamInterface.js b/packages/relay-runtime/handlers/directives/DeferStreamInterface.js new file mode 100644 index 0000000000000..4b37c47fdcaa2 --- /dev/null +++ b/packages/relay-runtime/handlers/directives/DeferStreamInterface.js @@ -0,0 +1,42 @@ +/** + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * @flow strict-local + * @format + */ + +'use strict'; + +type DeferStreamConfig = {| + INITIAL_COUNT: string, + LABEL: string, + IF: string, + USE_CUSTOMIZED_BATCH: string, +|}; + +let config: DeferStreamConfig = { + INITIAL_COUNT: 'initialCount', + LABEL: 'label', + IF: 'if', + USE_CUSTOMIZED_BATCH: 'useCustomizedBatch', +}; + +/** + * @internal + * + * Defines logic relevant to the @stream directive. + */ +const DeferStreamInterface = { + inject(newConfig: DeferStreamConfig) { + config = newConfig; + }, + + get(): DeferStreamConfig { + return config; + }, +}; + +module.exports = DeferStreamInterface; diff --git a/packages/relay-runtime/index.js b/packages/relay-runtime/index.js index 719bbca5c3e29..35ae704a93008 100644 --- a/packages/relay-runtime/index.js +++ b/packages/relay-runtime/index.js @@ -14,6 +14,7 @@ const ConnectionHandler = require('./handlers/connection/ConnectionHandler'); const ConnectionInterface = require('./handlers/connection/ConnectionInterface'); +const DeferStreamInterface = require('./handlers/directives/DeferStreamInterface'); const GraphQLTag = require('./query/GraphQLTag'); const MutationHandlers = require('./handlers/connection/MutationHandlers'); const PreloadableQueryRegistry = require('./query/PreloadableQueryRegistry'); @@ -293,6 +294,7 @@ module.exports = { // Configuration interface for legacy or special uses ConnectionInterface, + DeferStreamInterface, // Utilities PreloadableQueryRegistry, diff --git a/packages/relay-runtime/store/RelayResponseNormalizer.js b/packages/relay-runtime/store/RelayResponseNormalizer.js index 1ac30fc23d336..f32a2a73ad4b0 100644 --- a/packages/relay-runtime/store/RelayResponseNormalizer.js +++ b/packages/relay-runtime/store/RelayResponseNormalizer.js @@ -354,7 +354,7 @@ class RelayResponseNormalizer { ) { // Always normalize regardless of whether streaming is enabled or not, // this populates the initial array value (including any items when - // initial_count > 0). + // initialCount > 0). this._traverseSelections(stream, record, data); const isStreamed = stream.if === null || this._getVariableValue(stream.if); if (__DEV__) { diff --git a/packages/relay-runtime/store/__tests__/DataChecker-test.js b/packages/relay-runtime/store/__tests__/DataChecker-test.js index a750af640e571..0410fefd659bc 100644 --- a/packages/relay-runtime/store/__tests__/DataChecker-test.js +++ b/packages/relay-runtime/store/__tests__/DataChecker-test.js @@ -1452,7 +1452,7 @@ describe('check()', () => { const nodes = generateAndCompile(` fragment TestFragment on Feedback { id - actors @stream(label: "TestFragmentActors", initial_count: 0) { + actors @stream(label: "TestFragmentActors", initialCount: 0) { name } } diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteSubscriptionWithStream-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteSubscriptionWithStream-test.js index cea7240787eae..f785ea4d65919 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteSubscriptionWithStream-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteSubscriptionWithStream-test.js @@ -65,7 +65,7 @@ describe('executeSubscrption() with @stream', () => { fragment FeedbackFragment on Feedback { id - actors @stream(label: "actors", initial_count: 0) { + actors @stream(label: "actors", initialCount: 0) { name @__clientField(handle: "name_handler") } } diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithDeferredStreamedConnection-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithDeferredStreamedConnection-test.js index 369abb7bcc26e..ead39e5126551 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithDeferredStreamedConnection-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithDeferredStreamedConnection-test.js @@ -61,7 +61,7 @@ describe('execute() fetches a @defer-ed @stream-ed @connection', () => { newsFeed(first: 10, after: $after) @connection(key: "RelayModernEnvironment_newsFeed") { edges - @stream(label: "newsFeed", if: $enableStream, initial_count: 0) { + @stream(label: "newsFeed", if: $enableStream, initialCount: 0) { cursor node { __typename @@ -377,7 +377,7 @@ describe('execute() fetches a @defer-ed @stream-ed @connection', () => { }); }); - it('initializes the connection with subsequent edges (1 => 2 edges) when initial_count=1', () => { + it('initializes the connection with subsequent edges (1 => 2 edges) when initialCount=1', () => { const initialSnapshot = environment.lookup(selector); callback = jest.fn(); environment.subscribe(initialSnapshot, callback); diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithNestedStream-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithNestedStream-test.js index 1633b47db6597..417727b7d3db4 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithNestedStream-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithNestedStream-test.js @@ -62,12 +62,12 @@ describe('execute() a query with nested @stream', () => { fragment FeedFragment on Viewer { newsFeed(first: 10) { - edges @stream(label: "newsFeed", if: $enableStream, initial_count: 0) { + edges @stream(label: "newsFeed", if: $enableStream, initialCount: 0) { cursor node { id feedback { - actors @stream(label: "actors", if: $enableStream, initial_count: 0) { + actors @stream(label: "actors", if: $enableStream, initialCount: 0) { name @__clientField(handle: "name_handler") } } diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithOverlappingStream-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithOverlappingStream-test.js index eb9e27ae62e1a..82452bc03fd19 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithOverlappingStream-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithOverlappingStream-test.js @@ -66,7 +66,7 @@ describe('execute() a query with multiple @stream selections on the same record' fragment FeedbackFragment on Feedback { id actors - @stream(label: "actors", if: $enableStream, initial_count: 0) + @stream(label: "actors", if: $enableStream, initialCount: 0) @__clientField(handle: "actors_handler") { name @__clientField(handle: "name_handler") } @@ -75,7 +75,7 @@ describe('execute() a query with multiple @stream selections on the same record' fragment DeferFragment on Feedback { viewedBy - @stream(label: "viewedBy", if: $enableStream, initial_count: 0) + @stream(label: "viewedBy", if: $enableStream, initialCount: 0) @__clientField(handle: "actors_handler") { name @__clientField(handle: "name_handler") } diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStream-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStream-test.js index 234a9d5861cfe..21636082e0f7b 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStream-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStream-test.js @@ -63,7 +63,7 @@ describe('execute() a query with @stream', () => { fragment FeedbackFragment on Feedback { id - actors @stream(label: "actors", if: $enableStream, initial_count: 0) { + actors @stream(label: "actors", if: $enableStream, initialCount: 0) { name @__clientField(handle: "name_handler") } } @@ -258,7 +258,7 @@ describe('execute() a query with @stream', () => { expect(error).toBeCalledTimes(0); }); - it('processes batched streamed payloads (with use_customized_batch)', () => { + it('processes batched streamed payloads (with useCustomizedBatch)', () => { const initialSnapshot = environment.lookup(selector); const callback = jest.fn(); environment.subscribe(initialSnapshot, callback); diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js index bd8074cc0b7f2..4414ed9ea620e 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamAndRequired-test.js @@ -53,7 +53,7 @@ describe('execute() a query with @stream and @required', () => { fragment FeedbackFragment on Feedback { id actors - @stream(label: "actors", if: $enableStream, initial_count: 0) + @stream(label: "actors", if: $enableStream, initialCount: 0) @required(action: LOG) { name diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamWithHandler-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamWithHandler-test.js index 8a189591ec43e..2e2dbad7193c6 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamWithHandler-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamWithHandler-test.js @@ -61,7 +61,7 @@ describe('execute() a query with @stream with handler', () => { fragment FeedbackFragment on Feedback { id actors - @stream(label: "actors", if: $enableStream, initial_count: 0) + @stream(label: "actors", if: $enableStream, initialCount: 0) @__clientField(handle: "actors_handler") { name @__clientField(handle: "name_handler") } diff --git a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamedConnection-test.js b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamedConnection-test.js index b4e477a889269..f8e3fd96eabf7 100644 --- a/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamedConnection-test.js +++ b/packages/relay-runtime/store/__tests__/RelayModernEnvironment-ExecuteWithStreamedConnection-test.js @@ -61,7 +61,7 @@ describe('execute() fetches a @stream-ed @connection', () => { @stream_connection( key: "RelayModernEnvironment_newsFeed" if: $enableStream - initial_count: 0 + initialCount: 0 ) { edges { cursor @@ -337,7 +337,7 @@ describe('execute() fetches a @stream-ed @connection', () => { }); }); - it('initializes the connection with subsequent edges (1 => 2 edges) when initial_count=1', () => { + it('initializes the connection with subsequent edges (1 => 2 edges) when initialCount=1', () => { const initialSnapshot = environment.lookup(selector); callback = jest.fn(); environment.subscribe(initialSnapshot, callback); @@ -435,7 +435,7 @@ describe('execute() fetches a @stream-ed @connection', () => { }); }); - it('initializes the connection with subsequent edges (1 => 3 edges) when initial_count=1 with batch response', () => { + it('initializes the connection with subsequent edges (1 => 3 edges) when initialCount=1 with batch response', () => { const initialSnapshot = environment.lookup(selector); callback = jest.fn(); environment.subscribe(initialSnapshot, callback); diff --git a/packages/relay-runtime/store/__tests__/RelayReader-test.js b/packages/relay-runtime/store/__tests__/RelayReader-test.js index 6e677aeca77dc..e600c95d19545 100644 --- a/packages/relay-runtime/store/__tests__/RelayReader-test.js +++ b/packages/relay-runtime/store/__tests__/RelayReader-test.js @@ -1569,7 +1569,7 @@ describe('RelayReader', () => { beforeEach(() => { const nodes = generateAndCompile( ` fragment UserProfile on User { - friends(first: 3) @stream_connection(key: "UserProfile_friends", initial_count: 0) { + friends(first: 3) @stream_connection(key: "UserProfile_friends", initialCount: 0) { edges { node { name diff --git a/packages/relay-runtime/store/__tests__/RelayReferenceMarker-test.js b/packages/relay-runtime/store/__tests__/RelayReferenceMarker-test.js index e2511b535e3b5..8a342817f1368 100644 --- a/packages/relay-runtime/store/__tests__/RelayReferenceMarker-test.js +++ b/packages/relay-runtime/store/__tests__/RelayReferenceMarker-test.js @@ -1308,7 +1308,7 @@ describe('RelayReferenceMarker', () => { ` fragment TestFragment on Feedback { id - actors @stream(label: "TestFragmentActors", initial_count: 0) { + actors @stream(label: "TestFragmentActors", initialCount: 0) { name } } diff --git a/packages/relay-runtime/store/__tests__/RelayResponseNormalizer-test.js b/packages/relay-runtime/store/__tests__/RelayResponseNormalizer-test.js index eea0250758b82..1ffb9fd320e9e 100644 --- a/packages/relay-runtime/store/__tests__/RelayResponseNormalizer-test.js +++ b/packages/relay-runtime/store/__tests__/RelayResponseNormalizer-test.js @@ -1145,7 +1145,7 @@ describe('RelayResponseNormalizer', () => { ` fragment TestFragment on Feedback { id - actors @stream(label: "actors", if: $enableStream, initial_count: 0) { + actors @stream(label: "actors", if: $enableStream, initialCount: 0) { name } } @@ -1202,7 +1202,7 @@ describe('RelayResponseNormalizer', () => { ` fragment TestFragment on Feedback { id - actors @stream(label: "actors", if: true, initial_count: 0) { + actors @stream(label: "actors", if: true, initialCount: 0) { name } } @@ -1265,7 +1265,7 @@ describe('RelayResponseNormalizer', () => { ` fragment TestFragment on Feedback { id - actors @stream(label: "actors", if: $enableStream, initial_count: 0) { + actors @stream(label: "actors", if: $enableStream, initialCount: 0) { name } } @@ -1334,7 +1334,7 @@ describe('RelayResponseNormalizer', () => { actors { ... on User { name - actors @stream(label: "actors", if: true, initial_count: 0) { + actors @stream(label: "actors", if: true, initialCount: 0) { name } } @@ -1418,7 +1418,7 @@ describe('RelayResponseNormalizer', () => { ` fragment TestFragment on Feedback { id - actors @stream(label: "actors", initial_count: 0) { + actors @stream(label: "actors", initialCount: 0) { name } } diff --git a/packages/relay-test-utils-internal/testschema.graphql b/packages/relay-test-utils-internal/testschema.graphql index f2f154a3be6ad..1a0954763c2f4 100644 --- a/packages/relay-test-utils-internal/testschema.graphql +++ b/packages/relay-test-utils-internal/testschema.graphql @@ -17,9 +17,9 @@ directive @defer( directive @stream( label: String! - initial_count: Int! + initialCount: Int! if: Boolean = true - use_customized_batch: Boolean = false + useCustomizedBatch: Boolean = false ) on FIELD directive @fetchable(field_name: String!) on OBJECT