UNPKG

@storybook/angular

Version:

Storybook for Angular: Develop, document, and test UI components in isolation

125 lines (121 loc) 4.42 kB
import CJS_COMPAT_NODE_URL_hrrnwz31pm from 'node:url'; import CJS_COMPAT_NODE_PATH_hrrnwz31pm from 'node:path'; import CJS_COMPAT_NODE_MODULE_hrrnwz31pm from "node:module"; var __filename = CJS_COMPAT_NODE_URL_hrrnwz31pm.fileURLToPath(import.meta.url); var __dirname = CJS_COMPAT_NODE_PATH_hrrnwz31pm.dirname(__filename); var require = CJS_COMPAT_NODE_MODULE_hrrnwz31pm.createRequire(import.meta.url); // ------------------------------------------------------------ // end of CJS compatibility banner, injected by Storybook's esbuild configuration // ------------------------------------------------------------ import { errorSummary, printErrorDetails, runCompodoc, up as up2 } from "../../_node-chunks/chunk-XNRMGOYZ.js"; import { up } from "../../_node-chunks/chunk-R6QRREVY.js"; // src/builders/build-storybook/index.ts import { readFileSync } from "node:fs"; import { getEnvConfig, getProjectRoot, versions } from "storybook/internal/common"; import { buildStaticStandalone, withTelemetry } from "storybook/internal/core-server"; import { addToGlobalContext } from "storybook/internal/telemetry"; import { logger, logTracker } from "storybook/internal/node-logger"; import { createBuilder, targetFromTargetString } from "@angular-devkit/architect"; import { VERSION } from "@angular/core"; addToGlobalContext("cliVersion", versions.storybook); var commandBuilder = async (options, context) => { options.loglevel && logger.setLogLevel(options.loglevel), options.logfile && logTracker.enableLogWriting(), logger.intro("Building Storybook"); let { tsConfig } = await setup(options, context), docTSConfig = up("tsconfig.doc.json", { cwd: options.configDir, last: getProjectRoot() }); options.compodoc && await runCompodoc( { compodocArgs: options.compodocArgs, tsconfig: docTSConfig ?? tsConfig }, context ), getEnvConfig(options, { staticDir: "SBCONFIG_STATIC_DIR", outputDir: "SBCONFIG_OUTPUT_DIR", configDir: "SBCONFIG_CONFIG_DIR" }); let { browserTarget, stylePreprocessorOptions, styles, configDir, docs, loglevel, test, outputDir, quiet, enableProdMode = !0, webpackStatsJson, statsJson, debugWebpack, disableTelemetry, assets, previewUrl, sourceMap = !1, preserveSymlinks = !1, experimentalZoneless = !!(VERSION.major && Number(VERSION.major) >= 21) } = options, packageJsonPath = up2({ cwd: __dirname }), standaloneOptions = { packageJson: packageJsonPath != null ? JSON.parse(readFileSync(packageJsonPath, "utf8")) : null, configDir, ...docs ? { docs } : {}, loglevel, outputDir, test, quiet, enableProdMode, disableTelemetry, angularBrowserTarget: browserTarget, angularBuilderContext: context, angularBuilderOptions: { ...stylePreprocessorOptions ? { stylePreprocessorOptions } : {}, ...styles ? { styles } : {}, ...assets ? { assets } : {}, sourceMap, preserveSymlinks, experimentalZoneless }, tsConfig, webpackStatsJson, statsJson, debugWebpack, previewUrl }; if (await runInstance({ ...standaloneOptions, mode: "static" }), logTracker.shouldWriteLogsToFile) { let logFile = await logTracker.writeToFile(options.logfile); logger.info(`Debug logs are written to: ${logFile}`); } return logger.outro("Storybook build completed successfully"), { success: !0 }; }, build_storybook_default = createBuilder(commandBuilder); async function setup(options, context) { let browserOptions, browserTarget; return options.browserTarget && (browserTarget = targetFromTargetString(options.browserTarget), browserOptions = await context.validateOptions( await context.getTargetOptions(browserTarget), await context.getBuilderNameForTarget(browserTarget) )), { tsConfig: options.tsConfig ?? up("tsconfig.json", { cwd: options.configDir, last: getProjectRoot() }) ?? browserOptions.tsConfig }; } async function runInstance(options) { try { await withTelemetry( "build", { cliOptions: options, presetOptions: { ...options, corePresets: [], overridePresets: [] }, printError: printErrorDetails }, async () => await buildStaticStandalone(options) ); } catch (error) { let summary = errorSummary(error); throw new Error(summary); } } export { build_storybook_default as default };