Skip to content

refactor(web): move common code to abstract KeyboardProcessor base class 🎼#15893

Merged
ermshiperete merged 1 commit into
epic/web-corefrom
refactor/web/kbdProcessor
Apr 30, 2026
Merged

refactor(web): move common code to abstract KeyboardProcessor base class 🎼#15893
ermshiperete merged 1 commit into
epic/web-corefrom
refactor/web/kbdProcessor

Conversation

@ermshiperete
Copy link
Copy Markdown
Contributor

This change moves code that was implemented in both JSKeyboardProcessor and CoreKeyboardProcessor to the AbstractKeyboardProcessor. This got renamed from KeyboardProcessor and is now a generic abstract class.

Also removed some of the band-aids in CoreKeyboardInterface and JSKeyboardInterface that I put in before: Typescript allows implementations to have a slightly different method signature and still matches the interface as long as the used types are derived from the ones specified in the interface.

Follows: #15870
Build-bot: skip build:web
Test-bot: skip

@keymanapp-test-bot
Copy link
Copy Markdown

keymanapp-test-bot Bot commented Apr 28, 2026

User Test Results

Test specification and instructions

User tests are not required

Test Artifacts

  • Web
    • KeymanWeb Test Home - build : all tests passed (no artifacts on BuildLevel "build")

@keymanapp-test-bot keymanapp-test-bot Bot changed the title refactor(web): move common code to abstract KeyboardProcessor base class refactor(web): move common code to abstract KeyboardProcessor base class 🎼 Apr 28, 2026
@keymanapp-test-bot keymanapp-test-bot Bot added this to the A19S28 milestone Apr 28, 2026
@ermshiperete ermshiperete force-pushed the refactor/web/kbdProcessor branch from 3249b1d to 6b766f8 Compare April 28, 2026 16:59
…class

This change moves code that was implemented in both `JSKeyboardProcessor`
and `CoreKeyboardProcessor` to the `AbstractKeyboardProcessor`. This got
renamed from `KeyboardProcessor` and is now a generic abstract class.

Also removed some of the band-aids in `CoreKeyboardInterface` and
`JSKeyboardInterface` that I put in before: Typescript allows
implementations to have a slightly different method signature and still
matches the interface as long as the used types are derived from the ones
specified in the interface.

Follows: #15870
Build-bot: skip build:web
Test-bot: skip
@ermshiperete ermshiperete force-pushed the refactor/web/kbdProcessor branch from 6b766f8 to 10fcfe4 Compare April 28, 2026 16:59
@ermshiperete ermshiperete marked this pull request as ready for review April 28, 2026 17:00
Copy link
Copy Markdown
Member

@mcdurdin mcdurdin left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM. I am always a bit cautious about adding more layers of abstraction but this looks appropriate

@ermshiperete ermshiperete merged commit 90caa12 into epic/web-core Apr 30, 2026
7 of 8 checks passed
@github-project-automation github-project-automation Bot moved this from Todo to Done in Keyman Apr 30, 2026
@ermshiperete ermshiperete deleted the refactor/web/kbdProcessor branch April 30, 2026 17:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

Archived in project

Development

Successfully merging this pull request may close these issues.

2 participants