UNPKG

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
"use strict"; 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}`); } }); }