mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-24 13:54:57 +00:00
- 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>
49 lines
1.6 KiB
TypeScript
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()
|