license-kit
Version:
Aggregate license notes of OSS libraries used in your Node.js project, analyze & visualize OSS licenses with AI-turbocharged tooling
30 lines (29 loc) • 1.63 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.default = reportCommandSetup;
const node_fs_1 = __importDefault(require("node:fs"));
const node_path_1 = __importDefault(require("node:path"));
const generateLicensesMapping_1 = require("../logic/generateLicensesMapping");
const serializeReport_1 = require("../serializeReport");
const commandUtils_1 = require("../utils/commandUtils");
function reportCommandSetup(program) {
return (0, commandUtils_1.curryCommonScanOptions)((0, commandUtils_1.curryReportOptions)(program.command('report').description('Generate a license report for your project.'))).action((options) => {
(0, commandUtils_1.validateCommonScanOptions)(options);
(0, commandUtils_1.validateCommonReportOptions)(options);
const { licenses, repoRootPath } = (0, generateLicensesMapping_1.generateLicensesMapping)(options);
const serializedResult = (0, serializeReport_1.serializeReport)({ licenses, format: options.format });
const output = options.output;
if (output === 'stdout') {
console.log(serializedResult);
}
else {
const outputPath = node_path_1.default.resolve(repoRootPath, output);
node_fs_1.default.mkdirSync(node_path_1.default.dirname(outputPath), { recursive: true });
node_fs_1.default.writeFileSync(outputPath, serializedResult);
console.log(`Output written to ${outputPath}`);
}
});
}