@wix/cli
Version:
CLI tool for building Wix sites and applications
106 lines (103 loc) • 3.17 kB
JavaScript
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