forked from moltin/gatsby-demo-store
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathgatsby-config.js
109 lines (108 loc) · 2.88 KB
/
gatsby-config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
require('dotenv').config()
module.exports = {
siteMetadata: {
title: 'I Love Lamp',
description:
'I love carpet. I love desk. I love lamp. I Love Lamp is the official Moltin demo store.',
author: '@moltin',
url: process.env.DEPLOY_PRIME_URL || process.env.URL || 'localhost:8000'
},
plugins: [
'gatsby-plugin-react-helmet',
{
resolve: 'gatsby-source-filesystem',
options: {
name: 'images',
path: `${__dirname}/src/images`
}
},
'gatsby-transformer-sharp',
'gatsby-plugin-sharp',
{
resolve: 'gatsby-plugin-manifest',
options: {
name: 'gatsby-starter-default',
short_name: 'starter',
start_url: '/',
background_color: '#131313',
theme_color: '#131313',
display: 'minimal-ui',
icon: 'src/images/i-love-lamp-icon.png'
}
},
{
resolve: '@moltin/gatsby-source-moltin',
options: {
client_id: process.env.GATSBY_MOLTIN_CLIENT_ID
}
},
'gatsby-plugin-postcss',
{
resolve: 'gatsby-plugin-purgecss',
options: {
tailwind: true,
purgeOnly: ['src/styles/main.css'],
whitelistPatterns: ['/^ap-/', '^algolia-', '/^ais-']
}
},
'gatsby-plugin-stripe',
{
resolve: `gatsby-plugin-algolia`,
options: {
appId: process.env.GATSBY_ALGOLIA_APP_ID,
apiKey: process.env.ALGOLIA_ADMIN_KEY,
queries: [
{
query: `
{
allMoltinProduct {
nodes {
objectID: id
name
slug
imgUrl: mainImageHref
meta {
display_price {
with_tax {
formatted
}
}
}
categories {
name
}
brands {
name
}
collections {
name
}
}
}
}
`,
transformer: ({
data: {
allMoltinProduct: { nodes }
}
}) =>
nodes.map(
({ meta, categories, brands, collections, ...rest }) => ({
...rest,
price: meta.display_price.with_tax.formatted,
categories: categories
? categories.map(({ name }) => name)
: [],
brands: brands ? brands.map(({ name }) => name) : [],
collections: collections
? collections.map(({ name }) => name)
: []
})
),
indexName: process.env.GATSBY_ALGOLIA_INDEX_NAME
}
]
}
}
]
}