UNPKG

@storybook/cli

Version:

Storybook CLI: Develop, document, and test UI components in isolation

78 lines (73 loc) 3.14 kB
import CJS_COMPAT_NODE_URL_k5dk07v6ua from 'node:url'; import CJS_COMPAT_NODE_PATH_k5dk07v6ua from 'node:path'; import CJS_COMPAT_NODE_MODULE_k5dk07v6ua from "node:module"; var __filename = CJS_COMPAT_NODE_URL_k5dk07v6ua.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_k5dk07v6ua.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_k5dk07v6ua.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import "./chunk-BQPSG2W7.js"; import { require_semver } from "./chunk-D3CPWTNB.js"; import { __toESM } from "./chunk-3NRJWWYC.js"; // src/autoblock/block-major-version.ts var import_semver = __toESM(require_semver(), 1); import { versions } from "storybook/internal/common"; import { CLI_COLORS } from "storybook/internal/node-logger"; import { dedent } from "ts-dedent"; function validateVersionTransition(currentVersion, targetVersion) { if (!currentVersion || !targetVersion) return "ok"; let current = (0, import_semver.parse)(currentVersion), target = (0, import_semver.parse)(targetVersion); return !current || !target || current.major === 0 || target.major === 0 ? "ok" : (0, import_semver.gt)(currentVersion, targetVersion) ? "downgrade" : target.major - current.major > 1 ? "gap-too-large" : "ok"; } var blocker = { id: "major-version-gap", async check(options) { let { packageManager } = options; try { let currentStorybookVersion = packageManager.getAllDependencies().storybook; if (!currentStorybookVersion) return !1; let target = versions.storybook, result = validateVersionTransition(currentStorybookVersion, target); return result === "ok" ? !1 : { currentVersion: currentStorybookVersion, reason: result }; } catch { return !1; } }, log(data) { let coercedVersion = (0, import_semver.coerce)(data.currentVersion); if (data.reason === "downgrade") return { title: "Downgrade Not Supported", message: dedent` Your Storybook version (v${data.currentVersion}) is newer than the target release (v${versions.storybook}). Downgrading is not supported. `, link: "https://storybook.js.org/docs/releases/migration-guide?ref=upgrade" }; if (coercedVersion) { let nextMajor = (0, import_semver.major)(coercedVersion) + 1; return { title: "Major Version Gap Detected", message: dedent` Your Storybook version (v${data.currentVersion}) is more than one major version behind the target release (v${versions.storybook}). Please upgrade one major version at a time. You can upgrade to version ${nextMajor} by running: ${CLI_COLORS.info(`npx storybook@${nextMajor} upgrade`)} `, link: `https://storybook.js.org/docs/${nextMajor}/migration-guide?ref=upgrade` }; } throw new Error("No message found"); } }; export { blocker, validateVersionTransition };