UNPKG

sanity

Version:

Sanity is a real-time content infrastructure with a scalable, hosted backend featuring a Graph Oriented Query Language (GROQ), asset pipelines and fast edge caches

113 lines (112 loc) 4.45 kB
"use strict"; var path = require("node:path"), zlib = require("node:zlib"), tar = require("tar-fs"), shouldAutoUpdate = require("./shouldAutoUpdate.js"), buildAction = require("./buildAction2.js"), deploySchemasAction = require("./deploySchemasAction.js"), schemaStoreOutStrings = require("./schemaStoreOutStrings.js"), helpers = require("./helpers.js"); function _interopDefaultCompat(e) { return e && typeof e == "object" && "default" in e ? e : { default: e }; } var path__default = /* @__PURE__ */ _interopDefaultCompat(path), zlib__default = /* @__PURE__ */ _interopDefaultCompat(zlib), tar__default = /* @__PURE__ */ _interopDefaultCompat(tar); async function deployStudioAction(args, context) { const { apiClient, workDir, chalk, output, prompt, cliConfig } = context, flags = { build: !0, ...args.extOptions }, customSourceDir = args.argsWithoutOptions[0], sourceDir = path__default.default.resolve(process.cwd(), customSourceDir || path__default.default.join(workDir, "dist")), isAutoUpdating = shouldAutoUpdate.shouldAutoUpdate({ flags, cliConfig, output }), installedSanityVersion = await helpers.getInstalledSanityVersion(), configStudioHost = cliConfig && "studioHost" in cliConfig && cliConfig.studioHost, client = apiClient({ requireUser: !0, requireProject: !0 }).withConfig({ apiVersion: "v2024-08-01" }); if (customSourceDir === "graphql") throw new Error("Did you mean `sanity graphql deploy`?"); if (customSourceDir) { let relativeOutput = path__default.default.relative(process.cwd(), sourceDir); if (relativeOutput[0] !== "." && (relativeOutput = `./${relativeOutput}`), !(await helpers.dirIsEmptyOrNonExistent(sourceDir) || await prompt.single({ type: "confirm", message: `"${relativeOutput}" is not empty, do you want to proceed?`, default: !1 }))) { output.print("Cancelled."); return; } output.print(`Building to ${relativeOutput} `); } let spinner = output.spinner("Checking project info").start(), userApplication; try { configStudioHost ? userApplication = await helpers.getOrCreateUserApplicationFromConfig({ client, context, spinner, appHost: configStudioHost }) : userApplication = await helpers.getOrCreateStudio({ client, context, spinner }); } catch (err) { if (err.message) { output.error(chalk.red(err.message)); return; } throw helpers.debug("Error creating user application", err), err; } const shouldBuild = flags.build; if (shouldBuild) { const buildArgs = { ...args, extOptions: flags, argsWithoutOptions: [customSourceDir].filter(Boolean) }, { didCompile } = await buildAction.default(buildArgs, context, { basePath: "/" }); if (!didCompile) return; } await deploySchemasAction.deploySchemasAction({ "extract-manifest": shouldBuild, "manifest-dir": `${sourceDir}/static`, "schema-required": flags["schema-required"], verbose: flags.verbose }, { ...context, manifestExtractor: schemaStoreOutStrings.createManifestExtractor(context) }), spinner = output.spinner("Verifying local content").start(); try { await helpers.checkDir(sourceDir), spinner.succeed(); } catch (err) { throw spinner.fail(), helpers.debug("Error checking directory", err), err; } const parentDir = path__default.default.dirname(sourceDir), base = path__default.default.basename(sourceDir), tarball = tar__default.default.pack(parentDir, { entries: [base] }).pipe(zlib__default.default.createGzip()); spinner = output.spinner("Deploying to sanity.studio").start(); try { const { location } = await helpers.createDeployment({ client, applicationId: userApplication.id, version: installedSanityVersion, isAutoUpdating, tarball }); spinner.succeed(), output.print(` Success! Studio deployed to ${chalk.cyan(location)}`), configStudioHost || (output.print(` Add ${chalk.cyan(`studioHost: '${userApplication.appHost}'`)}`), output.print("to defineCliConfig root properties in sanity.cli.js or sanity.cli.ts"), output.print("to avoid prompting for hostname on next deploy.")); } catch (err) { throw spinner.fail(), helpers.debug("Error deploying studio", err), err; } } exports.default = deployStudioAction; //# sourceMappingURL=deployAction2.js.map