UNPKG

@wix/cli

Version:

CLI tool for building Wix sites and applications

106 lines (103 loc) 3.17 kB
import { createRequire as _createRequire } from 'node:module'; const require = _createRequire(import.meta.url); import { buildMetadataSchema, getBuildMetadataPath } from "./chunk-KCDAY54L.js"; import { isSameOrChild, pathExists, readJson } from "./chunk-TLLAD5LU.js"; import { CliError, CliErrorCode } from "./chunk-CO5A7CZG.js"; import { init_esm_shims } from "./chunk-EXLZF52D.js"; // ../cli-astro-commands/src/files/build-metadata.ts init_esm_shims(); import { resolve } from "node:path"; async function readBuildMetadata(projectFolder, config) { if (config.projectType === "Site" && config.site?.outputDirectory != null) { const site = config.site; let clientDir; let serverDir; if (typeof site.outputDirectory === "string") { clientDir = resolve(projectFolder, site.outputDirectory); } else { if (site.outputDirectory.client) { clientDir = resolve(projectFolder, site.outputDirectory.client); } if (site.outputDirectory.server) { serverDir = resolve(projectFolder, site.outputDirectory.server); } } if (!clientDir && !serverDir) { throw new CliError({ code: CliErrorCode.BuildOutputMissing({ reason: "Expected at least one site output directory to be configured." }), cause: null }); } if (serverDir && !isSameOrChild(projectFolder, serverDir) || clientDir && !isSameOrChild(projectFolder, clientDir)) { throw new CliError({ code: CliErrorCode.SiteOutputDirectoryOutsideProject(), cause: null }); } const result = { metaDataSource: "WIX_CONFIG", serverDir, clientDir }; return result; } const buildMetadataPath = getBuildMetadataPath(projectFolder); if (!await pathExists(buildMetadataPath)) { throw new CliError({ code: CliErrorCode.BuildOutputMissing({ reason: `"${buildMetadataPath}" build output file is missing.` }), cause: null }); } const buildMetadataJson = await readJson(buildMetadataPath); const parseResult = buildMetadataSchema.safeParse(buildMetadataJson); if (parseResult.success) { return parseResult.data; } throw new CliError({ code: CliErrorCode.BuildOutputMissing({ reason: `"${buildMetadataPath}" can't be read.` }), cause: parseResult.error }); } // ../cli-astro-commands/src/files/assert-build-output-exists.ts init_esm_shims(); async function assertBuildOutputExists(projectFolder, config) { const buildMetadata = await readBuildMetadata(projectFolder, config); const targets = [ ...buildMetadata.metaDataSource === "WIX_CONFIG" ? [] : [buildMetadata.appManifestPath], ...buildMetadata.clientDir ? [buildMetadata.clientDir] : [], ...buildMetadata.serverDir ? [buildMetadata.serverDir] : [] ]; for (const target of targets) { if (!await pathExists(target)) { throw new CliError({ code: CliErrorCode.BuildOutputMissing({ reason: `"${target}" doesn't exist.` }), cause: null }); } } } export { readBuildMetadata, assertBuildOutputExists }; //# sourceMappingURL=chunk-NPYBTUWU.js.map