wgc
Version:
The official CLI tool to manage the GraphQL Federation Platform Cosmo
81 lines (80 loc) • 2.96 kB
TypeScript
import { EnumStatusCode } from '@wundergraph/cosmo-connect/dist/common/common_pb';
import type { CheckOperationUsageStats, CompositionError, CompositionWarning, FederatedGraphSchemaChange, GraphPruningIssue, LintIssue, SchemaChange } from '@wundergraph/cosmo-connect/dist/platform/v1/platform_pb';
export type JsonCheckSchemaOutputDescriptor = {
status: 'error' | 'success';
code: EnumStatusCode;
details?: string;
message?: string;
url?: string;
proposals?: {
message: string;
};
traffic?: {
message: string;
};
featureSubgraphCheck?: {
message: string;
};
changes?: {
breaking: SchemaChange[];
nonBreaking: SchemaChange[];
};
composition?: {
errors: CompositionError[];
warnings: CompositionWarning[];
};
lint?: {
errors: LintIssue[];
warnings: LintIssue[];
};
graphPrune?: {
errors: GraphPruningIssue[];
warnings: GraphPruningIssue[];
};
composedSchemaBreakingChanges?: FederatedGraphSchemaChange[];
extensions?: {
message: string;
};
exceededRowLimit?: boolean;
rowLimit: number;
operationUsageStats?: CheckOperationUsageStats;
};
export declare class JsonCheckSchemaOutputBuilder {
private readonly data;
private readonly outFile?;
constructor(code: EnumStatusCode, rowLimit: number, outFile?: string);
setUrl(url: string): this;
setCode(code: EnumStatusCode): this;
setStatus(success: boolean): this;
setMessage(message: string): this;
setDetails(details: string | undefined): this;
setProposals(message: string): this;
initProposals(message: string): this;
setTraffic(message: string): this;
setFeatureSubgraphCheck(message: string): this;
markTrafficLinkedFailed(fallbackMessage: string): this;
addBreakingChanges(changes: SchemaChange[]): this;
addNonBreakingChanges(changes: SchemaChange[]): this;
setOperationUsageStats(stats: CheckOperationUsageStats): this;
addCompositionErrors(errors: CompositionError[]): this;
addCompositionWarnings(warnings: CompositionWarning[]): this;
addLintErrors(errors: LintIssue[]): this;
addLintWarnings(warnings: LintIssue[]): this;
addGraphPruneErrors(errors: GraphPruningIssue[]): this;
addGraphPruneWarnings(warnings: GraphPruningIssue[]): this;
markGraphPruneLinkedFailed(): this;
addComposedSchemaBreakingChanges(changes: FederatedGraphSchemaChange[]): this;
setExtensionError(message: string): this;
setExceededRowLimit(exceeded: boolean): this;
build(): JsonCheckSchemaOutputDescriptor;
/**
* Writes valid JSON either to stdout or a file.
*/
write(): Promise<void>;
/**
* JSON.stringify replacer that strips protobuf V2 internal fields
* (like $typeName) so the output remains a clean, user-facing format.
*/
private static jsonReplacer;
private serializeOutput;
}