@nx/storybook
Version:
94 lines (93 loc) • 4.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.servePostTargetTransformer = servePostTargetTransformer;
const devkit_1 = require("@nx/devkit");
const plugin_migration_utils_1 = require("@nx/devkit/src/generators/plugin-migrations/plugin-migration-utils");
const utils_1 = require("./utils");
function servePostTargetTransformer(migrationLogs) {
return (target, tree, projectDetails, inferredTargetConfiguration) => {
let defaultConfigDir = (0, utils_1.getConfigFilePath)(tree, (0, devkit_1.joinPathFragments)(projectDetails.root, '.storybook'));
if (target.options) {
if (target.options.configDir) {
defaultConfigDir = target.options.configDir;
}
handlePropertiesFromTargetOptions(tree, target.options, projectDetails.projectName, projectDetails.root, migrationLogs);
}
if (target.configurations) {
for (const configurationName in target.configurations) {
const configuration = target.configurations[configurationName];
if (configuration.configDir &&
configuration.configDir !== defaultConfigDir) {
(0, utils_1.ensureViteConfigPathIsRelative)(tree, (0, utils_1.getConfigFilePath)(tree, configuration.configDir), projectDetails.projectName, projectDetails.root, '@nx/storybook:storybook', migrationLogs);
}
handlePropertiesFromTargetOptions(tree, configuration, projectDetails.projectName, projectDetails.root, migrationLogs);
}
if (Object.keys(target.configurations).length === 0) {
if ('defaultConfiguration' in target) {
delete target.defaultConfiguration;
}
delete target.configurations;
}
if ('defaultConfiguration' in target &&
!target.configurations[target.defaultConfiguration]) {
delete target.defaultConfiguration;
}
}
(0, utils_1.ensureViteConfigPathIsRelative)(tree, (0, utils_1.getConfigFilePath)(tree, defaultConfigDir), projectDetails.projectName, projectDetails.root, '@nx/storybook:storybook', migrationLogs);
return target;
};
}
function handlePropertiesFromTargetOptions(tree, options, projectName, projectRoot, migrationLogs) {
if ('configDir' in options) {
options.configDir = (0, plugin_migration_utils_1.toProjectRelativePath)(options.configDir, projectRoot);
}
if (options.outputDir) {
options.outputDir = (0, plugin_migration_utils_1.toProjectRelativePath)(options.outputDir, projectRoot);
}
if ('uiFramework' in options) {
delete options.uiFramework;
}
if ('staticDir' in options) {
migrationLogs.addLog({
project: projectName,
executorName: '@nx/storybook:storybook',
log: 'Could not migrate `staticDir`. Update your `main.ts` file to add `staticDirs`.',
});
delete options.staticDir;
}
if ('open' in options) {
if (!options.open) {
options['args'] ??= [];
options['args'].push('--no-open');
}
delete options.open;
}
if ('no-open' in options) {
if (options['no-open']) {
options['args'] ??= [];
options['args'].push('--no-open');
}
delete options['no-open'];
}
if ('quiet' in options) {
if (options['quiet']) {
options['args'] ??= [];
options['args'].push('--quiet');
}
delete options.quiet;
}
if ('docsMode' in options) {
options.docs = options.docsMode;
delete options.docsMode;
}
const storybookPropMappings = (0, utils_1.getInstalledPackageVersionInfo)(tree, 'storybook')?.major === 8
? utils_1.STORYBOOK_PROP_MAPPINGS.v8
: utils_1.STORYBOOK_PROP_MAPPINGS.v7;
for (const [prevKey, newKey] of Object.entries(storybookPropMappings)) {
if (prevKey in options) {
let prevValue = options[prevKey];
delete options[prevKey];
options[newKey] = prevValue;
}
}
}