Skip to content

Break interaction-registry import cycles in qti3-player #17

@ottenhoff

Description

@ottenhoff

Context

import/no-cycle is enabled repo-wide. Sixteen known player modules still participate in interaction-registry hub cycles and are temporarily exempt in .oxlintrc.json via an explicit file list (not a package-wide carve-out).

Goal

Refactor packages/player interaction routing so registry, dispatch, shared helpers, and individual interaction renderers do not import each other cyclically.

Known exempt files

  • packages/player/src/content/content-renderer.ts
  • packages/player/src/interactions/choice-interaction.ts
  • packages/player/src/interactions/gap-match-interaction.ts
  • packages/player/src/interactions/graphic-associate-interaction.ts
  • packages/player/src/interactions/inline-choice-interaction.ts
  • packages/player/src/interactions/interaction-dispatch.ts
  • packages/player/src/interactions/interaction-registry.ts
  • packages/player/src/interactions/match-directed-pair-list.ts
  • packages/player/src/interactions/match-directed-pairs.ts
  • packages/player/src/interactions/match-interaction.ts
  • packages/player/src/interactions/pair-chip.ts
  • packages/player/src/interactions/pair-interaction.ts
  • packages/player/src/interactions/shared.ts
  • packages/player/src/player-message-catalog.ts
  • packages/player/src/player-message-resolver.ts
  • packages/player/src/reorder/order-interaction.ts

Done when

  • The override block can be removed from .oxlintrc.json
  • pnpm lint:raw passes with import/no-cycle enabled for all player sources

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions