1 | const axios = require('axios')
|
2 | const { repo, sha } = require('ci-env')
|
3 | const token = require('./token')
|
4 | const debug = require('./debug')
|
5 |
|
6 | const url = 'https://bundlesize-store.now.sh/values'
|
7 |
|
8 | let enabled = false
|
9 |
|
10 | if (repo && token) enabled = true
|
11 |
|
12 | debug('api enabled', enabled)
|
13 |
|
14 | const get = () => {
|
15 | debug('fetching values', '...')
|
16 |
|
17 | return axios
|
18 | .get(`${url}?repo=${repo}&token=${token}`)
|
19 | .then(response => {
|
20 | const values = {}
|
21 | if (response && response.data && response.data.length) {
|
22 | response.data.map(file => (values[file.path] = file.size))
|
23 | }
|
24 | debug('master values', values)
|
25 | return values
|
26 | })
|
27 | .catch(error => {
|
28 | debug('fetching failed', error.response.data)
|
29 | console.log(error)
|
30 | })
|
31 | }
|
32 |
|
33 | const set = values => {
|
34 | if (repo && token) {
|
35 | debug('saving values')
|
36 |
|
37 | axios
|
38 | .post(url, { repo, token, sha, values })
|
39 | .catch(error => console.log(error))
|
40 | }
|
41 | }
|
42 |
|
43 | const api = { enabled, set, get }
|
44 | module.exports = api
|