-
Notifications
You must be signed in to change notification settings - Fork 23
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge remote-tracking branch 'origin/router-bridge@v0.6.0-beta.1+v2.9…
….0-beta.0' into create-pull-request/router-bridge
- Loading branch information
Showing
12 changed files
with
597 additions
and
109 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
112 changes: 112 additions & 0 deletions
112
router-bridge/src/snapshots/router_bridge__planner__error_display__subgraphWithCost.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,112 @@ | ||
--- | ||
source: router-bridge/src/planner.rs | ||
expression: schema | ||
--- | ||
schema | ||
@link(url: "https://specs.apollo.dev/link/v1.0") | ||
@link(url: "https://specs.apollo.dev/federation/v2.9", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject"]) | ||
{ | ||
query: Query | ||
} | ||
|
||
directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA | ||
|
||
directive @key(fields: federation__FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE | ||
|
||
directive @requires(fields: federation__FieldSet!) on FIELD_DEFINITION | ||
|
||
directive @provides(fields: federation__FieldSet!) on FIELD_DEFINITION | ||
|
||
directive @external(reason: String) on OBJECT | FIELD_DEFINITION | ||
|
||
directive @tag(name: String!) repeatable on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION | SCHEMA | ||
|
||
directive @extends on OBJECT | INTERFACE | ||
|
||
directive @shareable repeatable on OBJECT | FIELD_DEFINITION | ||
|
||
directive @inaccessible on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION | ||
|
||
directive @override(from: String!, label: String) on FIELD_DEFINITION | ||
|
||
directive @composeDirective(name: String) repeatable on SCHEMA | ||
|
||
directive @interfaceObject on OBJECT | ||
|
||
directive @federation__authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM | ||
|
||
directive @federation__requiresScopes(scopes: [[federation__Scope!]!]!) on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM | ||
|
||
directive @federation__policy(policies: [[federation__Policy!]!]!) on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM | ||
|
||
directive @federation__sourceAPI repeatable on SCHEMA | ||
|
||
directive @federation__sourceType repeatable on OBJECT | INTERFACE | ||
|
||
directive @federation__sourceField repeatable on FIELD_DEFINITION | ||
|
||
directive @federation__context(name: String!) repeatable on INTERFACE | OBJECT | UNION | ||
|
||
directive @federation__fromContext(field: federation__ContextFieldValue) on ARGUMENT_DEFINITION | ||
|
||
directive @federation__cost(weight: Int!) on ARGUMENT_DEFINITION | ENUM | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | OBJECT | SCALAR | ||
|
||
directive @federation__listSize(assumedSize: Int, slicingArguments: [String!], sizedFields: [String!], requireOneSlicingArgument: Boolean = true) on FIELD_DEFINITION | ||
|
||
enum link__Purpose { | ||
""" | ||
`SECURITY` features provide metadata necessary to securely resolve fields. | ||
""" | ||
SECURITY | ||
|
||
""" | ||
`EXECUTION` features provide metadata necessary for operation execution. | ||
""" | ||
EXECUTION | ||
} | ||
|
||
scalar link__Import | ||
|
||
scalar federation__FieldSet | ||
|
||
scalar federation__Scope | ||
|
||
scalar federation__Policy | ||
|
||
scalar federation__ContextFieldValue | ||
|
||
enum AorB | ||
@federation__cost(weight: 15) | ||
{ | ||
A | ||
B | ||
} | ||
|
||
scalar ExpensiveInt | ||
@federation__cost(weight: 30) | ||
|
||
type ExpensiveObject | ||
@federation__cost(weight: 40) | ||
{ | ||
id: ID | ||
} | ||
|
||
input InputTypeWithCost { | ||
somethingWithCost: Int @federation__cost(weight: 20) | ||
} | ||
|
||
type Query { | ||
fieldWithCost: Int @federation__cost(weight: 5) | ||
argWithCost(arg: Int @federation__cost(weight: 10)): Int | ||
enumWithCost: AorB | ||
inputWithCost(someInput: InputTypeWithCost): Int | ||
scalarWithCost: ExpensiveInt | ||
objectWithCost: ExpensiveObject | ||
_service: _Service! | ||
} | ||
|
||
scalar _Any | ||
|
||
type _Service { | ||
sdl: String | ||
} |
96 changes: 96 additions & 0 deletions
96
router-bridge/src/snapshots/router_bridge__planner__error_display__subgraphWithListSize.snap
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,96 @@ | ||
--- | ||
source: router-bridge/src/planner.rs | ||
expression: schema | ||
--- | ||
schema | ||
@link(url: "https://specs.apollo.dev/link/v1.0") | ||
@link(url: "https://specs.apollo.dev/federation/v2.9", import: ["@key", "@requires", "@provides", "@external", "@tag", "@extends", "@shareable", "@inaccessible", "@override", "@composeDirective", "@interfaceObject"]) | ||
{ | ||
query: Query | ||
} | ||
|
||
directive @link(url: String, as: String, for: link__Purpose, import: [link__Import]) repeatable on SCHEMA | ||
|
||
directive @key(fields: federation__FieldSet!, resolvable: Boolean = true) repeatable on OBJECT | INTERFACE | ||
|
||
directive @requires(fields: federation__FieldSet!) on FIELD_DEFINITION | ||
|
||
directive @provides(fields: federation__FieldSet!) on FIELD_DEFINITION | ||
|
||
directive @external(reason: String) on OBJECT | FIELD_DEFINITION | ||
|
||
directive @tag(name: String!) repeatable on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION | SCHEMA | ||
|
||
directive @extends on OBJECT | INTERFACE | ||
|
||
directive @shareable repeatable on OBJECT | FIELD_DEFINITION | ||
|
||
directive @inaccessible on FIELD_DEFINITION | OBJECT | INTERFACE | UNION | ARGUMENT_DEFINITION | SCALAR | ENUM | ENUM_VALUE | INPUT_OBJECT | INPUT_FIELD_DEFINITION | ||
|
||
directive @override(from: String!, label: String) on FIELD_DEFINITION | ||
|
||
directive @composeDirective(name: String) repeatable on SCHEMA | ||
|
||
directive @interfaceObject on OBJECT | ||
|
||
directive @federation__authenticated on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM | ||
|
||
directive @federation__requiresScopes(scopes: [[federation__Scope!]!]!) on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM | ||
|
||
directive @federation__policy(policies: [[federation__Policy!]!]!) on FIELD_DEFINITION | OBJECT | INTERFACE | SCALAR | ENUM | ||
|
||
directive @federation__sourceAPI repeatable on SCHEMA | ||
|
||
directive @federation__sourceType repeatable on OBJECT | INTERFACE | ||
|
||
directive @federation__sourceField repeatable on FIELD_DEFINITION | ||
|
||
directive @federation__context(name: String!) repeatable on INTERFACE | OBJECT | UNION | ||
|
||
directive @federation__fromContext(field: federation__ContextFieldValue) on ARGUMENT_DEFINITION | ||
|
||
directive @federation__cost(weight: Int!) on ARGUMENT_DEFINITION | ENUM | FIELD_DEFINITION | INPUT_FIELD_DEFINITION | OBJECT | SCALAR | ||
|
||
directive @federation__listSize(assumedSize: Int, slicingArguments: [String!], sizedFields: [String!], requireOneSlicingArgument: Boolean = true) on FIELD_DEFINITION | ||
|
||
enum link__Purpose { | ||
""" | ||
`SECURITY` features provide metadata necessary to securely resolve fields. | ||
""" | ||
SECURITY | ||
|
||
""" | ||
`EXECUTION` features provide metadata necessary for operation execution. | ||
""" | ||
EXECUTION | ||
} | ||
|
||
scalar link__Import | ||
|
||
scalar federation__FieldSet | ||
|
||
scalar federation__Scope | ||
|
||
scalar federation__Policy | ||
|
||
scalar federation__ContextFieldValue | ||
|
||
type A { | ||
id: ID | ||
} | ||
|
||
type Query { | ||
fieldWithListSize: [String!] @federation__listSize(assumedSize: 2000, requireOneSlicingArgument: false) | ||
fieldWithDynamicListSize(first: Int = 10): SizedField @federation__listSize(slicingArguments: ["first"], sizedFields: ["items"], requireOneSlicingArgument: true) | ||
_service: _Service! | ||
} | ||
|
||
type SizedField { | ||
items: [A] | ||
} | ||
|
||
scalar _Any | ||
|
||
type _Service { | ||
sdl: String | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.