Skip to content
Merged
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
1 change: 1 addition & 0 deletions .changepacks/changepack_log_Qac7dhVgMID0u2Cn0SgMv.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"changes":{"package.json":"Patch"},"note":"Update lib","date":"2026-04-30T16:06:14.140609400Z"}
6 changes: 4 additions & 2 deletions .github/workflows/check-pr.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,10 +12,12 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- uses: oven-sh/setup-bun@v2
- run: bun i
- run: |
bun test
bun run build
# eslint project can not lint before build
bun lint
bun run lint
6 changes: 4 additions & 2 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,15 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: latest
- uses: oven-sh/setup-bun@v2
- run: bun i
- run: |
bun test
bun run build
# eslint project can not lint before build
bun lint
bun run lint
- uses: changepacks/action@main
id: changepacks
with:
Expand Down
13 changes: 0 additions & 13 deletions .oxlintrc.json

This file was deleted.

28 changes: 23 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,30 @@ export default configs.recommended;

### Oxlint

Create an `.oxlintrc.json` file in your project root.
Create an `oxlint.config.ts` file in your project root.

```json
{
"extends": ["node_modules/eslint-plugin-devup/oxlintrc.json"]
}
```ts
import devupConfig from 'eslint-plugin-devup/oxlint-config'

export default devupConfig
```

Use the `eslint-plugin-devup/oxlint-config` export instead of importing a file path from `node_modules`. The package only publishes `dist`, and this export points to the built config while still generating rules dynamically from the installed plugin versions.

`oxlint.config.ts` is loaded by Oxlint through Node.js, so CI should use the latest Node.js when running `oxlint`.

If you need project-specific overrides, extend the config object.

```ts
import { defineConfig } from 'oxlint'
import devupConfig from 'eslint-plugin-devup/oxlint-config'

export default defineConfig({
extends: [devupConfig],
rules: {
'no-console': 'off',
},
})
```

## Test
Expand Down
521 changes: 122 additions & 399 deletions bun.lock

Large diffs are not rendered by default.

5 changes: 5 additions & 0 deletions oxlint.config.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
import { createOxlintConfig } from './src/oxlint-config.ts'

export default createOxlintConfig({
jsPluginSpecifier: './src/oxlint.ts',
})
206 changes: 0 additions & 206 deletions oxlintrc.json

This file was deleted.

39 changes: 22 additions & 17 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,11 @@
"main": "dist/index.cjs",
"type": "module",
"scripts": {
"sync:latest": "bun update --latest && bun install",
"test": "bun test",
"lint": "oxlint",
"lint:fix": "oxlint --fix",
"build": "tsc && bun build --target node src/index.ts --production --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --outfile dist/index.mjs --format esm --packages external && bun build --target node src/oxlint.ts --production --outfile dist/oxlint.mjs --format esm --packages external && cp dist/index.d.ts dist/index.d.cts",
"build": "tsc && bun build --target node src/index.ts --production --outfile dist/index.cjs --format cjs --packages external && bun build --target node src/index.ts --production --outfile dist/index.mjs --format esm --packages external && bun build --target node src/oxlint.ts --production --outfile dist/oxlint.mjs --format esm --packages external && bun build --target node src/oxlint-config.ts --production --outfile dist/oxlint-config.mjs --format esm --packages external && cp dist/index.d.ts dist/index.d.cts",
"prepare": "bun run husky"
},
"exports": {
Expand All @@ -26,47 +27,51 @@
"import": "./dist/oxlint.mjs",
"default": "./dist/oxlint.mjs"
},
"./oxlintrc": "./oxlintrc.json"
"./oxlint-config": {
"import": {
"types": "./dist/oxlint-config.d.ts",
"default": "./dist/oxlint-config.mjs"
},
"default": "./dist/oxlint-config.mjs"
}
},
"types": "./dist/index.d.ts",
"files": [
"dist",
"oxlintrc.json"
"dist"
],
"keywords": [
"eslint"
],
"author": "devfive",
"license": "ISC",
"dependencies": {
"@devup-ui/eslint-plugin": ">=1.0",
"@devup-ui/eslint-plugin": ">=1.0.14",
"@eslint/js": ">=10.0",
"@tanstack/eslint-plugin-query": ">=5",
"@tanstack/eslint-plugin-query": ">=5.100.6",
"eslint": ">=10.2",
"eslint-config-prettier": ">=10",
"eslint-plugin-mdx": ">=3",
"eslint-plugin-prettier": ">=5",
"eslint-plugin-react": ">=7",
"eslint-plugin-mdx": ">=3.7.0",
"eslint-plugin-prettier": ">=5.5.5",
"eslint-plugin-react": ">=7.37.5",
"eslint-plugin-react-hooks": ">=7",
"eslint-plugin-simple-import-sort": ">=12",
"eslint-plugin-unused-imports": ">=4",
"eslint-plugin-simple-import-sort": ">=13.0.0",
"eslint-plugin-unused-imports": ">=4.4.1",
"prettier": ">=3",
"typescript-eslint": ">=8.58"
"typescript-eslint": ">=8.59"
},
"peerDependencies": {
"eslint": "*"
},
"devDependencies": {
"@changesets/cli": "^2.30",
"@types/bun": "^1.3",
"@types/eslint": "^9.6",
"@typescript-eslint/rule-tester": "^8.58",
"@typescript-eslint/utils": "^8.58",
"@typescript-eslint/rule-tester": "^8.59",
"@typescript-eslint/utils": "^8.59",
"eslint-plugin-eslint-plugin": "^7.3",
"husky": "^9.1",
"oxlint": "^1.58.0",
"oxlint": "^1.62.0",
"typescript": "^6.0",
"vite": "^8.0",
"vite-plugin-dts": "^4.5"
"vite-plugin-dts": "^5.0"
}
}
Loading
Loading