Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2019
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. const checker = require('license-checker');
  2. const request = require('request-promise-native');
  3. const fs = require('fs');
  4.  
  5. checker.init({ start: './' }, async (err, packages) => {
  6. const csv = [];
  7. const process = Object.entries(packages).map(async ([packageName, info]) => {
  8. const sp = packageName.split('@');
  9. const version = sp.pop();
  10. const name = sp.join('@');
  11. const licenseFileName = info.licenseFile ? info.licenseFile.split('/').pop() : info.repository;
  12. let licenseFile = `${info.repository}/blob/master/${licenseFileName}`;
  13. try {
  14. await request.get(licenseFile);
  15. } catch (e) {
  16. if (![200, 429].includes(e.statusCode)) {
  17. licenseFile = info.repository;
  18. }
  19. }
  20. csv.push([name, version, info.licenses, licenseFile].join('\t'));
  21. });
  22. await Promise.all(process);
  23. fs.writeFileSync('lisences.csv', csv.join('\n'));
  24. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement