34 lines
1020 B
TypeScript
34 lines
1020 B
TypeScript
import { formatFiles, GeneratorCallback, Tree } from '@nrwl/devkit';
|
|
import { assertCompatibleStorybookVersion } from './lib/assert-compatible-storybook-version';
|
|
import { generateStories } from './lib/generate-stories';
|
|
import { generateStorybookConfiguration } from './lib/generate-storybook-configuration';
|
|
import { validateOptions } from './lib/validate-options';
|
|
import type { StorybookConfigurationOptions } from './schema';
|
|
|
|
export async function storybookConfigurationGenerator(
|
|
tree: Tree,
|
|
options: StorybookConfigurationOptions
|
|
): Promise<GeneratorCallback> {
|
|
assertCompatibleStorybookVersion();
|
|
validateOptions(options);
|
|
|
|
const storybookGeneratorInstallTask = await generateStorybookConfiguration(
|
|
tree,
|
|
options
|
|
);
|
|
|
|
if (options.generateStories) {
|
|
generateStories(tree, { ...options, skipFormat: false });
|
|
}
|
|
|
|
if (!options.skipFormat) {
|
|
await formatFiles(tree);
|
|
}
|
|
|
|
return () => {
|
|
storybookGeneratorInstallTask();
|
|
};
|
|
}
|
|
|
|
export default storybookConfigurationGenerator;
|