-
Notifications
You must be signed in to change notification settings - Fork 3
/
gatsby-node.js
74 lines (72 loc) · 1.6 KB
/
gatsby-node.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
const { GraphQLClient, gql } = require("graphql-request");
// const fetch = require("isomorphic-unfetch")
require("dotenv").config({
path: `.env.${process.env.NODE_ENV}`,
})
exports.onCreateBabelConfig = ({ actions }) => {
actions.setBabelPlugin({
name: "babel-plugin-import",
options: {
libraryName: "antd",
style: true,
},
});
};
function replacerFN (result) {
const data = result.map(country => {
let {n ,r} = country;
let replacedResults = r.map(date => {
let {dt,d,c,r} = date
return {
date: dt,
deaths: d,
confirmed: c,
recovered: r
}
})
return {
name:n,
results: replacedResults
}
})
return data
}
const COUNTRY_QUERY = gql`
query {
countries {
n: name
r: results {
dt: date(format: "yyyy/MM/dd")
d: deaths
c :confirmed
r: recovered
}
}
}
`;
exports.onCreatePage = async ({ page, actions }) => {
const graphQLClient = new GraphQLClient('https://corona-server.svirins.vercel.app/api')
// url: 'https://corona-server.svirins.vercel.app/api',
// credentials: "include",
// mode: "cors"
// });
if (
page.path === "/" ||
page.path === "/map" ||
page.path === "/map/" ||
page.path === "/data" ||
page.path === "/data/"
) {
const { createPage, deletePage } = actions;
deletePage(page);
const result = await graphQLClient.request(COUNTRY_QUERY);
const data = replacerFN(result.countries);
createPage({
...page,
context: {
...page.context,
data,
},
});
}
};