parent
aee0919250
commit
86c877989a
@ -1,22 +0,0 @@ |
|||||||
// ApolloClient.js
|
|
||||||
import { ApolloClient, InMemoryCache, createHttpLink, ApolloLink } from '@apollo/client'; |
|
||||||
|
|
||||||
export const getApolloLink = (token: string, uri = 'https://api.github.com/graphql')=>{ |
|
||||||
const authLink = new ApolloLink((operation, forward) => { |
|
||||||
operation.setContext({ |
|
||||||
headers: { |
|
||||||
Authorization: `Bearer ${token}`, |
|
||||||
}, |
|
||||||
}); |
|
||||||
return forward(operation); |
|
||||||
}); |
|
||||||
const httpLink = createHttpLink({ |
|
||||||
uri, // Replace with your GraphQL endpoint
|
|
||||||
}); |
|
||||||
return authLink.concat(httpLink) |
|
||||||
} |
|
||||||
|
|
||||||
export const client = new ApolloClient({ |
|
||||||
link: getApolloLink(''), |
|
||||||
cache: new InMemoryCache(), |
|
||||||
}); |
|
@ -1,20 +0,0 @@ |
|||||||
import { CodegenConfig } from '@graphql-codegen/cli'; |
|
||||||
|
|
||||||
const config: CodegenConfig = { |
|
||||||
schema: 'https://docs.github.com/public/schema.docs.graphql', |
|
||||||
// this assumes that all your source files are in a top-level `src/` directory - you might need to adjust this to your file structure
|
|
||||||
documents: ['./libs/remix-ui/git/src/**/*.{ts,tsx}'], |
|
||||||
generates: { |
|
||||||
'./libs/remix-ui/git/src/types/': { |
|
||||||
preset: 'client', |
|
||||||
plugins: [], |
|
||||||
presetConfig: { |
|
||||||
gqlTagName: 'gql', |
|
||||||
} |
|
||||||
} |
|
||||||
}, |
|
||||||
overwrite: true, |
|
||||||
ignoreNoDocuments: true, |
|
||||||
}; |
|
||||||
|
|
||||||
export default config; |
|
@ -1,67 +0,0 @@ |
|||||||
/* eslint-disable */ |
|
||||||
import { ResultOf, DocumentTypeDecoration, TypedDocumentNode } from '@graphql-typed-document-node/core'; |
|
||||||
import { FragmentDefinitionNode } from 'graphql'; |
|
||||||
import { Incremental } from './graphql'; |
|
||||||
|
|
||||||
|
|
||||||
export type FragmentType<TDocumentType extends DocumentTypeDecoration<any, any>> = TDocumentType extends DocumentTypeDecoration< |
|
||||||
infer TType, |
|
||||||
any |
|
||||||
> |
|
||||||
? [TType] extends [{ ' $fragmentName'?: infer TKey }] |
|
||||||
? TKey extends string |
|
||||||
? { ' $fragmentRefs'?: { [key in TKey]: TType } } |
|
||||||
: never |
|
||||||
: never |
|
||||||
: never; |
|
||||||
|
|
||||||
// return non-nullable if `fragmentType` is non-nullable
|
|
||||||
export function useFragment<TType>( |
|
||||||
_documentNode: DocumentTypeDecoration<TType, any>, |
|
||||||
fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> |
|
||||||
): TType; |
|
||||||
// return nullable if `fragmentType` is nullable
|
|
||||||
export function useFragment<TType>( |
|
||||||
_documentNode: DocumentTypeDecoration<TType, any>, |
|
||||||
fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | null | undefined |
|
||||||
): TType | null | undefined; |
|
||||||
// return array of non-nullable if `fragmentType` is array of non-nullable
|
|
||||||
export function useFragment<TType>( |
|
||||||
_documentNode: DocumentTypeDecoration<TType, any>, |
|
||||||
fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> |
|
||||||
): ReadonlyArray<TType>; |
|
||||||
// return array of nullable if `fragmentType` is array of nullable
|
|
||||||
export function useFragment<TType>( |
|
||||||
_documentNode: DocumentTypeDecoration<TType, any>, |
|
||||||
fragmentType: ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined |
|
||||||
): ReadonlyArray<TType> | null | undefined; |
|
||||||
export function useFragment<TType>( |
|
||||||
_documentNode: DocumentTypeDecoration<TType, any>, |
|
||||||
fragmentType: FragmentType<DocumentTypeDecoration<TType, any>> | ReadonlyArray<FragmentType<DocumentTypeDecoration<TType, any>>> | null | undefined |
|
||||||
): TType | ReadonlyArray<TType> | null | undefined { |
|
||||||
return fragmentType as any; |
|
||||||
} |
|
||||||
|
|
||||||
|
|
||||||
export function makeFragmentData< |
|
||||||
F extends DocumentTypeDecoration<any, any>, |
|
||||||
FT extends ResultOf<F> |
|
||||||
>(data: FT, _fragment: F): FragmentType<F> { |
|
||||||
return data as FragmentType<F>; |
|
||||||
} |
|
||||||
export function isFragmentReady<TQuery, TFrag>( |
|
||||||
queryNode: DocumentTypeDecoration<TQuery, any>, |
|
||||||
fragmentNode: TypedDocumentNode<TFrag>, |
|
||||||
data: FragmentType<TypedDocumentNode<Incremental<TFrag>, any>> | null | undefined |
|
||||||
): data is FragmentType<typeof fragmentNode> { |
|
||||||
const deferredFields = (queryNode as { __meta__?: { deferredFields: Record<string, (keyof TFrag)[]> } }).__meta__ |
|
||||||
?.deferredFields; |
|
||||||
|
|
||||||
if (!deferredFields) return true; |
|
||||||
|
|
||||||
const fragDef = fragmentNode.definitions[0] as FragmentDefinitionNode | undefined; |
|
||||||
const fragName = fragDef?.name?.value; |
|
||||||
|
|
||||||
const fields = (fragName && deferredFields[fragName]) || []; |
|
||||||
return fields.length > 0 && fields.every(field => data && field in data); |
|
||||||
} |
|
@ -1,42 +0,0 @@ |
|||||||
/* eslint-disable */ |
|
||||||
import * as types from './graphql'; |
|
||||||
import { TypedDocumentNode as DocumentNode } from '@graphql-typed-document-node/core'; |
|
||||||
|
|
||||||
/** |
|
||||||
* Map of all GraphQL operations in the project. |
|
||||||
* |
|
||||||
* This map has several performance disadvantages: |
|
||||||
* 1. It is not tree-shakeable, so it will include all operations in the project. |
|
||||||
* 2. It is not minifiable, so the string of a GraphQL query will be multiple times inside the bundle. |
|
||||||
* 3. It does not support dead code elimination, so it will add unused operations. |
|
||||||
* |
|
||||||
* Therefore it is highly recommended to use the babel or swc plugin for production. |
|
||||||
*/ |
|
||||||
const documents = { |
|
||||||
"\n query GetCommits($name: String!, $owner: String!, $cursor: String, $limit: Int = 10) {\n repository(name: $name, owner: $owner) {\n ref(qualifiedName: \"master\") {\n target {\n ... on Commit {\n history(first: $limit, after: $cursor) {\n pageInfo {\n endCursor\n hasNextPage\n }\n edges {\n node {\n oid\n messageHeadline\n author {\n name\n date\n }\n }\n }\n }\n }\n }\n }\n }\n }\n": types.GetCommitsDocument, |
|
||||||
}; |
|
||||||
|
|
||||||
/** |
|
||||||
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. |
|
||||||
* |
|
||||||
* |
|
||||||
* @example |
|
||||||
* ```ts
|
|
||||||
* const query = gql(`query GetUser($id: ID!) { user(id: $id) { name } }`); |
|
||||||
* ``` |
|
||||||
* |
|
||||||
* The query argument is unknown! |
|
||||||
* Please regenerate the types. |
|
||||||
*/ |
|
||||||
export function gql(source: string): unknown; |
|
||||||
|
|
||||||
/** |
|
||||||
* The gql function is used to parse GraphQL queries into a document that can be used by GraphQL clients. |
|
||||||
*/ |
|
||||||
export function gql(source: "\n query GetCommits($name: String!, $owner: String!, $cursor: String, $limit: Int = 10) {\n repository(name: $name, owner: $owner) {\n ref(qualifiedName: \"master\") {\n target {\n ... on Commit {\n history(first: $limit, after: $cursor) {\n pageInfo {\n endCursor\n hasNextPage\n }\n edges {\n node {\n oid\n messageHeadline\n author {\n name\n date\n }\n }\n }\n }\n }\n }\n }\n }\n }\n"): (typeof documents)["\n query GetCommits($name: String!, $owner: String!, $cursor: String, $limit: Int = 10) {\n repository(name: $name, owner: $owner) {\n ref(qualifiedName: \"master\") {\n target {\n ... on Commit {\n history(first: $limit, after: $cursor) {\n pageInfo {\n endCursor\n hasNextPage\n }\n edges {\n node {\n oid\n messageHeadline\n author {\n name\n date\n }\n }\n }\n }\n }\n }\n }\n }\n }\n"]; |
|
||||||
|
|
||||||
export function gql(source: string) { |
|
||||||
return (documents as any)[source] ?? {}; |
|
||||||
} |
|
||||||
|
|
||||||
export type DocumentType<TDocumentNode extends DocumentNode<any, any>> = TDocumentNode extends DocumentNode< infer TType, any> ? TType : never; |
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in new issue