Commit 370d3a8
authored
chore(tooling): migrate lint and formatting to oxlint and oxfmt (tldraw#8258)
Closes tldraw#7572.
In order to remove slow dual-linting and simplify the toolchain, this PR
fully migrates the repo from ESLint + Prettier to Oxlint + Oxfmt, with
workspace lint scripts executing Oxlint from the repo root for
consistent config resolution.
This removes the ESLint config and in-repo ESLint plugin setup, adds an
Oxlint JS plugin for tldraw-specific rules, switches formatter commands
and config to Oxfmt, and updates package/workspace scripts and CI to use
the new stack end-to-end.
### After:
Oxlint: ~6s
Oxfmt: ~162ms
### Before:
Eslint: ~1min 15s
Prettier: ~4s
### Change type
- [x] `improvement`
### Test plan
1. Run `yarn lint` from repo root.
2. Run `yarn lint` from a workspace (for example `packages/tldraw` and
`apps/dotcom/client`) and verify it passes.
3. Run `yarn check-packages` and verify lint script expectations pass.
4. Run `yarn format-current` and `yarn lint-current` on changed files.
- [ ] Unit tests
- [ ] End to end tests1 parent 648503b commit 370d3a8
205 files changed
Lines changed: 2234 additions & 3635 deletions
File tree
- .github/workflows
- apps
- analytics-worker
- analytics
- bemo-worker
- docs
- scripts/lib
- dotcom
- asset-upload-worker
- client
- e2e
- fixtures
- tests
- src/tla
- app
- components
- TlaEditor
- dialogs
- pages
- utils
- image-resize-worker
- sync-worker
- src
- zero
- tldrawusercontent-worker
- zero-cache
- examples
- e2e/tests
- src
- examples
- collaboration/user-presence
- configuration
- asset-props
- exploded
- only-editor
- readonly
- data/assets
- export-canvas-as-image
- export-canvas-settings
- hosted-images
- editor-api/local-images
- events
- canvas-events
- meta-on-change
- meta-on-create
- signals
- store-events
- ui-events
- layout/multiple
- shapes/tools
- bounds-snapping-shape
- custom-config
- speech-bubble/SpeechBubble
- ui
- action-overrides
- add-tool-to-toolbar
- custom-components
- custom-error-capture
- custom-ui
- force-mobile
- hide-ui
- keyboard-shortcuts
- text-mass-style-updates
- things-on-the-canvas
- toasts-and-dialogs
- zones
- use-cases/exam-marking
- hooks
- mcp-app
- src/widget
- vscode
- editor
- extension
- src
- internal
- apps-script
- health-worker
- scripts
- eslint
- oxlint
- packages
- assets
- create-tldraw
- driver
- editor
- src
- lib
- components/default-components
- config
- editor/managers
- ClickManager
- InputsManager
- primitives
- geometry
- utils
- sync
- mermaid
- namespaced-tldraw
- src
- state-react
- state
- src/lib
- __tests__
- store
- src/lib
- sync-core
- src
- lib
- test
- sync
- src
- tldraw
- src
- lib
- ui/components/primitives
- test/testutils
- tlschema
- src
- records
- utils
- src/lib
- validate
- templates
- agent
- branching-chat
- client/nodes/types
- chat
- image-pipeline
- src/nodes/types
- nextjs
- shader
- simple-server-example
- socketio-server-example
- sync-cloudflare
- vite
- vue
- workflow
- src/nodes/types
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | 18 | | |
33 | 19 | | |
34 | 20 | | |
| |||
58 | 44 | | |
59 | 45 | | |
60 | 46 | | |
61 | | - | |
62 | 47 | | |
63 | 48 | | |
64 | | - | |
65 | | - | |
| 49 | + | |
66 | 50 | | |
67 | | - | |
| 51 | + | |
68 | 52 | | |
69 | 53 | | |
70 | 54 | | |
| |||
80 | 64 | | |
81 | 65 | | |
82 | 66 | | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
83 | 70 | | |
84 | 71 | | |
85 | 72 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
0 commit comments