UNPKG

@usekana/client-kana-js

Version:
126 lines (109 loc) 3.72 kB
import { GraphQLClient } from 'graphql-request'; import * as Dom from 'graphql-request/dist/types.dom'; import gql from 'graphql-tag'; export type Maybe<T> = T | null; export type InputMaybe<T> = Maybe<T>; export type Exact<T extends { [key: string]: unknown }> = { [K in keyof T]: T[K] }; export type MakeOptional<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]?: Maybe<T[SubKey]> }; export type MakeMaybe<T, K extends keyof T> = Omit<T, K> & { [SubKey in K]: Maybe<T[SubKey]> }; /** All built-in and custom scalars, mapped to their actual values */ export type Scalars = { ID: string; String: string; Boolean: boolean; Int: number; Float: number; Map: any; }; export type Consumption = { budget?: Maybe<Scalars['Int']>; overageEnabled: Scalars['Boolean']; used: Scalars['Int']; }; export type Feature = { consumption?: Maybe<Consumption>; id: Scalars['String']; metadata?: Maybe<Scalars['Map']>; name: Scalars['String']; type: FeatureType; unitLabel?: Maybe<Scalars['String']>; unitLabelPlural?: Maybe<Scalars['String']>; }; export enum FeatureType { Binary = 'BINARY', Consumable = 'CONSUMABLE' } export type Group = { email?: Maybe<Scalars['String']>; id: Scalars['String']; metadata?: Maybe<Scalars['Map']>; name?: Maybe<Scalars['String']>; subscriptions: Array<PackageSubscription>; }; export type Package = { features: Array<Feature>; id: Scalars['String']; isAddon: Scalars['Boolean']; metadata?: Maybe<Scalars['Map']>; name: Scalars['String']; }; export type PackageSubscription = { package: Package; status: SubscriptionStatus; }; export type Query = { currentGroup: Group; }; export enum SubscriptionStatus { Active = 'ACTIVE', Cancelled = 'CANCELLED', Incomplete = 'INCOMPLETE', IncompleteExpired = 'INCOMPLETE_EXPIRED', PastDue = 'PAST_DUE', Trialing = 'TRIALING', Unpaid = 'UNPAID' } export type CurrentGroupQueryVariables = Exact<{ [key: string]: never; }>; export type CurrentGroupQuery = { currentGroup: { id: string, name?: string | null, email?: string | null, metadata?: any | null, subscriptions: Array<{ status: SubscriptionStatus, package: { id: string, name: string, isAddon: boolean, metadata?: any | null, features: Array<{ id: string, name: string, type: FeatureType, metadata?: any | null, unitLabel?: string | null, unitLabelPlural?: string | null, consumption?: { used: number, budget?: number | null, overageEnabled: boolean } | null }> } }> } }; export const CurrentGroupDocument = gql` query CurrentGroup { currentGroup { id name email metadata subscriptions { status package { id name isAddon metadata features { id name type metadata unitLabel unitLabelPlural consumption { used budget overageEnabled } } } } } } `; export type SdkFunctionWrapper = <T>(action: (requestHeaders?:Record<string, string>) => Promise<T>, operationName: string, operationType?: string) => Promise<T>; const defaultWrapper: SdkFunctionWrapper = (action, _operationName, _operationType) => action(); export function getSdk(client: GraphQLClient, withWrapper: SdkFunctionWrapper = defaultWrapper) { return { CurrentGroup(variables?: CurrentGroupQueryVariables, requestHeaders?: Dom.RequestInit["headers"]): Promise<CurrentGroupQuery> { return withWrapper((wrappedRequestHeaders) => client.request<CurrentGroupQuery>(CurrentGroupDocument, variables, {...requestHeaders, ...wrappedRequestHeaders}), 'CurrentGroup', 'query'); } }; } export type Sdk = ReturnType<typeof getSdk>;