Skip to content

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

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

refactor(web): move common code to abstract KeyboardProcessor base class 🎼#15893
ermshiperete merged 1 commit intoepic/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

Status: Done

Development

Successfully merging this pull request may close these issues.

2 participants