Language data is embedded in code: not tree-shakeable, no way to supply pinned data

Abierto
#158 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
38/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
typescript

Línea de trabajo

Start with find-language/language-data/languageData.json and the LanguageSearcher and createTag exports in @ethnolib/find-language. Check how the data is bundled and how the parity test compares chooser codes with keyboard-studio’s pinned snapshot. Done means hosts can provide or omit a data snapshot, while minimal imports no longer bundle the full table.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

In @ethnolib/find-language 0.4.4 the language data is embedded in the module, so importing only LanguageSearcher or createTag still bundles about 770 KB compressed (esbuild, minified). There is no way to tree-shake the data out, and no way for a host to supply its own pinned data snapshot.

Context: keyboard-studio pins its own langtags snapshot for its criteria and tag logic, while EthnoLib carries its own committed copy (find-language/language-data/languageData.json, last updated 2026-07-29, "langtags.json API 1.4"). The two snapshots can drift; we work around it with a parity test over every chooser code.

Please consider separating the data from the code (a data import the host can replace or omit), so a host can supply pinned data and a minimal import does not pay for the whole table.

Lenguaje dominante
TypeScript
Estrellas
9
Forks
8
Métricas de merge de PR
Sin PR fusionados en 30 d

Preparar el entorno

Este proyecto no incluye contenedor de desarrollo, Dockerfile ni guía de contribución, así que la configuración corre por tu cuenta: empieza por su README y consulta nuestra guía para la primera contribución para los pasos generales.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de sillsdev/EthnoLib

Todos los issues de sillsdev/EthnoLib

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.