fix(sdk): address project tooling review findings

This commit is contained in:
imccyu
2026-07-15 21:06:01 +08:00
parent 42b07a7022
commit e150bc446d
18 changed files with 241 additions and 47 deletions

View File

@@ -81,7 +81,8 @@ export async function createProject(
}
context.stdout.write(CREATE_TEMPLATES.nextSteps.render({
directory: resolved.directory,
packageManager: resolved.request.packageManager.name,
setupRequired: !resolved.install,
...packageManagerTemplateModel(resolved.request.packageManager),
}))
return result
}

View File

@@ -1 +1,5 @@
{{#if setupRequired}}
Next: cd {{directory}} && {{packageManager}} {{installArgs}} && {{packageManager}} {{buildArgs}} && {{packageManager}} start
{{else}}
Next: cd {{directory}} && {{packageManager}} start
{{/if}}

View File

@@ -15,9 +15,9 @@ interface CreatedTemplateModel {
directory: string
}
interface NextStepsTemplateModel {
interface NextStepsTemplateModel extends PackageManagerTemplateModel {
directory: string
packageManager: PackageManagerName
setupRequired: boolean
}
interface SetupFailureTemplateModel extends PackageManagerTemplateModel {

View File

@@ -126,7 +126,8 @@ describe('create-sdk terminal contract', () => {
}),
next: CREATE_TEMPLATES.nextSteps.render({
directory: resolved.directory,
packageManager: resolved.request.packageManager.name,
setupRequired: false,
...packageManagerTemplateModel(resolved.request.packageManager),
}),
failure: CREATE_TEMPLATES.setupFailure.render({
directory: resolved.directory,

View File

@@ -449,6 +449,7 @@ describe('create command composition', () => {
'next', [{ value: featureId('persistence'), choices: ['jsonl'] }], 'none',
]))
await expect(createProject(argv('next', false), noInstall)).resolves.toBeDefined()
expect(noInstall.readStdout()).toContain('npm install && npm run build && npm start')
})
it('uses the package manager setup path when no setup override is supplied', async () => {