storybook
Version:
Storybook: Develop, document, and test UI components in isolation
79 lines (75 loc) • 2.78 kB
JavaScript
import CJS_COMPAT_NODE_URL_yr66iw5gef from 'node:url';
import CJS_COMPAT_NODE_PATH_yr66iw5gef from 'node:path';
import CJS_COMPAT_NODE_MODULE_yr66iw5gef from "node:module";
var __filename = CJS_COMPAT_NODE_URL_yr66iw5gef.fileURLToPath(import.meta.url);
var __dirname = CJS_COMPAT_NODE_PATH_yr66iw5gef.dirname(__filename);
var require = CJS_COMPAT_NODE_MODULE_yr66iw5gef.createRequire(import.meta.url);
// ------------------------------------------------------------
// end of CJS compatibility banner, injected by Storybook's esbuild configuration
// ------------------------------------------------------------
import {
versions_default
} from "../_node-chunks/chunk-4FAPWW5I.js";
import {
resolvePackageDir
} from "../_node-chunks/chunk-Q6B5LJGA.js";
import {
join
} from "../_node-chunks/chunk-VBZIULNK.js";
import {
require_dist
} from "../_node-chunks/chunk-76KIYDRU.js";
import {
__toESM
} from "../_node-chunks/chunk-J4VC4I2M.js";
// src/bin/dispatcher.ts
import { pathToFileURL } from "node:url";
import { executeCommand, executeNodeCommand } from "storybook/internal/common";
import { logger } from "storybook/internal/node-logger";
var import_ts_dedent = __toESM(require_dist(), 1);
var [majorNodeVersion, minorNodeVersion] = process.versions.node.split(".").map(Number);
(majorNodeVersion < 20 || majorNodeVersion === 20 && minorNodeVersion < 19 || majorNodeVersion === 22 && minorNodeVersion < 12) && (logger.error(
import_ts_dedent.dedent`To run Storybook, you need Node.js version 20.19+ or 22.12+.
You are currently running Node.js ${process.version}. Please upgrade your Node.js installation.`
), process.exit(1));
async function run() {
let args = process.argv.slice(2);
if (["dev", "build", "index"].includes(args[0])) {
await import(pathToFileURL(join(resolvePackageDir("storybook"), "dist/bin/core.js")).href);
return;
}
let targetCli = args[0] === "init" ? {
pkg: "create-storybook",
args: args.slice(1)
} : {
pkg: "@storybook/cli",
args
};
try {
let { default: targetCliPackageJson } = await import(`${targetCli.pkg}/package.json`, {
with: { type: "json" }
});
if (targetCliPackageJson.version === versions_default[targetCli.pkg]) {
executeNodeCommand({
scriptPath: join(resolvePackageDir(targetCli.pkg), "dist/bin/index.js"),
args: targetCli.args,
options: {
stdio: "inherit"
}
}).on("exit", (code) => {
process.exit(code ?? 1);
});
return;
}
} catch {
}
executeCommand({
command: "npx",
args: ["--yes", `${targetCli.pkg}@${versions_default[targetCli.pkg]}`, ...targetCli.args],
stdio: "inherit"
}).on("exit", (code) => {
process.exit(code ?? 1);
});
}
run();