Context
Linting currently relies entirely on @tinymce/eslint-plugin (Tiny Technologies' shareable config). .eslintrc.json extends plugin:@tinymce/standard and this single package provides the whole toolchain — eslint, @typescript-eslint/parser + @typescript-eslint/eslint-plugin, eslint-plugin-import, eslint-plugin-mocha, eslint-plugin-prefer-arrow, plus Tiny's custom rules (e.g. @tinymce/prefer-fun).
Since this is a wrapper for OpenTiny, we want to drop the @tinymce/* dev tooling and own our lint configuration.
Motivation
- Remove the
@tinymce/* branding/dependency from dev tooling.
- Unblock a newer
@typescript-eslint. @tinymce/eslint-plugin@2.3.1 pins an older @typescript-eslint that predates our TypeScript version — this is the source of the "TypeScript version not officially supported" warning. Owning the config lets us use a current version and clear the warning.
Scope
- Add direct devDependencies:
eslint, @typescript-eslint/parser, @typescript-eslint/eslint-plugin, eslint-plugin-import (and React/react-hooks plugins if desired).
- Write a new ESLint config (flat
eslint.config.js or legacy .eslintrc) based on eslint:recommended + @typescript-eslint/recommended.
- Port the intentional rule overrides currently in
.eslintrc.json (e.g. the @typescript-eslint/no-unsafe-argument off; drop the @tinymce/prefer-fun rule, which won't exist).
- Remove
@tinymce/eslint-plugin from package.json and refresh yarn.lock.
- Fix any new lint violations surfaced by the different ruleset.
- Ensure the
lint script and CI still work.
Context
Linting currently relies entirely on
@tinymce/eslint-plugin(Tiny Technologies' shareable config)..eslintrc.jsonextendsplugin:@tinymce/standardand this single package provides the whole toolchain —eslint,@typescript-eslint/parser+@typescript-eslint/eslint-plugin,eslint-plugin-import,eslint-plugin-mocha,eslint-plugin-prefer-arrow, plus Tiny's custom rules (e.g.@tinymce/prefer-fun).Since this is a wrapper for OpenTiny, we want to drop the
@tinymce/*dev tooling and own our lint configuration.Motivation
@tinymce/*branding/dependency from dev tooling.@typescript-eslint.@tinymce/eslint-plugin@2.3.1pins an older@typescript-eslintthat predates our TypeScript version — this is the source of the "TypeScript version not officially supported" warning. Owning the config lets us use a current version and clear the warning.Scope
eslint,@typescript-eslint/parser,@typescript-eslint/eslint-plugin,eslint-plugin-import(and React/react-hooks plugins if desired).eslint.config.jsor legacy.eslintrc) based oneslint:recommended+@typescript-eslint/recommended..eslintrc.json(e.g. the@typescript-eslint/no-unsafe-argumentoff; drop the@tinymce/prefer-funrule, which won't exist).@tinymce/eslint-pluginfrompackage.jsonand refreshyarn.lock.lintscript and CI still work.