rainbow-cli
Version:
Rainbow CLI application based on the Rainbow SDK for Node.js
35 lines (33 loc) • 1.55 kB
JavaScript
import got from 'got';
import fs from 'fs';
const licences_Def = {
"MIT": "http://www.opensource.org/licenses/MIT",
"ISC": "http://www.opensource.org/licenses/ISC",
"Apache-2.0": "http://www.opensource.org/licenses/Apache-2.0",
"BSD-2-Clause": "https://opensource.org/licenses/BSD-2-Clause",
"BSD-3-Clause": "https://opensource.org/licenses/BSD-3-Clause"
};
const collection = [];
fs.readFile("./package.json", 'utf-8', async (err, packagejson) => {
if (err) throw err;
const packages = JSON.parse(packagejson);
for (const key of Object.keys(packages.dependencies)) {
if (key === "got") return;
const data = await got("https://registry.npmjs.org/" + key.toLowerCase()).json();
fs.readFile("./node_modules/" + key + "/package.json", 'utf8', (err, currentPackageJson) => {
if (err) throw err;
const currentPackage = JSON.parse(currentPackageJson);
const version = currentPackage.version;
const name = data.name;
const license = data.license || "MIT";
const homepage = data.homepage || data.repository.url.replace('git:', 'https:').replace('.git', '');
const licenseUrl = licences_Def[license] || "https://opensource.org/licenses";
const result = name + " | [www](" + homepage + ") | [" + license + "](" + licenseUrl + ") | NO | " + version;
collection.push(result);
});
}
collection.sort();
for (const entry of collection) {
console.log(entry);
}
});