Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion cli/create-start-app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pnpx create-start-app@latest my-app --tailwind --package-manager pnpm
Available options:

- `--package-manager`: Specify your preferred package manager (`npm`, `yarn`, `pnpm`, `bun`, or `deno`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`, `oxlint`)
- `--no-git`: Do not initialize a git repository
- `--add-ons`: Enable add-on selection or specify add-ons to install

Expand Down Expand Up @@ -65,6 +65,8 @@ Setting this flag to `biome` will configure it as your toolchain of choice, addi

Setting this flag to `eslint+prettier` will configure it as your toolchain of choice, adding an `eslint.config.js` and `prettier.config.js` to the root of the project, as well as a `.prettierignore` file. Consult the [eslint documentation](https://eslint.org/docs/latest/) and [prettier documentation](https://prettier.io/docs/) for further customization.

Setting this flag to `oxlint` will configure it as your toolchain of choice, adding a `.oxlintrc.json`, `prettier.config.js`, and `.prettierignore` to the root of the project. Consult the [oxlint documentation](https://oxc.rs/docs/guide/usage/linter.html) and [prettier documentation](https://prettier.io/docs/) for further customization.

## Add-ons (experimental)

You can enable add-on selection:
Expand Down
4 changes: 3 additions & 1 deletion cli/create-tanstack-app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Available options:
- `--template <type>`: Choose between `file-router`, `typescript`, or `javascript`
- `--tailwind`: Enable Tailwind CSS
- `--package-manager`: Specify your preferred package manager (`npm`, `yarn`, `pnpm`, `bun`, or `deno`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`, `oxlint`)
- `--no-git`: Do not initialize a git repository
- `--add-ons`: Enable add-on selection or specify add-ons to install

Expand Down Expand Up @@ -104,6 +104,8 @@ Setting this flag to `biome` will configure it as your toolchain of choice, addi

