/* tslint:disable */
/* eslint-disable */
export type ValueTypes = {
/** Card used in card game
*/
["Card"]: AliasType<{
/** The attack power
*/
Attack?:true,
/**
How many children the greek god had
*/
Children?:true,
/** The defense power
*/
Defense?:true,
attack?: [{ /** Attacked card/card ids
*/
cardID:string[]},ValueTypes["Card"]],
/** Put your description here */
cardImage?:ValueTypes["S3Object"],
/** Description of a card
*/
description?:true,
id?:true,
image?:true,
/** The name of a card
*/
name?:true,
skills?:true
__typename?: true
}>;
/** Stack of cards */
["CardStack"]: AliasType<{
cards?:ValueTypes["Card"],
name?:true
__typename?: true
}>;
["ChangeCard"]: AliasType<{ ["...on SpecialCard"] : ValueTypes["SpecialCard"],
["...on EffectCard"] : ValueTypes["EffectCard"]
__typename?: true
}>;
/** create card inputs
*/
["createCard"]: {
/** input skills */
skills?:ValueTypes["SpecialSkills"][],
/** The name of a card
*/
name:string,
/** Description of a card
*/
description:string,
/** How many children the greek god had
*/
Children?:number,
/** The attack power
*/
Attack:number,
/** The defense power
*/
Defense:number
};
["EffectCard"]: AliasType<{
effectSize?:true,
name?:true
__typename?: true
}>;
["Mutation"]: AliasType<{
addCard?: [{ card:ValueTypes["createCard"]},ValueTypes["Card"]]
__typename?: true
}>;
["Nameable"]:AliasType<{
name?:true;
['...on Card']: ValueTypes["Card"];
['...on CardStack']: ValueTypes["CardStack"];
['...on EffectCard']: ValueTypes["EffectCard"];
['...on SpecialCard']: ValueTypes["SpecialCard"];
__typename?: true
}>;
["Query"]: AliasType<{
cardById?: [{ cardId?:string},ValueTypes["Card"]],
/** Draw a card
*/
drawCard?:ValueTypes["Card"],
drawChangeCard?:ValueTypes["ChangeCard"],
/** list All Cards availble
*/
listCards?:ValueTypes["Card"],
myStacks?:ValueTypes["CardStack"],
nameables?:ValueTypes["Nameable"]
__typename?: true
}>;
/** Aws S3 File */
["S3Object"]: AliasType<{
bucket?:true,
key?:true,
region?:true
__typename?: true
}>;
["SpecialCard"]: AliasType<{
effect?:true,
name?:true
__typename?: true
}>;
["SpecialSkills"]:SpecialSkills
}
export type PartialObjects = {
/** Card used in card game
*/
["Card"]: {
__typename?: "Card";
/** The attack power
*/
Attack?:number,
/** How many children the greek god had
*/
Children?:number,
/** The defense power
*/
Defense?:number,
/** Attack other cards on the table , returns Cards after attack
*/
attack?:PartialObjects["Card"][],
/** Put your description here */
cardImage?:PartialObjects["S3Object"],
/** Description of a card
*/
description?:string,
id?:string,
image?:string,
/** The name of a card
*/
name?:string,
skills?:PartialObjects["SpecialSkills"][]
},
/** Stack of cards */
["CardStack"]: {
__typename?: "CardStack";
cards?:PartialObjects["Card"][],
name?:string
},
["ChangeCard"]: PartialObjects["SpecialCard"] | PartialObjects["EffectCard"],
/** create card inputs
*/
["createCard"]: {
/** input skills */
skills?:PartialObjects["SpecialSkills"][],
/** The name of a card
*/
name:string,
/** Description of a card
*/
description:string,
/** How many children the greek god had
*/
Children?:number,
/** The attack power
*/
Attack:number,
/** The defense power
*/
Defense:number
},
["EffectCard"]: {
__typename?: "EffectCard";
effectSize?:number,
name?:string
},
["Mutation"]: {
__typename?: "Mutation";
/** add Card to Cards database
*/
addCard?:PartialObjects["Card"]
},
["Nameable"]:{
name?:string
} & (PartialObjects["Card"] | PartialObjects["CardStack"] | PartialObjects["EffectCard"] | PartialObjects["SpecialCard"]),
["Query"]: {
__typename?: "Query";
cardById?:PartialObjects["Card"],
/** Draw a card
*/
drawCard?:PartialObjects["Card"],
drawChangeCard?:PartialObjects["ChangeCard"],
/** list All Cards availble
*/
listCards?:PartialObjects["Card"][],
myStacks?:PartialObjects["CardStack"][],
nameables?:PartialObjects["Nameable"][]
},
/** Aws S3 File */
["S3Object"]: {
__typename?: "S3Object";
bucket?:string,
key?:string,
region?:string
},
["SpecialCard"]: {
__typename?: "SpecialCard";
effect?:string,
name?:string
},
["SpecialSkills"]:SpecialSkills
}
/** Card used in card game
*/
export type Card = {
__typename?: "Card",
/** The attack power
*/
Attack:number,
/** How many children the greek god had
*/
Children?:number,
/** The defense power
*/
Defense:number,
/** Attack other cards on the table , returns Cards after attack
*/
attack?:Card[],
/** Put your description here */
cardImage?:S3Object,
/** Description of a card
*/
description:string,
id:string,
image:string,
/** The name of a card
*/
name:string,
skills?:SpecialSkills[]
}
/** Stack of cards */
export type CardStack = {
__typename?: "CardStack",
cards?:Card[],
name:string
}
export type ChangeCard = {
__union:SpecialCard | EffectCard;
__resolve:{
['...on SpecialCard']: SpecialCard;
['...on EffectCard']: EffectCard;
}
}
/** create card inputs
*/
export type createCard = {
/** input skills */
skills?:SpecialSkills[],
/** The name of a card
*/
name:string,
/** Description of a card
*/
description:string,
/** How many children the greek god had
*/
Children?:number,
/** The attack power
*/
Attack:number,
/** The defense power
*/
Defense:number
}
export type EffectCard = {
__typename?: "EffectCard",
effectSize:number,
name:string
}
export type Mutation = {
__typename?: "Mutation",
/** add Card to Cards database
*/
addCard:Card
}
export type Nameable = {
__interface:{
name:string
};
__resolve:{
['...on Card']: Card;
['...on CardStack']: CardStack;
['...on EffectCard']: EffectCard;
['...on SpecialCard']: SpecialCard;
}
}
export type Query = {
__typename?: "Query",
cardById?:Card,
/** Draw a card
*/
drawCard:Card,
drawChangeCard:ChangeCard,
/** list All Cards availble
*/
listCards:Card[],
myStacks?:CardStack[],
nameables:Nameable[]
}
/** Aws S3 File */
export type S3Object = {
__typename?: "S3Object",
bucket:string,
key:string,
region:string
}
export type SpecialCard = {
__typename?: "SpecialCard",
effect:string,
name:string
}
export enum SpecialSkills {
THUNDER = "THUNDER",
RAIN = "RAIN",
FIRE = "FIRE"
}
type Func = (...args: P) => R;
type AnyFunc = Func;
type WithTypeNameValue = T & {
__typename?: true;
};
type AliasType = WithTypeNameValue & {
__alias?: Record>;
};
type NotUndefined = T extends undefined ? never : T;
export type ResolverType = NotUndefined;
export type ArgsType = F extends Func ? P : never;
interface GraphQLResponse {
data?: Record;
errors?: Array<{
message: string;
}>;
}
export type ValuesOf = T[keyof T];
export type MapResolve = SRC extends {
__interface: infer INTERFACE;
__resolve: Record & infer IMPLEMENTORS;
}
?
ValuesOf<{
[k in (keyof SRC['__resolve'] & keyof DST)]: ({
[rk in (keyof SRC['__resolve'][k] & keyof DST[k])]: LastMapTypeSRCResolver
} & {
__typename?: SRC['__resolve'][k]['__typename']
})
}>
:
never;
export type MapInterface = SRC extends {
__interface: infer INTERFACE;
__resolve: Record & infer IMPLEMENTORS;
}
?
(MapResolve extends never ? {} : MapResolve) & {
[k in (keyof SRC['__interface'] & keyof DST)]: LastMapTypeSRCResolver
} : never;
export type ValueToUnion = T extends {
__typename: infer R;
}
? {
[P in keyof Omit]: T[P] & {
__typename: R;
};
}
: T;
export type ObjectToUnion = {
[P in keyof T]: T[P];
}[keyof T];
type Anify = { [P in keyof T]?: any };
type LastMapTypeSRCResolver = SRC extends undefined
? undefined
: SRC extends Array
? LastMapTypeSRCResolver[]
: SRC extends { __interface: any; __resolve: any }
? MapInterface
: SRC extends { __union: any; __resolve: infer RESOLVE }
? ObjectToUnion>>
: DST extends boolean
? SRC
: MapType;
export type MapType, DST> = DST extends boolean
? SRC
: DST extends {
__alias: any;
}
? {
[A in keyof DST["__alias"]]: Required extends Anify<
DST["__alias"][A]
>
? MapType, DST["__alias"][A]>
: never;
} &
{
[Key in keyof Omit]: DST[Key] extends [
any,
infer PAYLOAD
]
? LastMapTypeSRCResolver
: LastMapTypeSRCResolver;
}
: {
[Key in keyof DST]: DST[Key] extends [any, infer PAYLOAD]
? LastMapTypeSRCResolver
: LastMapTypeSRCResolver;
};
type OperationToGraphQL = (o: Z | V, variables?: Record) => Promise>;
type CastToGraphQL = (
resultOfYourQuery: any
) => (o: Z | V) => MapType;
type fetchOptions = ArgsType;
export type SelectionFunction = (t: T | V) => T;
type FetchFunction = (query: string, variables?: Record) => any;
export declare function Thunder(
fn: FetchFunction
):{
query: OperationToGraphQL,mutation: OperationToGraphQL
}
export declare function Chain(
...options: fetchOptions
):{
query: OperationToGraphQL,mutation: OperationToGraphQL
}
export declare const Zeus: {
query: (o: ValueTypes["Query"]) => string,mutation: (o: ValueTypes["Mutation"]) => string
}
export declare const Cast: {
query: CastToGraphQL<
ValueTypes["Query"],
Query
>,mutation: CastToGraphQL<
ValueTypes["Mutation"],
Mutation
>
}
export declare const Selectors: {
query: SelectionFunction,mutation: SelectionFunction
}
export declare const Gql: ReturnType