mirror of
https://github.com/ragestudio/comty.git
synced 2025-06-09 18:44:16 +00:00
44 lines
1.3 KiB
JavaScript
44 lines
1.3 KiB
JavaScript
import fs from "node:fs"
|
|
import path from "node:path"
|
|
|
|
async function main() {
|
|
const cwd = process.cwd()
|
|
const outputFilePath = path.resolve(process.cwd(), "public", "oss-licenses.json")
|
|
|
|
if (await fs.promises.stat(outputFilePath).then(() => true, () => false)) {
|
|
fs.unlinkSync(outputFilePath)
|
|
}
|
|
|
|
const rootPkgJson = JSON.parse(fs.readFileSync(path.resolve(cwd, "package.json")))
|
|
|
|
const modules = Object.entries(rootPkgJson.dependencies).map(([name, version]) => ({ name, version }))
|
|
|
|
let licenses = []
|
|
|
|
for await (const mod of modules) {
|
|
const pkgJsonPath = path.resolve(cwd, "node_modules", mod.name, "package.json")
|
|
|
|
if (!await fs.promises.stat(pkgJsonPath).then(() => true, () => false)) {
|
|
continue
|
|
}
|
|
|
|
const pkgJson = JSON.parse(fs.readFileSync(pkgJsonPath))
|
|
|
|
console.log(`Computing license for [${mod}]`)
|
|
|
|
licenses.push({
|
|
name: pkgJson.name,
|
|
version: pkgJson.version,
|
|
license: pkgJson.license,
|
|
author: pkgJson.author,
|
|
})
|
|
}
|
|
|
|
licenses = licenses.sort((a, b) => a.name.localeCompare(b.name))
|
|
|
|
fs.writeFileSync(outputFilePath, JSON.stringify(licenses, null, 4))
|
|
|
|
console.log(`Wrote [${licenses.length}] licenses to > ${outputFilePath}`)
|
|
}
|
|
|
|
main() |