Setting this flag to `eslint+prettier` will configure it as your toolchain of choice, adding an `eslint.config.js` and `prettier.config.js` to the root of the project, as well as a `.prettierignore` file. Consult the [eslint documentation](https://eslint.org/docs/latest/) and [prettier documentation](https://prettier.io/docs/) for further customization.

Setting this flag to `oxlint` will configure it as your toolchain of choice, adding a `.oxlintrc.json`, `prettier.config.js`, and `.prettierignore` to the root of the project. Consult the [oxlint documentation](https://oxc.rs/docs/guide/usage/linter.html) and [prettier documentation](https://prettier.io/docs/) for further customization.

## Add-ons (experimental)

You can enable add-on selection:
Expand Down
4 changes: 3 additions & 1 deletion cli/create-tanstack/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Available options:
- `--template <type>`: Choose between `file-router`, `typescript`, or `javascript`
- `--tailwind`: Enable Tailwind CSS
- `--package-manager`: Specify your preferred package manager (`npm`, `yarn`, `pnpm`, `bun`, or `deno`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`, `oxlint`)
- `--no-git`: Do not initialize a git repository
- `--add-ons`: Enable add-on selection or specify add-ons to install

Expand Down Expand Up @@ -104,6 +104,8 @@ Setting this flag to `biome` will configure it as your toolchain of choice, addi

Setting this flag to `eslint+prettier` will configure it as your toolchain of choice, adding an `eslint.config.js` and `prettier.config.js` to the root of the project, as well as a `.prettierignore` file. Consult the [eslint documentation](https://eslint.org/docs/latest/) and [prettier documentation](https://prettier.io/docs/) for further customization.

Setting this flag to `oxlint` will configure it as your toolchain of choice, adding a `.oxlintrc.json`, `prettier.config.js`, and `.prettierignore` to the root of the project. Consult the [oxlint documentation](https://oxc.rs/docs/guide/usage/linter.html) and [prettier documentation](https://prettier.io/docs/) for further customization.

## Add-ons (experimental)

You can enable add-on selection:
Expand Down
4 changes: 3 additions & 1 deletion cli/create-tsrouter-app/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ Available options:
- `--template <type>`: Choose between `file-router`, `typescript`, or `javascript`
- `--tailwind`: Enable Tailwind CSS
- `--package-manager`: Specify your preferred package manager (`npm`, `yarn`, `pnpm`, `bun`, or `deno`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`, `oxlint`)
- `--no-git`: Do not initialize a git repository
- `--add-ons`: Enable add-on selection or specify add-ons to install

Expand Down Expand Up @@ -104,6 +104,8 @@ Setting this flag to `biome` will configure it as your toolchain of choice, addi

Setting this flag to `eslint+prettier` will configure it as your toolchain of choice, adding an `eslint.config.js` and `prettier.config.js` to the root of the project, as well as a `.prettierignore` file. Consult the [eslint documentation](https://eslint.org/docs/latest/) and [prettier documentation](https://prettier.io/docs/) for further customization.

Setting this flag to `oxlint` will configure it as your toolchain of choice, adding a `.oxlintrc.json`, `prettier.config.js`, and `.prettierignore` to the root of the project. Consult the [oxlint documentation](https://oxc.rs/docs/guide/usage/linter.html) and [prettier documentation](https://prettier.io/docs/) for further customization.

## Add-ons (experimental)

You can enable add-on selection:
Expand Down
4 changes: 3 additions & 1 deletion cli/ts-create-start/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ pnpm create @tanstack/start@latest my-app --tailwind --package-manager pnpm
Available options:

- `--package-manager`: Specify your preferred package manager (`npm`, `yarn`, `pnpm`, `bun`, or `deno`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`)
- `--toolchain`: Specify your toolchain solution for formatting/linting (`biome`, `eslint+prettier`, `oxlint`)
- `--no-git`: Do not initialize a git repository
- `--add-ons`: Enable add-on selection or specify add-ons to install

Expand Down Expand Up @@ -65,6 +65,8 @@ Setting this flag to `biome` will configure it as your toolchain of choice, addi

Setting this flag to `eslint+prettier` will configure it as your toolchain of choice, adding an `eslint.config.js` and `prettier.config.js` to the root of the project, as well as a `.prettierignore` file. Consult the [eslint documentation](https://eslint.org/docs/latest/) and [prettier documentation](https://prettier.io/docs/) for further customization.

Setting this flag to `oxlint` will configure it as your toolchain of choice, adding a `.oxlintrc.json`, `prettier.config.js`, and `.prettierignore` to the root of the project. Consult the [oxlint documentation](https://oxc.rs/docs/guide/usage/linter.html) and [prettier documentation](https://prettier.io/docs/) for further customization.

## Add-ons (experimental)

You can enable add-on selection:
Expand Down
5 changes: 4 additions & 1 deletion frameworks/react-cra/project/base/README.md.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,17 @@ This project uses [Tailwind CSS](https://tailwindcss.com/) for styling.
<% } else { %>
This project uses CSS for styling.
<% } %>
<% if (addOnEnabled.biome || addOnEnabled.eslint) { %>
<% if (addOnEnabled.biome || addOnEnabled.eslint || addOnEnabled.oxlint) { %>
## Linting & Formatting
<% if (addOnEnabled.biome) { %>
This project uses [Biome](https://biomejs.dev/) for linting and formatting. The following scripts are available:
<% } %>
<% if (addOnEnabled.eslint) { %>
This project uses [eslint](https://eslint.org/) and [prettier](https://prettier.io/) for linting and formatting. Eslint is configured using [tanstack/eslint-config](https://tanstack.com/config/latest/docs/eslint). The following scripts are available:
<% } %>
<% if (addOnEnabled.oxlint) { %>
This project uses [Oxlint](https://oxc.rs/docs/guide/usage/linter.html) and [prettier](https://prettier.io/) for linting and formatting. The following scripts are available:
<% } %>
```bash
<%= getPackageManagerRunScript('lint') %>
<%= getPackageManagerRunScript('format') %>
Expand Down
21 changes: 21 additions & 0 deletions frameworks/react-cra/project/base/_dot_vscode/settings.json.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,26 @@
},
"editor.codeActionsOnSave": {
"source.organizeImports.biome": "explicit"
}<% } %><% if (addOnEnabled.oxlint) { %>,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}<% } %>
}
1 change: 1 addition & 0 deletions frameworks/react-cra/project/base/tsconfig.json.ejs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<% if (!typescript) { ignoreFile() } %>{
<% if (addOnEnabled.eslint) { %>"include": ["**/*.ts", "**/*.tsx", "eslint.config.js", "prettier.config.js", "vite.config.js"],
<% } else if (addOnEnabled.oxlint) { %>"include": ["**/*.ts", "**/*.tsx", ".oxlintrc.json", "prettier.config.js", "vite.config.js"],
<% } else { %>"include": ["**/*.ts", "**/*.tsx"],<% } %>
"compilerOptions": {
"target": "ES2022",
Expand Down

Large diffs are not rendered by default.

142 changes: 142 additions & 0 deletions frameworks/react-cra/toolchains/oxlint/assets/.oxlintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,142 @@
{
"$schema": "./node_modules/oxlint/configuration_schema.json",
"plugins": [
"unicorn",
"typescript",
"oxc"
],
"categories": {},
"rules": {
"for-direction": "warn",
"no-async-promise-executor": "warn",
"no-caller": "warn",
"no-class-assign": "warn",
"no-compare-neg-zero": "warn",
"no-cond-assign": "warn",
"no-const-assign": "warn",
"no-constant-binary-expression": "warn",
"no-constant-condition": "warn",
"no-control-regex": "warn",
"no-debugger": "warn",
"no-delete-var": "warn",
"no-dupe-class-members": "warn",
"no-dupe-else-if": "warn",
"no-dupe-keys": "warn",
"no-duplicate-case": "warn",
"no-empty-character-class": "warn",
"no-empty-pattern": "warn",
"no-empty-static-block": "warn",
"no-eval": "warn",
"no-ex-assign": "warn",
"no-extra-boolean-cast": "warn",
"no-func-assign": "warn",
"no-global-assign": "warn",
"no-import-assign": "warn",
"no-invalid-regexp": "warn",
"no-irregular-whitespace": "warn",
"no-loss-of-precision": "warn",
"no-new-native-nonconstructor": "warn",
"no-nonoctal-decimal-escape": "warn",
"no-obj-calls": "warn",
"no-self-assign": "warn",
"no-setter-return": "warn",
"no-shadow-restricted-names": "warn",
"no-sparse-arrays": "warn",
"no-this-before-super": "warn",
"no-unassigned-vars": "warn",
"no-unsafe-finally": "warn",
"no-unsafe-negation": "warn",
"no-unsafe-optional-chaining": "warn",
"no-unused-labels": "warn",
"no-unused-private-class-members": "warn",
"no-unused-vars": "warn",
"no-useless-backreference": "warn",
"no-useless-catch": "warn",
"no-useless-escape": "warn",
"no-useless-rename": "warn",
"no-with": "warn",
"require-yield": "warn",
"use-isnan": "warn",
"valid-typeof": "warn",
"oxc/bad-array-method-on-arguments": "warn",
"oxc/bad-char-at-comparison": "warn",
"oxc/bad-comparison-sequence": "warn",
"oxc/bad-min-max-func": "warn",
"oxc/bad-object-literal-comparison": "warn",
"oxc/bad-replace-all-arg": "warn",
"oxc/const-comparisons": "warn",
"oxc/double-comparisons": "warn",
"oxc/erasing-op": "warn",
"oxc/missing-throw": "warn",
"oxc/number-arg-out-of-range": "warn",
"oxc/only-used-in-recursion": "warn",
"oxc/uninvoked-array-callback": "warn",
"typescript/await-thenable": "warn",
"typescript/no-array-delete": "warn",
"typescript/no-base-to-string": "warn",
"typescript/no-duplicate-enum-values": "warn",
"typescript/no-duplicate-type-constituents": "warn",
"typescript/no-extra-non-null-assertion": "warn",
"typescript/no-floating-promises": "warn",
"typescript/no-for-in-array": "warn",
"typescript/no-implied-eval": "warn",
"typescript/no-meaningless-void-operator": "warn",
"typescript/no-misused-new": "warn",
"typescript/no-misused-spread": "warn",
"typescript/no-non-null-asserted-optional-chain": "warn",
"typescript/no-redundant-type-constituents": "warn",
"typescript/no-this-alias": "warn",
"typescript/no-unnecessary-parameter-property-assignment": "warn",
"typescript/no-unsafe-declaration-merging": "warn",
"typescript/no-unsafe-unary-minus": "warn",
"typescript/no-useless-empty-export": "warn",
"typescript/no-wrapper-object-types": "warn",
"typescript/prefer-as-const": "warn",
"typescript/require-array-sort-compare": "warn",
"typescript/restrict-template-expressions": "warn",
"typescript/triple-slash-reference": "warn",
"typescript/unbound-method": "warn",
"unicorn/no-await-in-promise-methods": "warn",
"unicorn/no-empty-file": "warn",
"unicorn/no-invalid-fetch-options": "warn",
"unicorn/no-invalid-remove-event-listener": "warn",
"unicorn/no-new-array": "warn",
"unicorn/no-single-promise-in-promise-methods": "warn",
"unicorn/no-thenable": "warn",
"unicorn/no-unnecessary-await": "warn",
"unicorn/no-useless-fallback-in-spread": "warn",
"unicorn/no-useless-length-check": "warn",
"unicorn/no-useless-spread": "warn",
"unicorn/prefer-set-size": "warn",
"unicorn/prefer-string-starts-ends-with": "warn"
},
"settings": {
"jsx-a11y": {
"polymorphicPropName": null,
"components": {},
"attributes": {}
},
"next": {
"rootDir": []
},
"react": {
"formComponents": [],
"linkComponents": []
},
"jsdoc": {
"ignorePrivate": false,
"ignoreInternal": false,
"ignoreReplacesDocs": true,
"overrideReplacesDocs": true,
"augmentsExtendsReplacesDocs": false,
"implementsReplacesDocs": false,
"exemptDestructuredRootsFromChecks": false,
"tagNamePreference": {}
}
},
"env": {
"builtin": true
},
"globals": {},
"ignorePatterns": []
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package-lock.json
pnpm-lock.yaml
yarn.lock
11 changes: 11 additions & 0 deletions frameworks/react-cra/toolchains/oxlint/assets/prettier.config.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
// @ts-check

/** @type {import('prettier').Config} */
const config = {
semi: false,
singleQuote: true,
trailingComma: "all",
plugins: ["@prettier/plugin-oxc"]
};

export default config;
8 changes: 8 additions & 0 deletions frameworks/react-cra/toolchains/oxlint/info.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"name": "Oxlint",
"description": "Oxlint linter + Prettier toolchain support.",
"phase": "setup",
"type": "toolchain",
"modes": ["code-router", "file-router"],
"link": "https://oxc.rs/docs/guide/usage/linter"
}
12 changes: 12 additions & 0 deletions frameworks/react-cra/toolchains/oxlint/package.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
{
"scripts": {
"lint": "oxlint",
"format": "prettier",
"check": "prettier --write . && oxlint --fix"
},
"devDependencies": {
"oxlint": "^1.18.0",
"prettier": "^3.5.3",
"@prettier/plugin-oxc": "^0.0.4"
}
}
14 changes: 14 additions & 0 deletions frameworks/react-cra/toolchains/oxlint/small-logo.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
5 changes: 4 additions & 1 deletion frameworks/solid/project/base/README.md.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -195,14 +195,17 @@ Loaders simplify your data fetching logic dramatically. Check out more informati

Files prefixed with `demo` can be safely deleted. They are there to provide a starting point for you to play around with the features you've installed.

<% if (addOnEnabled.biome || addOnEnabled.eslint) { %>
<% if (addOnEnabled.biome || addOnEnabled.eslint || addOnEnabled.oxlint) { %>
## Linting & Formatting
<% if (addOnEnabled.biome) { %>
This project uses [Biome](https://biomejs.dev/) for linting and formatting. The following scripts are available:
<% } %>
<% if (addOnEnabled.eslint) { %>
This project uses [eslint](https://eslint.org/) and [prettier](https://prettier.io/) for linting and formatting. Eslint is configured using [tanstack/eslint-config](https://tanstack.com/config/latest/docs/eslint). The following scripts are available:
<% } %>
<% if (addOnEnabled.oxlint) { %>
This project uses [Oxlint](https://oxc.rs/docs/guide/usage/linter.html) and [prettier](https://prettier.io/) for linting and formatting. The following scripts are available:
<% } %>
```bash
<%= getPackageManagerRunScript('lint') %>
<%= getPackageManagerRunScript('format') %>
Expand Down
21 changes: 21 additions & 0 deletions frameworks/solid/project/base/_dot_vscode/settings.json.ejs
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,26 @@
},
"editor.codeActionsOnSave": {
"source.organizeImports.biome": "explicit"
}<% } %><% if (addOnEnabled.oxlint) { %>,
"[javascript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[javascriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescript]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[typescriptreact]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[json]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[jsonc]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
},
"[css]": {
"editor.defaultFormatter": "esbenp.prettier-vscode"
}<% } %>
}
1 change: 1 addition & 0 deletions frameworks/solid/project/base/tsconfig.json.ejs
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<% if (!typescript) { ignoreFile() } %>{
<% if (addOnEnabled.eslint) { %>"include": ["**/*.ts", "**/*.tsx", "eslint.config.js", "prettier.config.js", "vite.config.js"],
<% } else if (addOnEnabled.oxlint) { %>"include": ["**/*.ts", "**/*.tsx", ".oxlintrc.json", "prettier.config.js", "vite.config.js"],
<% } else { %>"include": ["**/*.ts", "**/*.tsx"],<% } %>
"compilerOptions": {
"target": "ES2022",
Expand Down
Loading