diff --git a/.changeset/biome-starter-format.md b/.changeset/biome-starter-format.md new file mode 100644 index 00000000..63d37a07 --- /dev/null +++ b/.changeset/biome-starter-format.md @@ -0,0 +1,5 @@ +--- +'@tanstack/create': patch +--- + +Match Biome formatting defaults to the generated React and Solid starter files. diff --git a/packages/create/scripts/generate-manifest.mjs b/packages/create/scripts/generate-manifest.mjs index 065db369..ca5f557f 100644 --- a/packages/create/scripts/generate-manifest.mjs +++ b/packages/create/scripts/generate-manifest.mjs @@ -274,6 +274,7 @@ function createTemplateRendererSource(renderers = templateRenderers) { const { packageManager, projectName, + formatsTypeScript, bundler, typescript, tailwind, @@ -327,6 +328,7 @@ type TemplateRenderContext = { [key: string]: any packageManager: any projectName: any + formatsTypeScript?: boolean bundler: any typescript: any tailwind: any diff --git a/packages/create/src/frameworks/react/toolchains/biome/assets/biome.json.ejs b/packages/create/src/frameworks/react/toolchains/biome/assets/biome.json.ejs index 662c9738..b0e30102 100644 --- a/packages/create/src/frameworks/react/toolchains/biome/assets/biome.json.ejs +++ b/packages/create/src/frameworks/react/toolchains/biome/assets/biome.json.ejs @@ -1,36 +1,37 @@ { - "$schema": "https://biomejs.dev/schemas/2.4.5/schema.json", - "vcs": { - "enabled": false, - "clientKind": "git", - "useIgnoreFile": false - }, - "files": { - "ignoreUnknown": false, - "includes": [ - "**/src/**/*", - "**/.vscode/**/*", - <% if (bundler === 'vite') { %>"**/index.html", - <% } %>"**/<%= bundler %>.config.ts", - "!**/src/routeTree.gen.ts", - "!**/src/styles.css" - ] - }, - "formatter": { - "enabled": true, - "indentStyle": "tab" - }, - "assist": { "actions": { "source": { "organizeImports": "on" } } }, - "linter": { - "enabled": true, - "rules": { - "recommended": true - } - }, - "javascript": { - "formatter": { - "quoteStyle": "double" - } - } + "$schema": "https://biomejs.dev/schemas/2.4.5/schema.json", + "vcs": { + "enabled": false, + "clientKind": "git", + "useIgnoreFile": false + }, + "files": { + "ignoreUnknown": false, + "includes": [ + "**/src/**/*", + "**/.vscode/**/*", + <% if (bundler === 'vite') { %>"**/index.html", + <% } %>"**/<%= bundler %>.config.ts", + "!**/src/routeTree.gen.ts", + "!**/src/styles.css" + ] + }, + "formatter": { + "enabled": true, + <% if (formatsTypeScript) { %>"indentStyle": "space", + "indentWidth": 2<% } else { %>"indentStyle": "tab"<% } %> + }, + "assist": { "actions": { "source": { "organizeImports": "on" } } }, + "linter": { + "enabled": true, + "rules": { + "recommended": true + } + }, + "javascript": { + "formatter": { + <% if (formatsTypeScript) { %>"quoteStyle": "single", + "semicolons": "asNeeded"<% } else { %>"quoteStyle": "double"<% } %> + } + } } -<% if (bundler) { %><% } %> diff --git a/packages/create/src/frameworks/solid/toolchains/biome/assets/biome.json.ejs b/packages/create/src/frameworks/solid/toolchains/biome/assets/biome.json.ejs index 00338a2c..b0e30102 100644 --- a/packages/create/src/frameworks/solid/toolchains/biome/assets/biome.json.ejs +++ b/packages/create/src/frameworks/solid/toolchains/biome/assets/biome.json.ejs @@ -18,7 +18,8 @@ }, "formatter": { "enabled": true, - "indentStyle": "tab" + <% if (formatsTypeScript) { %>"indentStyle": "space", + "indentWidth": 2<% } else { %>"indentStyle": "tab"<% } %> }, "assist": { "actions": { "source": { "organizeImports": "on" } } }, "linter": { @@ -29,7 +30,8 @@ }, "javascript": { "formatter": { - "quoteStyle": "double" + <% if (formatsTypeScript) { %>"quoteStyle": "single", + "semicolons": "asNeeded"<% } else { %>"quoteStyle": "double"<% } %> } } } diff --git a/packages/create/src/template-file.ts b/packages/create/src/template-file.ts index 19ebee8e..22d345de 100644 --- a/packages/create/src/template-file.ts +++ b/packages/create/src/template-file.ts @@ -128,6 +128,7 @@ export function createTemplateFile(environment: Environment, options: Options) { integration.code || integration.jsName const templateValues = { + formatsTypeScript: true, packageManager: options.packageManager, projectName: options.projectName, bundler: options.bundler ?? 'vite',