@usekana/client-kana-js
Version:
Kana frontend JavaScript client
126 lines (109 loc) • 3.72 kB
text/typescript
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>;