@theguild/federation-composition
Version:
Open Source Composition library for Apollo Federation
61 lines • 1.68 kB
text/typescript
import { DirectiveNode } from 'graphql';
import { Deprecated, Description, InterfaceType } from '../../subgraph/state.cjs';
import type { Key, MapByGraph, TypeBuilder } from './common.cjs';
export declare function interfaceTypeBuilder(): TypeBuilder<InterfaceType, InterfaceTypeState>;
export type InterfaceTypeState = {
name: string;
tags: Set<string>;
inaccessible: boolean;
hasDefinition: boolean;
description?: Description;
byGraph: MapByGraph<InterfaceTypeInGraph>;
interfaces: Set<string>;
implementedBy: Set<string>;
fields: Map<string, InterfaceTypeFieldState>;
ast: {
directives: DirectiveNode[];
};
};
type InterfaceTypeFieldState = {
name: string;
type: string;
tags: Set<string>;
inaccessible: boolean;
deprecated?: Deprecated;
description?: Description;
byGraph: MapByGraph<FieldStateInGraph>;
args: Map<string, InterfaceTypeFieldArgState>;
ast: {
directives: DirectiveNode[];
};
};
export type InterfaceTypeFieldArgState = {
name: string;
type: string;
tags: Set<string>;
defaultValue?: string;
description?: Description;
deprecated?: Deprecated;
byGraph: MapByGraph<ArgStateInGraph>;
ast: {
directives: DirectiveNode[];
};
};
type InterfaceTypeInGraph = {
extension: boolean;
keys: Key[];
interfaces: Set<string>;
implementedBy: Set<string>;
};
type FieldStateInGraph = {
type: string;
override: string | null;
provides: string | null;
requires: string | null;
};
type ArgStateInGraph = {
type: string;
defaultValue?: string;
};
export {};
//# sourceMappingURL=interface-type.d.ts.map