Implemented recursive calls and markdown export

This commit is contained in:
Nicolai Ort 2020-12-31 16:15:36 +01:00
parent 8103febbb6
commit d0e84f7391

View File

@ -2,18 +2,18 @@ const fs = require('fs');
const args = process.argv.slice(2); const args = process.argv.slice(2);
function parsePackageInfo(path){ function parsePackageInfo(path) {
const packagecontents = JSON.parse(fs.readFileSync(path, { encoding: 'utf-8' })); const packagecontents = JSON.parse(fs.readFileSync(path, { encoding: 'utf-8' }));
packagecontents.dependencies = Object.entries(packagecontents.dependencies || {}); packagecontents.dependencies = Object.entries(packagecontents.dependencies || {});
packagecontents.devDependencies = Object.entries(packagecontents.devDependencies || {}); packagecontents.devDependencies = Object.entries(packagecontents.devDependencies || {});
return packagecontents; return packagecontents;
} }
function mergeDependencies(packageInfo){ function mergeDependencies(packageInfo) {
return [].concat(packageInfo.dependencies, packageInfo.devDependencies); return [].concat(packageInfo.dependencies, packageInfo.devDependencies);
} }
function getDependencyLicenseInfo(all_dependencies, recursive){ function getDependencyLicenseInfo(all_dependencies, recursive) {
let all = []; let all = [];
all_dependencies.forEach((p) => { all_dependencies.forEach((p) => {
@ -37,7 +37,7 @@ function getDependencyLicenseInfo(all_dependencies, recursive){
licensetext licensetext
}; };
all.push(info); all.push(info);
if(recursive == true){ if (recursive == true) {
all.push(...getDependencyLicenseInfo(packageinfo.dependencies, true)); all.push(...getDependencyLicenseInfo(packageinfo.dependencies, true));
} }
}); });
@ -46,9 +46,20 @@ function getDependencyLicenseInfo(all_dependencies, recursive){
const packageInfo = parsePackageInfo(`./package.json`); const packageInfo = parsePackageInfo(`./package.json`);
const all = getDependencyLicenseInfo(mergeDependencies(packageInfo), args.includes("--recursive")); const all = getDependencyLicenseInfo(mergeDependencies(packageInfo), args.includes("--recursive"));
if(args.includes("--pretty")){ if (args.includes("--json")) {
fs.writeFileSync('./licenses.json', JSON.stringify(all, null, 4)); if (args.includes("--pretty")) {
fs.writeFileSync('./licenses.json', JSON.stringify(all, null, 4));
}
else {
fs.writeFileSync('./licenses.json', JSON.stringify(all));
}
} }
else{ if (args.includes("--md")) {
fs.writeFileSync('./licenses.json', JSON.stringify(all)); fs.writeFileSync('./licenses.md', "");
all.forEach((p) => {
fs.appendFileSync("./licenses.md", `# ${p.name}\n**Author**: ${p.author}\n**Repo**: ${p.repo}\n**License**: ${p.license}\n**Description**: ${p.description}\n## License Text\n${p.licensetext} \n\n`)
});
}
else {
return all;
} }