Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const checker = require('license-checker');
- const request = require('request-promise-native');
- const fs = require('fs');
- checker.init({ start: './' }, async (err, packages) => {
- const csv = [];
- const process = Object.entries(packages).map(async ([packageName, info]) => {
- const sp = packageName.split('@');
- const version = sp.pop();
- const name = sp.join('@');
- const licenseFileName = info.licenseFile ? info.licenseFile.split('/').pop() : info.repository;
- let licenseFile = `${info.repository}/blob/master/${licenseFileName}`;
- try {
- await request.get(licenseFile);
- } catch (e) {
- if (![200, 429].includes(e.statusCode)) {
- licenseFile = info.repository;
- }
- }
- csv.push([name, version, info.licenses, licenseFile].join('\t'));
- });
- await Promise.all(process);
- fs.writeFileSync('lisences.csv', csv.join('\n'));
- });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement