summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorWes Bos <wesbos@gmail.com>2018-01-30 12:41:01 -0500
committerWes Bos <wesbos@gmail.com>2018-01-30 12:41:01 -0500
commitcd0b07b3adb36fb5ec098f9e511ab45d774fee7b (patch)
treea203e5010219ccea1acc6bbd2c0a4bcfa0a78615 /lib
parent0a1648bf47490b312169c531aeb51ef4725e8d2e (diff)
Move to Prisma Backend
Diffstat (limited to 'lib')
-rw-r--r--lib/formatMoney.js3
-rw-r--r--lib/image.js6
-rw-r--r--lib/initApollo.js62
-rw-r--r--lib/withData.js76
4 files changed, 0 insertions, 147 deletions
diff --git a/lib/formatMoney.js b/lib/formatMoney.js
deleted file mode 100644
index edddf48..0000000
--- a/lib/formatMoney.js
+++ /dev/null
@@ -1,3 +0,0 @@
-export default function(amount) {
- return '$' + (amount / 100).toLocaleString();
-}
diff --git a/lib/image.js b/lib/image.js
deleted file mode 100644
index 5b6efb9..0000000
--- a/lib/image.js
+++ /dev/null
@@ -1,6 +0,0 @@
-import { imageEndpoint } from '../config';
-
-export default function(image, width = 300, height = 300) {
- if (!image || !image.secret) return '';
- return `${imageEndpoint}/${image.secret}/${width}x${height}`;
-}
diff --git a/lib/initApollo.js b/lib/initApollo.js
deleted file mode 100644
index 35f5e08..0000000
--- a/lib/initApollo.js
+++ /dev/null
@@ -1,62 +0,0 @@
-import { ApolloClient } from 'apollo-client';
-import { ApolloLink, concat } from 'apollo-link';
-import { HttpLink } from 'apollo-link-http';
-import { InMemoryCache } from 'apollo-cache-inmemory';
-import fetch from 'isomorphic-fetch';
-import { endpoint } from '../config';
-
-let apolloClient = null;
-
-// Polyfill fetch() on the server (used by apollo-client)
-if (!process.browser) {
- global.fetch = fetch;
-}
-
-function create(initialState) {
- // First we create three peices of middleware
-
- // 1. Create a link for local state to be managed in Apollo
-
-
- // 1. connect to our GraphQL API
- const httpLink = new HttpLink({
- uri: endpoint, // Server URL (must be absolute)
- opts: {
- credentials: 'same-origin',
- },
- });
-
- // 2. One to tack on our auth token on each request
- const authMiddleware = new ApolloLink((operation, forward) => {
- const headers = {};
-
- if (typeof localStorage !== 'undefined' && localStorage.getItem('auth0IdToken')) {
- headers.authorization = `Bearer ${localStorage.getItem('auth0IdToken')}`;
- }
-
- operation.setContext({ headers });
- return forward(operation);
- });
-
- return new ApolloClient({
- connectToDevTools: process.browser,
- ssrMode: !process.browser, // Disables forceFetch on the server (so queries are only run once)
- link: concat(authMiddleware, httpLink),
- cache: new InMemoryCache().restore(initialState || {}),
- });
-}
-
-export default function initApollo(initialState) {
- // Make sure to create a new client for every server-side request so that data
- // isn't shared between connections (which would be bad)
- if (!process.browser) {
- return create(initialState);
- }
-
- // Reuse client on the client-side
- if (!apolloClient) {
- apolloClient = create(initialState);
- }
-
- return apolloClient;
-}
diff --git a/lib/withData.js b/lib/withData.js
deleted file mode 100644
index 0c68f49..0000000
--- a/lib/withData.js
+++ /dev/null
@@ -1,76 +0,0 @@
-import React from 'react';
-import PropTypes from 'prop-types';
-import { ApolloProvider, getDataFromTree } from 'react-apollo';
-import Head from 'next/head';
-import initApollo from './initApollo';
-
-// Gets the display name of a JSX component for dev tools
-function getComponentDisplayName(Component) {
- return Component.displayName || Component.name || 'Unknown';
-}
-
-export default ComposedComponent =>
- class WithData extends React.Component {
- static displayName = `WithData(${getComponentDisplayName(ComposedComponent)})`;
- static propTypes = {
- serverState: PropTypes.object.isRequired,
- };
-
- static async getInitialProps(ctx) {
- let serverState = { apollo: {} };
-
- // Evaluate the composed component's getInitialProps()
- let composedInitialProps = {};
- if (ComposedComponent.getInitialProps) {
- composedInitialProps = await ComposedComponent.getInitialProps(ctx);
- }
-
- // Run all GraphQL queries in the component tree
- // and extract the resulting data
- if (!process.browser) {
- const apollo = initApollo();
- // Provide the `url` prop data in case a GraphQL query uses it
- const url = { query: ctx.query, pathname: ctx.pathname };
- try {
- // Run all GraphQL queries
- await getDataFromTree(
- <ApolloProvider client={apollo}>
- <ComposedComponent url={url} {...composedInitialProps} />
- </ApolloProvider>
- );
- } catch (error) {
- // Prevent Apollo Client GraphQL errors from crashing SSR.
- // Handle them in components via the data.error prop:
- // http://dev.apollodata.com/react/api-queries.html#graphql-query-data-error
- }
- // getDataFromTree does not call componentWillUnmount
- // head side effect therefore need to be cleared manually
- Head.rewind();
-
- // Extract query data from the Apollo store
- serverState = {
- apollo: {
- data: apollo.cache.extract(),
- },
- };
- }
-
- return {
- serverState,
- ...composedInitialProps,
- };
- }
-
- constructor(props) {
- super(props);
- this.apollo = initApollo(this.props.serverState.apollo.data);
- }
-
- render() {
- return (
- <ApolloProvider client={this.apollo}>
- <ComposedComponent {...this.props} />
- </ApolloProvider>
- );
- }
- };