rescript-lang / rescript-lang/experimental-rescript-webapi

Simplify package module/type structure

Offen
#237 0 Kommentare 0 Reaktionen 3 zugewiesene Personen Auf GitHub ansehen

@jderochervlk arbeitet bereits daran.

Seit 18.4.2026.

Vorherrschende Sprache
ReScript
Sterne
40
Forks
11
Ø Merge
3 T. 12 Std.
Gemergte PRs (30 T.)
12

Beschreibung

Summary

Pre-alpha breaking cleanup to simplify the package structure and make the public surface more consistent.

This issue tracks the refactor to:

  • rename root *API type-holder modules to *Types
  • keep the existing folder structure for concrete modules
  • export the primary concrete type as t
  • selectively re-export additional public helper types from the concrete module that uses them
  • remove unrelated open usage
  • remove trivial primitive aliases like string, bool, unit, and low-value callback aliases where they do not add meaning
  • remove window and navigator from Global without deleting Global
  • shift access toward owner modules such as Window, Navigator, History, Storage, Performance, and similar modules
  • avoid introducing any new include directives as part of the simplification

Out Of Scope

  • contributor docs
  • code-generation conventions
  • deleting Global
  • flattening the folder structure

Execution Order

  • #239 must land first
  • #238, #240, #241, and #243 can run in parallel after #239
  • #242 is the final integration pass

Linked Issues

  • #239 Shared groundwork for package simplification
  • #238 Simplify DOM, event, and observer module surfaces
  • #240 Simplify fetch, file, canvas, URL, and socket module surfaces
  • #241 Move runtime capability access away from Global window and navigator
  • #243 Simplify media and device module surfaces
  • #242 Final integration for package simplification

Acceptance Criteria

  • No root src/*API.res type-holder files remain; they are replaced by src/*Types.res.
  • The existing folder structure remains in place.
  • Each concrete module exports its main type as t.
  • Concrete modules selectively re-export secondary public types only where justified.
  • Unrelated open usage is removed.
  • No new include directives are introduced by this refactor.
  • Trivial primitive aliases are removed instead of being renamed or moved.
  • Global.window and Global.navigator are removed.
  • Source and tests stop depending on Global.window and Global.navigator.
  • The package passes npm run build and npm test after integration.

Beitragsleitfaden

Für dieses Repository ist kein Beitragsleitfaden indexiert

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Bewertung

Dieses Issue wurde noch nicht bewertet.

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.