scripts/license-check.mjs
Rama main · réplica de lectura del repositorio original.
#!/usr/bin/env node
import { spawnSync } from "node:child_process";
import { resolve } from "node:path";
import { fileURLToPath } from "node:url";
import { inspectLicenseReport } from "./release-tools.mjs";
const root = resolve(fileURLToPath(new URL("..", import.meta.url)));
const command = process.platform === "win32" ? "pnpm.cmd" : "pnpm";
const result = spawnSync(
command,
["licenses", "list", "--prod", "--recursive", "--json"],
{
cwd: root,
encoding: "utf8",
maxBuffer: 32 * 1024 * 1024,
env: process.env
}
);
if (result.error) throw result.error;
if (result.status !== 0) {
process.stderr.write(result.stderr ?? "");
process.exit(result.status ?? 1);
}
let report;
try {
report = JSON.parse(result.stdout);
} catch (error) {
process.stderr.write(result.stderr ?? "");
throw new Error(
`Could not parse pnpm production license report: ${
error instanceof Error ? error.message : String(error)
}`
);
}
const summary = inspectLicenseReport(report);
console.log(
`Production dependency license review passed for ${summary.packageCount} package records.`
);
console.log(`Reviewed license expressions: ${summary.licenses.join(", ")}`);