-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathinstall-libraries-from-cdn.js
35 lines (28 loc) · 1.18 KB
/
install-libraries-from-cdn.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
const _ = require('lodash/fp');
const { install, getVersionsToInstall, repositories } = require('./utils/installer');
let libraries;
try {
libraries = require('./libraries');
} catch(e) {
console.error('No ./libraries.json file found.');
process.exit(1);
}
const cdnLibraries = _.get('jsDelivr', libraries);
const npmLibraries = _.get('npm', libraries);
if (!npmLibraries && !cdnLibraries) { console.error('Nothing to install'); process.exit(1); }
const npmInstallations = _.map((libraryName) => (
install(repositories.NPM, libraryName, './build', Promise.resolve(_.map(version => ({ version }), _.get(libraryName, npmLibraries))))
), _.keys(npmLibraries, npmLibraries));
const cdnInstallations = _.map((libraryName) => (
install(repositories.CDN, libraryName, './build', getVersionsToInstall(libraryName, _.get(libraryName, cdnLibraries)))
), _.keys(cdnLibraries, cdnLibraries));
Promise.all(npmInstallations.concat(cdnInstallations))
.then(() => {
console.log('');
console.log(`🙌 Great success! 🙌`);
console.log('');
})
.catch(() => {
console.log(`💩 One of the installs failed 💩`);
process.exit(1);
});