| 85 | type RawPackages = { [packageName: string]: RawPackage } |
| 86 | |
| 87 | export async function getPackages(): Promise<RawPackages> { |
| 88 | const packagePaths = await globby(['packages/*/package.json'], { |
| 89 | ignore: ['**/node_modules/**', '**/examples/**', '**/fixtures/**'], |
| 90 | }) |
| 91 | const packages = await Promise.all( |
| 92 | packagePaths.map(async (p) => ({ |
| 93 | path: p, |
| 94 | packageJson: JSON.parse(await fs.promises.readFile(p, 'utf-8')), |
| 95 | })), |
| 96 | ) |
| 97 | |
| 98 | return packages.reduce<RawPackages>((acc, p) => { |
| 99 | if (p.packageJson.name) { |
| 100 | acc[p.packageJson.name] = p |
| 101 | } |
| 102 | return acc |
| 103 | }, {}) |
| 104 | } |
| 105 | |
| 106 | interface Package { |
| 107 | private?: boolean |