mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-25 06:14:59 +00:00
41 lines
1.2 KiB
JavaScript
41 lines
1.2 KiB
JavaScript
#!/usr/bin/env node
|
|
|
|
const fs = require('fs')
|
|
const path = require('path')
|
|
|
|
const packagesDir = path.join(__dirname, '..', 'packages')
|
|
const entries = fs.readdirSync(packagesDir, { withFileTypes: true })
|
|
|
|
const packages = entries
|
|
.filter((entry) => entry.isDirectory() && !entry.name.startsWith('.'))
|
|
.flatMap((entry) => {
|
|
const metadataPath = path.join(packagesDir, entry.name, 'seed', 'metadata.json')
|
|
if (!fs.existsSync(metadataPath)) {
|
|
return []
|
|
}
|
|
const metadata = JSON.parse(fs.readFileSync(metadataPath, 'utf8'))
|
|
return [
|
|
{
|
|
packageId: metadata.packageId,
|
|
name: metadata.name,
|
|
version: metadata.version,
|
|
description: metadata.description,
|
|
author: metadata.author,
|
|
category: metadata.category,
|
|
dependencies: metadata.dependencies ?? [],
|
|
exports: metadata.exports ?? { components: [] },
|
|
},
|
|
]
|
|
})
|
|
.sort((a, b) => a.packageId.localeCompare(b.packageId))
|
|
|
|
const output = {
|
|
generatedAt: new Date().toISOString(),
|
|
packages,
|
|
}
|
|
|
|
const outputPath = path.join(packagesDir, 'index.json')
|
|
fs.writeFileSync(outputPath, JSON.stringify(output, null, 2) + '\n')
|
|
|
|
console.log(`Wrote ${outputPath} (${packages.length} packages)`)
|