{"version":3,"file":"build.mjs","sources":["../../../src/node/build.ts"],"sourcesContent":["import * as tsUtils from '@strapi/typescript-utils';\nimport type { CLIContext } from '../cli/types';\nimport { checkRequiredDependencies } from './core/dependencies';\nimport { getTimer, prettyTime } from './core/timer';\nimport { createBuildContext } from './create-build-context';\nimport { writeStaticClientFiles } from './staticFiles';\n\ninterface BuildOptions extends CLIContext {\n  /**\n   * Which bundler to use for building.\n   *\n   * @default webpack\n   */\n  bundler?: 'webpack' | 'vite';\n  /**\n   * Minify the output\n   *\n   * @default true\n   */\n  minify?: boolean;\n  /**\n   * Generate sourcemaps – useful for debugging bugs in the admin panel UI.\n   */\n  sourcemaps?: boolean;\n  /**\n   * Print stats for build\n   */\n  stats?: boolean;\n}\n\n/**\n * @example `$ strapi build`\n *\n * @description Builds the admin panel of the strapi application.\n */\nconst build = async ({ logger, cwd, tsconfig, ...options }: BuildOptions) => {\n  const timer = getTimer();\n\n  const { didInstall } = await checkRequiredDependencies({ cwd, logger }).catch((err) => {\n    logger.error(err.message);\n    process.exit(1);\n  });\n\n  if (didInstall) {\n    return;\n  }\n\n  if (tsconfig?.config) {\n    timer.start('compilingTS');\n    const compilingTsSpinner = logger.spinner(`Compiling TS`).start();\n\n    tsUtils.compile(cwd, { configOptions: { ignoreDiagnostics: false } });\n\n    const compilingDuration = timer.end('compilingTS');\n    compilingTsSpinner.text = `Compiling TS (${prettyTime(compilingDuration)})`;\n    compilingTsSpinner.succeed();\n  }\n\n  timer.start('createBuildContext');\n  const contextSpinner = logger.spinner(`Building build context`).start();\n  console.log('');\n\n  const ctx = await createBuildContext({\n    cwd,\n    logger,\n    tsconfig,\n    options,\n  });\n\n  const contextDuration = timer.end('createBuildContext');\n  contextSpinner.text = `Building build context (${prettyTime(contextDuration)})`;\n  contextSpinner.succeed();\n\n  timer.start('buildAdmin');\n  const buildingSpinner = logger.spinner(`Building admin panel`).start();\n  console.log('');\n\n  try {\n    await writeStaticClientFiles(ctx);\n\n    if (ctx.bundler === 'webpack') {\n      const { build: buildWebpack } = await import('./webpack/build');\n      await buildWebpack(ctx);\n    } else if (ctx.bundler === 'vite') {\n      const { build: buildVite } = await import('./vite/build');\n      await buildVite(ctx);\n    }\n\n    const buildDuration = timer.end('buildAdmin');\n    buildingSpinner.text = `Building admin panel (${prettyTime(buildDuration)})`;\n    buildingSpinner.succeed();\n  } catch (err) {\n    buildingSpinner.fail();\n    throw err;\n  }\n};\n\nexport { build };\nexport type { BuildOptions };\n"],"names":["build","logger","cwd","tsconfig","options","timer","getTimer","didInstall","checkRequiredDependencies","catch","err","error","message","process","exit","config","start","compilingTsSpinner","spinner","tsUtils","compile","configOptions","ignoreDiagnostics","compilingDuration","end","text","prettyTime","succeed","contextSpinner","console","log","ctx","createBuildContext","contextDuration","buildingSpinner","writeStaticClientFiles","bundler","buildWebpack","buildVite","buildDuration","fail"],"mappings":"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"}