{"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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"}