export interface ExecutionResult { errors?: Array data?: TData | null } export interface ArgMap { [arg: string]: [keyType, string] | [keyType] | undefined } export type CompressedField = [ type: keyType, args?: ArgMap, ] export interface CompressedFieldMap { [field: string]: CompressedField | undefined } export type CompressedType = CompressedFieldMap export interface CompressedTypeMap { scalars: Array types: { [type: string]: CompressedType | undefined } } // normal types export type Field = { type: keyType args?: ArgMap } export interface FieldMap { [field: string]: Field | undefined } export type Type = FieldMap export interface TypeMap { scalars: Array types: { [type: string]: Type | undefined } } export interface LinkedArgMap { [arg: string]: [LinkedType, string] | undefined } export interface LinkedField { type: LinkedType args?: LinkedArgMap } export interface LinkedFieldMap { [field: string]: LinkedField | undefined } export interface LinkedType { name: string fields?: LinkedFieldMap scalar?: string[] } export interface LinkedTypeMap { [type: string]: LinkedType | undefined }