GraphQL로 오프라인 노트 앱 만들기

#1.2 오프라인 아폴로 설정

정중식 2020. 1. 12. 22:54
  • 아폴로 부스트로 하면 자동으로 셋업해주지만 지금의 프로젝트같은 경우는 제대로 동작하지 않을것이다 왜냐면 오프라인 즉 로컬로만 작업을 하기때문인데, 아폴로부스트는 http링크 같은걸 설정해줘야해서, 우리는 수동으로 코드를 써줬다.

- index.js

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import { ApolloProvider } from "react-apollo";
import client from "./apollo";
import "./globalStyles";

ReactDOM.render(
  <ApolloProvider client={client}>
    <App />
  </ApolloProvider>,
  document.getElementById("root")
);

 

- clientState.js

export const defaults = {};
export const resolvers = {};
export const typeDefs = {};

 

- apollo.js

import { ApolloClient } from "apollo-client";
import { InMemoryCache } from "apollo-cache-inmemory";
import { withClientState } from "apollo-link-state";
import { ApolloLink } from "apollo-link";

import { typeDefs, defaults, resolvers } from "./clientState";

const cache = new InMemoryCache();

const stateLink = withClientState({
  cache,
  typeDefs,
  defaults,
  resolvers
});

const client = new ApolloClient({
  cache,
  link: ApolloLink.from([stateLink])
});

export default client;