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

69 lines (55 loc) 2.23 kB
import { type CliCommandArguments, type CliCommandContext, type CliCommandDefinition, } from '@sanity/cli' import {type DeployStudioActionFlags} from '../../actions/deploy/deployAction' import {SCHEMA_STORE_FEATURE_ENABLED} from '../../actions/schema/schemaStoreConstants' import {determineIsApp} from '../../util/determineIsApp' const schemaStoreText = [ ' --schema-required Fail-fast deployment if schema store fails', ' --verbose Enable verbose logging', '', ].join('\n') const examples = `Examples # Build the studio sanity deploy # Deploys non-minified build with source maps sanity deploy --no-minify --source-maps` const examplesWithSchemaRequired = `${examples} # Fail fast on schema store fails – for when other services rely on the stored schema sanity deploy --schema-required` const helpText = ` Options --source-maps Enable source maps for built bundles (increases size of bundle) --auto-updates / --no-auto-updates Enable/disable auto updates of studio versions --no-minify Skip minifying built JavaScript (speeds up build, increases size of bundle) --no-build Don't build the studio prior to deploy, instead deploying the version currently in \`dist/\` ${SCHEMA_STORE_FEATURE_ENABLED ? schemaStoreText : ''} -y, --yes Unattended mode, answers "yes" to any "yes/no" prompt and otherwise uses defaults ${SCHEMA_STORE_FEATURE_ENABLED ? examplesWithSchemaRequired : examples}` const deployCommand: CliCommandDefinition = { name: 'deploy', signature: '[SOURCE_DIR] [--no-build] [--source-maps] [--no-minify]', description: 'Builds and deploys Sanity Studio or application to Sanity hosting', action: async ( args: CliCommandArguments<DeployStudioActionFlags>, context: CliCommandContext, ) => { let mod: { default: ( args: CliCommandArguments<DeployStudioActionFlags>, context: CliCommandContext, ) => Promise<void> } const isApp = determineIsApp(context.cliConfig) if (isApp) { mod = await import('../../actions/app/deployAction') } else { mod = await import('../../actions/deploy/deployAction') } return mod.default(args, context) }, helpText, } export default deployCommand