Skip to content

Commit 0e336f8

Browse files
authoredMar 17, 2025··
refactor: change core-app template to app-quickstart (#8948)
1 parent 05524ff commit 0e336f8

31 files changed

+194
-199
lines changed
 

‎packages/@sanity/cli/src/actions/init-project/bootstrapLocalTemplate.ts

+10-10
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ import {type CliCommandContext} from '../../types'
99
import {copy} from '../../util/copy'
1010
import {getAndWriteJourneySchemaWorker} from '../../util/journeyConfig'
1111
import {resolveLatestVersions} from '../../util/resolveLatestVersions'
12+
import {createAppCliConfig} from './createAppCliConfig'
1213
import {createCliConfig} from './createCliConfig'
13-
import {createCoreAppCliConfig} from './createCoreAppCliConfig'
1414
import {createPackageManifest} from './createPackageManifest'
1515
import {createStudioConfig, type GenerateConfigOptions} from './createStudioConfig'
16-
import {determineCoreAppTemplate} from './determineCoreAppTemplate'
16+
import {determineAppTemplate} from './determineAppTemplate'
1717
import {type ProjectTemplate} from './initProject'
1818
import templates from './templates'
1919
import {updateInitialTemplateMetadata} from './updateInitialTemplateMetadata'
@@ -40,7 +40,7 @@ export async function bootstrapLocalTemplate(
4040
const {outputPath, templateName, useTypeScript, packageName, variables} = opts
4141
const sourceDir = path.join(templatesDir, templateName)
4242
const sharedDir = path.join(templatesDir, 'shared')
43-
const isCoreAppTemplate = determineCoreAppTemplate(templateName)
43+
const isAppTemplate = determineAppTemplate(templateName)
4444

4545
// Check that we have a template info file (dependencies, plugins etc)
4646
const template = templates[templateName]
@@ -83,16 +83,16 @@ export async function bootstrapLocalTemplate(
8383
// Resolve latest versions of Sanity-dependencies
8484
spinner = output.spinner('Resolving latest module versions').start()
8585
const dependencyVersions = await resolveLatestVersions({
86-
...(isCoreAppTemplate ? {} : studioDependencies.dependencies),
87-
...(isCoreAppTemplate ? {} : studioDependencies.devDependencies),
86+
...(isAppTemplate ? {} : studioDependencies.dependencies),
87+
...(isAppTemplate ? {} : studioDependencies.devDependencies),
8888
...(template.dependencies || {}),
8989
...(template.devDependencies || {}),
9090
})
9191
spinner.succeed()
9292

9393
// Use the resolved version for the given dependency
9494
const dependencies = Object.keys({
95-
...(isCoreAppTemplate ? {} : studioDependencies.dependencies),
95+
...(isAppTemplate ? {} : studioDependencies.dependencies),
9696
...template.dependencies,
9797
}).reduce(
9898
(deps, dependency) => {
@@ -103,7 +103,7 @@ export async function bootstrapLocalTemplate(
103103
)
104104

105105
const devDependencies = Object.keys({
106-
...(isCoreAppTemplate ? {} : studioDependencies.devDependencies),
106+
...(isAppTemplate ? {} : studioDependencies.devDependencies),
107107
...template.devDependencies,
108108
}).reduce(
109109
(deps, dependency) => {
@@ -129,8 +129,8 @@ export async function bootstrapLocalTemplate(
129129
})
130130

131131
// ...and a CLI config (`sanity.cli.[ts|js]`)
132-
const cliConfig = isCoreAppTemplate
133-
? createCoreAppCliConfig({
132+
const cliConfig = isAppTemplate
133+
? createAppCliConfig({
134134
appLocation: template.appLocation!,
135135
organizationId: variables.organizationId,
136136
})
@@ -145,7 +145,7 @@ export async function bootstrapLocalTemplate(
145145
await Promise.all(
146146
[
147147
...[
148-
isCoreAppTemplate
148+
isAppTemplate
149149
? Promise.resolve(null)
150150
: writeFileIfNotExists(`sanity.config.${codeExt}`, studioConfig),
151151
],
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
import {processTemplate} from './processTemplate'
22

3-
const defaultCoreAppTemplate = `
3+
const defaultAppTemplate = `
44
import {defineCliConfig} from 'sanity/cli'
55
66
export default defineCliConfig({
7-
__experimental_coreAppConfiguration: {
7+
__experimental_appConfiguration: {
88
organizationId: '%organizationId%',
99
appLocation: '%appLocation%',
1010
},
@@ -16,9 +16,9 @@ export interface GenerateCliConfigOptions {
1616
appLocation: string
1717
}
1818

19-
export function createCoreAppCliConfig(options: GenerateCliConfigOptions): string {
19+
export function createAppCliConfig(options: GenerateCliConfigOptions): string {
2020
return processTemplate({
21-
template: defaultCoreAppTemplate,
21+
template: defaultAppTemplate,
2222
variables: options,
2323
})
2424
}
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const coreAppTemplates = ['core-app']
1+
const appTemplates = ['app-quickstart']
22

33
/**
44
* Determine if a given template is a studio template.
@@ -8,6 +8,6 @@ const coreAppTemplates = ['core-app']
88
* @param templateName - Name of the template
99
* @returns boolean indicating if the template is a studio template
1010
*/
11-
export function determineCoreAppTemplate(templateName: string): boolean {
12-
return coreAppTemplates.includes(templateName)
11+
export function determineAppTemplate(templateName: string): boolean {
12+
return appTemplates.includes(templateName)
1313
}

‎packages/@sanity/cli/src/actions/init-project/initProject.ts

+8-8
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ import {createProject} from '../project/createProject'
4949
import {bootstrapLocalTemplate} from './bootstrapLocalTemplate'
5050
import {bootstrapRemoteTemplate} from './bootstrapRemoteTemplate'
5151
import {type GenerateConfigOptions} from './createStudioConfig'
52-
import {determineCoreAppTemplate} from './determineCoreAppTemplate'
52+
import {determineAppTemplate} from './determineAppTemplate'
5353
import {absolutify, validateEmptyPath} from './fsUtils'
5454
import {tryGitInit} from './git'
5555
import {promptForDatasetName} from './promptForDatasetName'
@@ -278,14 +278,14 @@ export default async function initSanity(
278278
}
279279

280280
// skip project / dataset prompting
281-
const isCoreAppTemplate = cliFlags.template ? determineCoreAppTemplate(cliFlags.template) : false // Default to false
281+
const isAppTemplate = cliFlags.template ? determineAppTemplate(cliFlags.template) : false // Default to false
282282

283283
let introMessage = 'Fetching existing projects'
284284
if (cliFlags.quickstart) {
285285
introMessage = "Eject your existing project's Sanity configuration"
286286
}
287287

288-
if (!isCoreAppTemplate) {
288+
if (!isAppTemplate) {
289289
success(introMessage)
290290
print('')
291291
}
@@ -678,13 +678,13 @@ export default async function initSanity(
678678
if (isCurrentDir) {
679679
print(`\n${chalk.green('Success!')} Now, use this command to continue:\n`)
680680
print(
681-
`${chalk.cyan(devCommand)} - to run ${isCoreAppTemplate ? 'your Sanity application' : 'Sanity Studio'}\n`,
681+
`${chalk.cyan(devCommand)} - to run ${isAppTemplate ? 'your Sanity application' : 'Sanity Studio'}\n`,
682682
)
683683
} else {
684684
print(`\n${chalk.green('Success!')} Now, use these commands to continue:\n`)
685685
print(`First: ${chalk.cyan(`cd ${outputPath}`)} - to enter project’s directory`)
686686
print(
687-
`Then: ${chalk.cyan(devCommand)} -to run ${isCoreAppTemplate ? 'your Sanity application' : 'Sanity Studio'}\n`,
687+
`Then: ${chalk.cyan(devCommand)} -to run ${isAppTemplate ? 'your Sanity application' : 'Sanity Studio'}\n`,
688688
)
689689
}
690690

@@ -748,18 +748,18 @@ export default async function initSanity(
748748
return data
749749
}
750750

751-
if (isCoreAppTemplate) {
751+
if (isAppTemplate) {
752752
const client = apiClient({requireUser: true, requireProject: false})
753753
const organizations = await client.request({uri: '/organizations'})
754754

755-
const coreAppOrganizationId = await getOrganizationId(organizations)
755+
const appOrganizationId = await getOrganizationId(organizations)
756756

757757
return {
758758
projectId: '',
759759
displayName: '',
760760
datasetName: '',
761761
isFirstProject: false,
762-
organizationId: coreAppOrganizationId,
762+
organizationId: appOrganizationId,
763763
}
764764
}
765765

‎packages/@sanity/cli/src/actions/init-project/templates/coreApp.ts ‎packages/@sanity/cli/src/actions/init-project/templates/appQuickstart.ts

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
import {type ProjectTemplate} from '../initProject'
22

3-
const coreAppTemplate: ProjectTemplate = {
3+
const appTemplate: ProjectTemplate = {
44
dependencies: {
5-
'@sanity/sdk': '^0.0.0-alpha',
6-
'@sanity/sdk-react': '^0.0.0-alpha',
5+
'@sanity/sdk': '^0.0.0-rc',
6+
'@sanity/sdk-react': '^0.0.0-rc',
77
'react': '^19',
88
'react-dom': '^19',
99
},
@@ -27,4 +27,4 @@ const coreAppTemplate: ProjectTemplate = {
2727
},
2828
}
2929

30-
export default coreAppTemplate
30+
export default appTemplate

‎packages/@sanity/cli/src/actions/init-project/templates/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {type ProjectTemplate} from '../initProject'
2+
import appTemplate from './appQuickstart'
23
import blog from './blog'
34
import clean from './clean'
4-
import coreAppTemplate from './coreApp'
55
import getStartedTemplate from './getStarted'
66
import moviedb from './moviedb'
77
import quickstart from './quickstart'
@@ -11,7 +11,7 @@ import shopifyOnline from './shopifyOnline'
1111
const templates: Record<string, ProjectTemplate | undefined> = {
1212
blog,
1313
clean,
14-
'core-app': coreAppTemplate,
14+
'app-quickstart': appTemplate,
1515
'get-started': getStartedTemplate,
1616
moviedb,
1717
shopify,

‎packages/@sanity/cli/src/types.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -351,7 +351,7 @@ export interface CliConfig {
351351
* Signals to `sanity` commands that this is not a studio.
352352
* @internal
353353
*/
354-
__experimental_coreAppConfiguration?: {
354+
__experimental_appConfiguration?: {
355355
organizationId?: string
356356
appLocation?: string
357357
appId?: string

‎packages/@sanity/cli/templates/core-app/src/App.tsx

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {type SanityConfig} from '@sanity/sdk'
2-
import {SanityApp} from '@sanity/sdk-react/components'
2+
import {SanityApp} from '@sanity/sdk-react'
33
import {ExampleComponent} from './ExampleComponent'
44
import './App.css'
55

@@ -14,7 +14,7 @@ export function App() {
1414

1515
return (
1616
<div className="app-container">
17-
<SanityApp sanityConfigs={sanityConfigs}>
17+
<SanityApp sanityConfigs={sanityConfigs} fallback={<div>Loading...</div>}>
1818
{/* add your own components here! */}
1919
<ExampleComponent />
2020
</SanityApp>

‎packages/@sanity/cli/test/init.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,14 @@ import path from 'node:path'
33

44
import {describe, expect} from 'vitest'
55

6-
import {determineCoreAppTemplate} from '../src/actions/init-project/determineCoreAppTemplate'
6+
import {determineAppTemplate} from '../src/actions/init-project/determineAppTemplate'
77
import templates from '../src/actions/init-project/templates'
88
import {describeCliTest, testConcurrent} from './shared/describe'
99
import {baseTestPath, cliProjectId, getTestRunArgs, runSanityCmdCommand} from './shared/environment'
1010

1111
describeCliTest('CLI: `sanity init v3`', () => {
1212
// filter out non-studio apps for now, until we add things they can auto-update
13-
describe.each(Object.keys(templates).filter((template) => !determineCoreAppTemplate(template)))(
13+
describe.each(Object.keys(templates).filter((template) => !determineAppTemplate(template)))(
1414
'for template %s',
1515
(template) => {
1616
testConcurrent('adds autoUpdates: true to cli config', async () => {

0 commit comments

Comments
 (0)
Please sign in to comment.