Skip to content

Simplify DOM, event, and observer module surfaces #238

@jderochervlk

Description

@jderochervlk

Parent: #237

Blocked by: #239

Summary

Update the DOM and event-related surface to follow the new *Types + concrete-module t contract.

Scope

  • Prelude
  • Event
  • DOM
  • UIEvents
  • IntersectionObserver
  • MutationObserver
  • ResizeObserver
  • ViewTransitions
  • related DOM/observer tests

Files

  • src/Prelude.res
  • src/Prelude/*.res
  • src/EventTypes.res
  • src/EventAPI/*.res
  • src/DOMTypes.res
  • src/DOMAPI/*.res
  • src/UIEventsTypes.res
  • src/UIEventsAPI/*.res
  • src/IntersectionObserverTypes.res
  • src/IntersectionObserverAPI/*.res
  • src/MutationObserverTypes.res
  • src/MutationObserverAPI/*.res
  • src/ResizeObserverTypes.res
  • src/ResizeObserverAPI/*.res
  • src/ViewTransitionsTypes.res
  • src/ViewTransitionsAPI/*.res
  • tests/DOMAPI/*.res
  • tests/IntersectionObserverAPI/*.res
  • tests/MutationObserverAPI/*.res

Checklist

  • Add type t = ... = { ... } to the event and DOM foundation modules
  • Add selective secondary re-exports where they belong in the concrete module surface
  • Remove trivial aliases such as DOM's voidFunction while keeping meaningful callback contracts like frameRequestCallback
  • Update DOM-facing tests to use renamed root type modules and Window.current where needed
  • Verify the diff adds no new include directives
  • Run npm run build
  • Run npm test

Acceptance Criteria

  • concrete DOM/event modules expose t
  • selective secondary re-exports exist only where justified
  • unrelated opens are reduced or removed in the edited surface
  • no new include directives are introduced
  • DOM/observer tests pass under the new module naming and access pattern

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