@baseplate-dev/react-generators
Version:
React Generators for Baseplate
66 lines • 2.43 kB
TypeScript
interface GraphQLArgumentScalarValue {
type: 'scalar';
value: string | number | boolean;
}
interface GraphQLArgumentVariableValue {
type: 'variable';
variable: string;
}
type GraphQLArgumentValue = GraphQLArgumentScalarValue | GraphQLArgumentVariableValue;
interface GraphQLArgument {
name: string;
value: GraphQLArgumentValue;
}
interface GraphQLSimpleField {
type?: 'simple' | undefined;
name: string;
args?: GraphQLArgument[];
fields?: GraphQLField[];
order?: number;
}
interface GraphQLSpreadField {
type: 'spread';
on: string;
}
export type GraphQLField = GraphQLSimpleField | GraphQLSpreadField;
interface GraphQLVariable {
name: string;
type: string;
}
export interface GraphQLRoot {
type: 'query' | 'mutation' | 'subscription';
name?: string;
variables?: GraphQLVariable[];
fields: GraphQLField[];
}
export interface GraphQLFragment {
name: string;
type: string;
fields: GraphQLField[];
}
export declare function renderGraphQLFragment({ name, type, fields, }: GraphQLFragment): string;
export declare function renderGraphQLRoot({ type, name, variables, fields, }: GraphQLRoot): string;
/**
* Merges an array of `GraphQLField` objects, combining any mergeable fields.
*
* This function iterates through the input fields, merging entries that are determined to be mergeable
* based on `areFieldsMergeable`. Non-mergeable fields are added directly to the result.
*
* @param fields - An array of `GraphQLField` objects to merge.
* @returns An array of merged `GraphQLField` objects.
*/
export declare function mergeGraphQLFields(fields: GraphQLField[]): GraphQLField[];
/**
* Merges an array of `GraphQLFragment` objects, combining any mergeable fragments.
*
* This function iterates through the input fragments and merges entries that are determined to be
* mergeable based on `areFragmentsMergeable`. If fragments are mergeable, their `fields` are merged
* using `mergeGraphQLFields`. Non-mergeable fragments are added directly to the result.
*
* @param frags - An array of `GraphQLFragment` objects to merge.
* @returns An array of merged `GraphQLFragment` objects.
*/
export declare function mergeGraphQLFragments(frags: GraphQLFragment[]): GraphQLFragment[];
export declare function areFieldsIdentical(fieldsOne: GraphQLField[], fieldsTwo: GraphQLField[]): boolean;
export {};
//# sourceMappingURL=index.d.ts.map