Skip to content

Migrate to @playcanvas/eslint-config v3 (/typescript)#64

Merged
kpal81xd merged 15 commits into
mainfrom
eslint-config-v3
Jun 30, 2026
Merged

Migrate to @playcanvas/eslint-config v3 (/typescript)#64
kpal81xd merged 15 commits into
mainfrom
eslint-config-v3

Conversation

@kpal81xd

@kpal81xd kpal81xd commented Jun 4, 2026

Copy link
Copy Markdown
Contributor

Migrates this repo to @playcanvas/eslint-config v3, adopting the /typescript subpath tier. Part of the rollout in playcanvas/eslint-config#48.

Changes

  • Subpath migration: import playcanvasConfig from '@playcanvas/eslint-config'import typescriptConfig from '@playcanvas/eslint-config/typescript'. The /typescript tier provides the typescript-eslint parser + plugin (for **/*.{js,mjs,ts}, globals.node) and the import-x resolver out of the box.
  • Removed redundant wiring: dropped the manual @typescript-eslint/parser + @typescript-eslint/eslint-plugin imports and their parser/plugin config blocks, the manual import/resolver node-settings block (now supplied by the tier), and the now-defunct jsdoc/* rule overrides (the /typescript tier has no jsdoc plugin).
  • Namespace: renamed import/no-unresolvedimport-x/no-unresolved (v3 registers eslint-plugin-import-x natively).
  • Kept the repo-specific **/*.ts extra globals (browser + mocha + node), no-use-before-define: off, and the test-file no-unused-expressions: off block.
  • Dependency bump: pinned @playcanvas/eslint-config to 3.0.0-beta.6 (carries the import-x resolver fix) and removed @typescript-eslint/eslint-plugin + @typescript-eslint/parser from devDependencies (only referenced by the old config; the tier now provides them). Regenerated package-lock.json.

Auto-fixed (lint:fix)

3 source files auto-fixed (src/history.ts, src/observer-history.ts, src/observer.ts): import-x/consistent-type-specifier-style (value→type imports), redundant default-value type annotations, and stale eslint-disable directives.

Follow-up lint pass

  • Added Observer<T> top-level typing for get, set, patch, and json, plus ObserverList<T> and ObserverHistory<T> coverage in test/types.ts.
  • Replaced explicit dynamic any annotations with a shared Value type.
  • Fixed direct hasOwnProperty, arguments, and simple indexed-loop lint errors.
  • Added the TS-namespaced Chai assertion override for test files.

Verification

  • npm run lint
  • npm run type:check
  • npm run build
  • npm test

@kpal81xd kpal81xd marked this pull request as ready for review June 30, 2026 11:10
@kpal81xd kpal81xd merged commit 507fcc8 into main Jun 30, 2026
3 checks passed
@kpal81xd kpal81xd deleted the eslint-config-v3 branch June 30, 2026 13:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant