storybook/code/lib/cli/scripts/generate-repro-templates-list.js

43 lines
1.1 KiB
JavaScript
Executable File

#!/usr/bin/env node
const { writeFile } = require('fs-extra');
const { exec } = require('child_process');
const path = require('path');
const { default: dedent } = require('ts-dedent');
const { readFile } = require('fs-extra');
const yml = require('js-yaml');
const logger = console;
async function getTemplatesData(filePath) {
const configContents = await readFile(filePath, 'utf8');
return yml.load(configContents);
}
const run = async () => {
logger.log('Generating templates list...');
const templatesData = await getTemplatesData(
path.resolve(__dirname, '../../../../scripts/next-repro-generators/repro-config.yml')
);
const destination = path.join(__dirname, '..', 'src', 'repro-templates.ts');
await writeFile(
destination,
dedent`
// This file was auto generated from generate-repro-templates-list.js, please do not edit!
export default ${JSON.stringify(templatesData, null, 2)}
`
);
exec(`yarn lint:js:cmd --fix ${destination}`, {
cwd: path.join(__dirname, '..', '..', '..'),
});
logger.log('Done! generated ', destination);
};
run().catch((e) => {
logger.error(e);
process.exit(1);
});