Skip to content

Clarify enum and object literals usage in scalajs-dom #842

@zetashift

Description

@zetashift
Contributor

Enums

Enums currently are defined separately for Scala 2 and Scala 3,not only that these enums, are anonymous objects backed by string fields. Because scalajs-dom wants to stay as close as possible to the JavaScript Web API.

we use enums like this:

PredefinedColorSpace.`display-p3` 

Object literals

These are anonymous objects in Scala 3:

ImageData(200, 100, new { colorSpace = PredefinedColorSpace.`display-p3` })
                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ the object literal

They are not something like ImageSettings.apply(...) because of sjs-dom goal, stay as close as possible to the JS API.

Not clean, but we should documentate why it is like this, with some example, most likely adding this to CONTRIBUTING.md.

Activity

changed the title [-]Clarify `enum` usage in `scalajs-dom`[/-] [+]Clarify `enum` and `object literals` usage in `scalajs-dom`[/+] on Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

      Development

      No branches or pull requests

        Participants

        @zetashift

        Issue actions

          Clarify `enum` and `object literals` usage in `scalajs-dom` · Issue #842 · scala-js/scala-js-dom