[utils] Ban enums, and replace them with alternatives
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 65/100
- Tipo de issue
- Refactorización
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- tooling
Línea de trabajo
Empieza en packages/utils, en src/caip-types.ts:134, src/misc.ts:137 y src/time.ts:4, para inspeccionar los tres enums exportados y sus puntos de llamada. Sustitúyelos por objetos const y tipos unión derivados, conservando el comportamiento en los puntos de llamada, y adapta la regla de lint a la configuración compartida de core. Se considera terminado cuando las exportaciones de los enums sean estructurales y el breaking change esté preparado para una versión major.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Carried over from https://github.com/MetaMask/utils/pull/280, which was approved but still open when @metamask/utils moved into core.
TypeScript is structurally typed nearly everywhere, but enums are nominal. Two enums that look identical are not assignable to each other, so a value produced by one copy of a package fails to typecheck against a function from another copy. That bites hardest in a monorepo with duplicated versions in the tree.
packages/utils still exports three:
KnownCaipNamespaceinsrc/caip-types.ts:134JsonSizeinsrc/misc.ts:137Durationinsrc/time.ts:4
The original PR replaces them with const objects plus derived union types, which keeps the call sites working while making the types structural.
Note this is a breaking change for consumers who use the enum types nominally, so it wants a major. The PR's .eslintrc.js rule does not port directly since core has its own shared config.
- Lenguaje dominante
- TypeScript
- Estrellas
- 422
- Forks
- 313
- Merge medio
- 1 d 8 h
- PR fusionados (30 d)
- 414
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de MetaMask/core
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día
-
CI: "Validate changelog diffs" job fails on every fork-sourced pull requestPosiblemente ocupada @Roxen-AS la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 84/100
Los mantenedores suelen responder en 1 día
-
platform-api-docs: `scan` strategy misses ESM-only packages, which ship `.d.ts` rather than `.d.cts`Posiblemente ocupada @gaohan1994 la tomó hace 21 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
Los mantenedores suelen responder en 1 día
-
[utils] Replace the `uuid` dependency with `crypto.randomUUID()`Posiblemente ocupada @avantikonde la tomó hace 34 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
MetaMask/core#10210 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
[utils] `toWei` accepts fractional wei and returns wrong valuesPosiblemente ocupada @Roxen-AS la tomó hace 20 días. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 88/100
Los mantenedores suelen responder en 1 día
Todos los issues de MetaMask/core
Issues similares
-
[FEATURE] 场景打开后主界面左上角缺失【返回】按钮Abiertoenhancement module: library-ui
Dificultad 2/5 1-3 horas Aptitud para principiantes 65/100
chthollyphile/folia-major#1206 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
typescript-eslint/typescript-eslint#13189 ·
Los mantenedores suelen responder en 2 días
-
severity:medium triage:confirmed triage:in-progress triage:reproduced
Dificultad 2/5 1-3 horas Aptitud para principiantes 73/100
Cotal-AI/Cotal#6442 · 2 comentarios ·
Los mantenedores suelen responder en 1 día
-
wrong type
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
elastic/elasticsearch-specification#6919 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
Los mantenedores suelen responder en 1 día