Files
metabuilder/storybook/generators/generate.ts
copilot-swe-agent[bot] f2145f1aba feat: wire up Playwright and Storybook generators at root level
- Moved generators from frontend to proper locations (e2e/generators and storybook/generators)
- Created playwright-generator.ts for JSON test → .spec.ts conversion
- Created storybook-generator.ts for JSON story → .stories.tsx conversion
- Added npm scripts at root: test:generate and storybook:generate
- Generators discover all packages/*/playwright/ and packages/*/storybook/ folders
- Auto-generate executable TypeScript from declarative JSON
- Added comprehensive README docs for both generators
- Proper separation: e2e tooling in e2e/, storybook tooling in storybook/
- Frontend no longer knows about test/story generation

Co-authored-by: johndoe6345789 <224850594+johndoe6345789@users.noreply.github.com>
2026-01-16 18:52:02 +00:00

49 lines
1.6 KiB
TypeScript

#!/usr/bin/env tsx
/**
* Generate Storybook stories from JSON definitions
*
* Usage:
* npm run storybook:generate # Generate all package stories
* npm run storybook:generate ui_home # Generate specific package stories
*/
import { resolve } from 'path'
import { generateStorybookStory, generateAllStorybookStories, discoverStorybookPackages } from './storybook-generator'
async function main() {
const packageName = process.argv[2]
const projectRoot = resolve(__dirname, '../..')
const packagesDir = resolve(projectRoot, 'packages')
const outputDir = resolve(projectRoot, 'storybook/generated')
console.log('📚 Storybook Story Generator')
console.log('═'.repeat(50))
console.log(`Packages dir: ${packagesDir}`)
console.log(`Output dir: ${outputDir}`)
console.log('')
try {
if (packageName) {
// Generate for specific package
console.log(`Generating stories for package: ${packageName}`)
const outputPath = await generateStorybookStory(packageName, packagesDir, outputDir)
console.log(`✅ Generated: ${outputPath}`)
} else {
// Discover and generate all
const packages = await discoverStorybookPackages(packagesDir)
console.log(`Found ${packages.length} packages with Storybook stories:`)
packages.forEach(pkg => console.log(` - ${pkg}`))
console.log('')
const generated = await generateAllStorybookStories(packagesDir, outputDir)
console.log('')
console.log(`✅ Generated ${generated.length} story files`)
}
} catch (error) {
console.error('❌ Error:', error)
process.exit(1)
}
}
main()