當前位置: 首頁>>代碼示例>>TypeScript>>正文


TypeScript apollo-link-http.createHttpLink函數代碼示例

本文整理匯總了TypeScript中apollo-link-http.createHttpLink函數的典型用法代碼示例。如果您正苦於以下問題:TypeScript createHttpLink函數的具體用法?TypeScript createHttpLink怎麽用?TypeScript createHttpLink使用的例子?那麽, 這裏精選的函數代碼示例或許可以為您提供幫助。


在下文中一共展示了createHttpLink函數的7個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的TypeScript代碼示例。

示例1: createHttpLink

export const createExchangeLink = () => {
  const httpLink = createHttpLink({
    fetch,
    uri: urljoin(EXCHANGE_API_BASE, "graphql"),
  })

  const authMiddleware = setContext((_request, context) => {
    const locals = context.graphqlContext && context.graphqlContext.res.locals
    const tokenLoader = locals && locals.dataLoaders.exchangeTokenLoader
    const headers = { ...(locals && requestIDHeaders(locals.requestIDs)) }
    // If a token loader exists for Exchange (i.e. this is an authenticated request), use that token to make
    // authenticated requests to Exchange.
    if (tokenLoader) {
      return tokenLoader().then(({ token }) => {
        return {
          headers: Object.assign(headers, { Authorization: `Bearer ${token}` }),
        }
      })
    }
    // Exchange uses no authentication for now
    return { headers }
  })

  return middlewareLink.concat(authMiddleware).concat(httpLink)
}
開發者ID:xtina-starr,項目名稱:metaphysics,代碼行數:25,代碼來源:link.ts

示例2: ApolloClient

  .get('/oauth', async ctx => {
    const { code, path, state } = ctx.query

    if (!state || state !== ctx.session.uuid) {
      return ctx.throw('invalid oauth redirect')
    }

    const { data } = await axios.post(
      'https://github.com/login/oauth/access_token',
      {
        client_id: process.env.GITHUB_CLIENT_ID,
        client_secret: process.env.GITHUB_CLIENT_SECRET,
        code,
        state,
      },
      {
        headers: {
          Accept: 'application/json',
        },
      },
    )

    if (data.error) {
      return ctx.throw(data)
    }

    const token = data.access_token

    ctx.session.token = token

    const apollo = new ApolloClient({
      link: createHttpLink({
        uri: 'https://api.github.com/graphql',
        headers: {
          Authorization: `bearer ${token}`,
        },
      }),
      cache: new InMemoryCache(),
    })

    const { data: user } = await apollo.query<{ viewer: User }>({
      query: gql`
        query {
          viewer {
            avatarUrl
            id
            login
            name
            url
            websiteUrl
          }
        }
      `,
    })

    ctx.session.user = user.viewer

    ctx.redirect(`${path.replace(/ /g, '%2B')}`)
  })
開發者ID:JounQin,項目名稱:blog,代碼行數:59,代碼來源:index.ts

示例3: ApolloClient

export const createApollo = () =>
  new ApolloClient({
    link: createHttpLink({
      uri: SERVER_PREFIX + 'graphql',
    }),
    cache: new InMemoryCache(),
    ssrMode: __SERVER__,
  })
開發者ID:JounQin,項目名稱:blog,代碼行數:8,代碼來源:apollo.ts

示例4: createHttpLink

import {ApolloClient} from "apollo-client";
import {createHttpLink} from "apollo-link-http";
import {setContext} from "apollo-link-context";
import {InMemoryCache} from "apollo-cache-inmemory";
import {store} from "@/store";

const httpLink = createHttpLink({
    uri: process.env.NODE_ENV==="development"?"http://127.0.0.1:3000/api/graphql":"https://budgetarium.herokuapp.com/api/graphql",
});
const authLinkAccess = setContext((_: any, {headers}: any) => {
    // get the authentication token from local storage if it exists
    if (store.getState().auth.accessToken) {
        const token = (store.getState().auth.accessToken as any).token;
        // return the headers to the context so httpLink can read them
        return {
            headers: {
                ...headers,
                authorization: token ? `Bearer ${token}` : "",
            }
        };
    } else {
        return {
            headers: {
                ...headers,
            }
        };
    }
});


const authLinkRefresh = setContext((_: any, {headers}: any) => {
開發者ID:ZulusK,項目名稱:Budgetarium,代碼行數:31,代碼來源:index.ts

示例5: createHttpLink

 http: ({ headers }) =>
   createHttpLink({
     uri: typeof window === 'undefined' ? process.env.API : window.__API__,
     credentials: 'same-origin',
     headers,
   }),
開發者ID:fubhy,項目名稱:drupal-decoupled-app,代碼行數:6,代碼來源:withApollo.ts

示例6: ApolloClient

import { ApolloClient } from "apollo-boost"
import { InMemoryCache } from "apollo-cache-inmemory"
import gql from "graphql-tag"
import { createHttpLink } from "apollo-link-http"

const client = new ApolloClient({
  cache: new InMemoryCache(),
  link: createHttpLink({
    fetch: require("node-fetch"),
    headers: {
      foo: "bar",
    },
    uri: "http://localhost:4000/graphql",
  }),
})

export function query(): any {
  return client
    .query({
      query: gql`
        query HelloQuery {
          hello
        }
      `,
      variables: {
        foo: "bar",
      },
    })
    .then((result: any) => result.data)
}
開發者ID:pact-foundation,項目名稱:pact-js,代碼行數:30,代碼來源:consumer.ts

示例7: getEnvironmentVariables

import { ApolloClient } from 'apollo-client';
import { ApolloLink } from 'apollo-link';
import { createHttpLink } from 'apollo-link-http';
import { RestLink } from 'apollo-link-rest';
import { setContext } from 'apollo-link-context';
import { InMemoryCache } from 'apollo-cache-inmemory';
import { getEnvironmentVariables } from './utils';
import AuthService from './utils/authentication/authService';

const { graphcoolApi, devMode } = getEnvironmentVariables();
if (process.env.NODE_ENV === 'development') {
  console.log('Trying to connect to: ', graphcoolApi);
}

const httpLink = createHttpLink({ uri: graphcoolApi });
const middlewareLink = setContext(() => {
  let authHeader;
  const bearerToken = AuthService.getBearerToken();
  if (bearerToken) {
    authHeader = `Bearer ${bearerToken}`;
  }

  return {
    headers: {
      authorization: authHeader || null
      // TODO: Figure out if we should include a nonce header for graphcool
    }
  };
});

// Create a RestLink for the REST API
開發者ID:codefordenver,項目名稱:members,代碼行數:31,代碼來源:createApolloClient.ts


注:本文中的apollo-link-http.createHttpLink函數示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。