Skip to content

Replace @tinymce/eslint-plugin with a project-owned ESLint config #81

Description

@curdopet

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions