@graphql-hive/federation-gateway-audit
Version:
Audit tool for Apollo Federation Gateway
52 lines (45 loc) • 1.03 kB
text/typescript
import { createSubgraph } from "../../subgraph.js";
import { users } from "./data.js";
function accounts() {
return [
...users.map((user) => ({ __typename: "User", ...user })),
{ __typename: "Admin", id: "a1", name: "a1-name" },
];
}
export default createSubgraph("b", {
typeDefs: /* GraphQL */ `
extend schema
@link(
url: "https://specs.apollo.dev/federation/v2.3"
import: ["@shareable", "@key"]
)
union Account = User | Admin
type User @key(fields: "id") {
id: ID!
name: String
similarAccounts: [Account!]!
}
type Admin {
id: ID
name: String @shareable
similarAccounts: [Account!]!
}
type Query {
accounts: [Account!]!
}
`,
resolvers: {
Query: {
accounts,
},
User: {
__resolveReference(key: { id: string }) {
return users.find((user) => user.id === key.id);
},
similarAccounts: accounts,
},
Admin: {
similarAccounts: accounts,
},
},
});