-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathfetch-brandai-assets.js
60 lines (53 loc) · 2.04 KB
/
fetch-brandai-assets.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
const path = require('path'),
dl = require('download');
const filenameIcon = 'icons.zip',
filenameStyle = '_variables-brandai.scss',
filenameLogos = 'logos.zip',
pathIcons = path.resolve('src', 'assets', 'tmp'),
pathLogos = path.resolve('src', 'assets', 'img', 'logos'),
pathStyle = path.resolve('src', 'assets', 'scss', 'variables'),
assets = {
key: 'rJ2E0pU9Z',
icons: 'https://assets.brand.ai/projectzero/project-zero/icons.zip',
logos: 'https://assets.brand.ai/projectzero/project-zero/logos.zip',
style: 'https://assets.brand.ai/projectzero/project-zero/_style-params.scss'
};
const execDownload = (url, key, dest, filename, extract) => {
return dl(url + '?key=' + key, dest, { extract: extract, filename: filename })
.catch(error => {
return Promise.reject('Download failed, ' + error);
});
};
const fetchAssets = (icons, logos, styles) => {
Promise.all([fetchIcons(icons, filenameIcon), fetchLogos(logos, filenameLogos), fetchStyle(styles, filenameStyle)])
.then(() => {
console.log('Assets imported successfully');
}).catch(error => {
return Promise.reject('Failed to fetch assets, ' + error);
});
};
const fetchIcons = function(path, filename) {
return execDownload(assets.icons, assets.key, path, filename, true)
.then(() => {
console.log('Icon download and extraction complete');
}).catch(error => {
return Promise.reject('Failed to download icons, ' + error);
});
};
const fetchLogos = function(path, filename) {
return execDownload(assets.logos, assets.key, path, filename, true)
.then(() => {
console.log('Image download and extraction complete');
}).catch(error => {
return Promise.reject('Failed to download images, ' + error);
});
};
const fetchStyle = function(path, filename) {
return execDownload(assets.style, assets.key, path, filename, false)
.then(() => {
console.log('Style download complete');
}).catch(error => {
return Promise.reject('Failed to download style, ' + error);
});
};
fetchAssets(pathIcons, pathLogos, pathStyle);