-
Notifications
You must be signed in to change notification settings - Fork 13
develop to main #14
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
develop to main #14
Conversation
* Añadir @es-js/runtime * Arreglar Error * Añadir recomentacion de coderabbitai * Añadir ventana, navegador y algunas funciones * añadir mas funciones * Arreglar Error * Arreglar * Añadir Apoderado = Proxy * Añadir tipos * . * añadir mas funciones, cambiar Apoderado a Puente añadir Simbolo = Symbol * Arreglar Error en Simbolo * Añadir Numero Grande * Arreglar Proxy y añadir NumeroGrande a tipos * Añadir Documento * Arreglar Errores * Arreglar error de ventana caches * Arreglar propiedades de simbolo * Cambiar documento a document estatico * Arreglar simbolo aCadena propiedad a etiquetaCadena * Arreglar Documento * chore(tests): add Plugins fixtures * chore(tests): plugins fixtures * Update packages/core/src/plugins/ventana/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update packages/core/src/plugins/documento/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update packages/core/src/plugins/ventana/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update packages/core/src/plugins/documento/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Update packages/core/src/plugins/documento/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * change(documento): cambiar `agregar` por `anexar`; eliminar funciones deprecadas; agregar Fixture para Tests * chore(documento): fix fixture * Update packages/core/src/plugins/ventana/index.ts Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com> * Añadir Icono y Simbolo tests * Arreglar Symbol... * Añadir test de Puente y arreglar Simbolo * Añadir NumeroGrande Tests y Arreglar Puente * Arreglar NumeroGrande * Quitar ; * Añadir propiedades Documento * Arreglar Errores * Arreglar... * Añadir ; ... * Añadir... * Arreglar mensajes de error de Extension VSCode y añadir Ignorar tipos de salto de linea * Arreglar Simbolo Test * Añadir Navegador * Añadir Ventana * chore: update tests and add action (#11) * Añadir @es-js/runtime * Arreglar Ventana * chore(documento): cambios && eliminar deprecados * chore(documento): cambios && eliminar deprecados * change: renombrar NumeroGrande a EnteroGrande * change(EnteroGrande): claves && eliminar `etiquetaCadena` porque esta duplicado en Simbolo * change(navegador): keywords * change(simbolo): aCadenaEtiqueta * chore: renombrar puente -> paoderado * chore(simbolo): keywords && tests * chore(soporte): keywords * chore(ventana): keywords * chore(soporte): keywords && tests * chore: salto lineas * chore: run format * chore(documento): keywords * chore(navegador): keywords * chore(vscode-esjs): revertir errorHandler * chore(vscode-esjs): release v0.1.2 * chore(language-tools): update from develop * chore(core/plugins): tipos tests * fix(core/plugins): tipos * chore: run format * chore: remove unused fixtures * chore(core/simbolo): quitar aPrimitivo como metodo * chore: quitar codigo no usado * chore(core/ventana): keywords * chore(core/plugins): objetos --------- Co-authored-by: Enzo Notario <enzo.notario@gmail.com> Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
|
The latest updates on your projects. Learn more about Vercel for Git ↗︎ 1 Skipped Deployment
|
## Walkthrough
Se añade un nuevo flujo de trabajo de GitHub Actions para pruebas automatizadas en múltiples versiones de Node.js. Se introduce una condición para agregar y eliminar un listener de evento `beforeunload` en el componente PlaygroundShell según el entorno y configuración. Se eliminan restricciones para prevenir el cierre de ventana en modo desarrollo. Se actualizan importaciones JSON para usar `with { type: 'json' }`. Se mejoran scripts de test en varios `package.json` y se añade un campo para especificar la versión de pnpm. Se agregan múltiples nuevos plugins para convertir nombres en español a sus equivalentes JavaScript estándar, incluyendo `apoderado`, `documento`, `enterogrande`, `navegador`, `objetos`, `simbolo` y `ventana`. Se reorganizan importaciones y se amplían mapas de palabras clave y tipos. Se añaden numerosos fixtures de prueba para cubrir estos plugins y objetos. Se refactorizan utilidades para reemplazos masivos de palabras clave. Además, se actualizan versiones de dependencias, se ajustan configuraciones de CI/CD, se desactivan ciertos tests en plugins Prettier y Vite, y se realizan mejoras menores de estilo y organización en varios archivos.
## Changes
| Archivos / Grupo | Resumen de cambios |
|----------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `.github/workflows/test.yml`, `package.json`, `packages/cli/package.json`, `packages/language-tools/package.json`, `packages/language-tools/vite.config.js`, `packages/language-tools/test/language-tools.test.js`, `packages/prettier-plugin-eshtml/package.json`, `packages/prettier-plugin-esjs/package.json`, `packages/prettier-plugin-esvue/package.json`, `packages/prueba/package.json`, `packages/runtime/package.json`, `packages/terminal/package.json`, `packages/vite-plugin-eshtml/package.json`, `packages/vite-plugin-esvue/package.json`, `packages/vscode-esjs/package.json`, `packages/esbabel/package.json`, `packages/eshtml/package.json`, `packages/esjs-loader/package.json`, `packages/esvue/package.json` | Añadido workflow de test en GitHub Actions; actualización y adición de scripts de test; incremento de versiones de paquetes y dependencias (especialmente `vitest`); especificación explícita de versión de pnpm; ajustes en scripts de publicación y configuración CI/CD para pruebas automáticas en varios entornos. |
| `apps/playground/app/components/playground/PlaygroundShell.vue`, `apps/playground/app/composables/usePlayground.ts`, `apps/playground/nuxt.config.ts` | Condición para agregar/remover listener `beforeunload` solo en producción y no embebido; eliminación de restricción para prevenir cierre de ventana en desarrollo; cambio en importación JSON usando `with { type: 'json' }`. |
| `packages/core/package.json`, `packages/core/src/compiler/esbabel.compiler.ts`, `packages/core/src/compiler/essucrase.compiler.ts`, `packages/core/src/index.ts`, `packages/core/src/keywords.ts`, `packages/core/src/plugins/cadena/index.ts`, `packages/core/src/plugins/fecha/index.ts`, `packages/core/src/plugins/mate/index.ts`, `packages/core/src/plugins/matriz/index.ts`, `packages/core/src/plugins/numero/index.ts`, `packages/core/src/plugins/promesa/index.ts` | Reordenación y limpieza de importaciones; actualización de dependencias de desarrollo (`prettier`, `vitest`); mejoras menores de estilo y organización sin cambios funcionales. |
| `packages/core/src/plugins/apoderado/index.ts`, `packages/core/src/plugins/documento/index.ts`, `packages/core/src/plugins/enterogrande/index.ts`, `packages/core/src/plugins/navegador/index.ts`, `packages/core/src/plugins/objetos/index.ts`, `packages/core/src/plugins/simbolo/index.ts`, `packages/core/src/plugins/ventana/index.ts` | Nuevos plugins para convertir nombres en español a equivalentes JavaScript (`Proxy`, `Document`, `BigInt`, `navigator`, `window`, `Symbol`, etc.), con mapeos detallados y funciones `replace` que agregan reglas de transformación para métodos, propiedades, objetos y operadores `instanceof`. |
| `packages/core/src/plugins/index.ts`, `packages/core/src/plugins/tipos/index.ts`, `packages/core/src/plugins/soporte/index.ts`, `packages/core/src/plugins/utils.ts` | Inclusión de nuevos plugins en el array principal; ampliación de mapeos de tipos y palabras clave; refactorización para reemplazos masivos de keywords con nueva función `replaceKeywords`; simplificación interna del plugin de soporte. |
| `packages/core/test/fixtures.test.ts`, `packages/core/test/fixtures/extras/*.esjs`, `packages/core/test/fixtures/extras/*.js` | Añadidos numerosos archivos fixture para pruebas de plugins y objetos (`documento`, `ventana`, `navegador`, `simbolo`, `objetos`, `enterogrande`, `apoderado`, etc.); ampliación de suite de tests para verificar conversiones bidireccionales entre ESJS y JavaScript estándar; normalización de saltos de línea en fixtures. |
| `packages/esbabel/src/keywords.ts`, `packages/esbabel/test/knownIssues.test.ts` | Comentado/deshabilitado mapeos de keywords (`osi`, `esNuN`, `global`) y reasignación de `esNuN` a `numberMethods`; actualización de pruebas relacionadas para reflejar cambios en traducción de variables y palabras clave. |
| `packages/runtime/src/index.js` | Reformateo de código para mejorar estilo y consistencia sin cambios funcionales. |
| `packages/sandbox/src/render/index.ts`, `packages/sandbox/test/utils/codeFrame.test.ts` | Correcciones menores de estilo y ajustes en test de renderizado de código (eliminación de punto y coma, ajuste en estilo CSS esperado). |
| `packages/vite-plugin-eshtml/src/index.ts`, `packages/vite-plugin-eshtml/test/vite-plugin-eshtml.test.ts` | Cambio en la importación de la función `template` de lodash (de named a default import); desactivación de tests específicos con `.skip`. |
| `packages/prettier-plugin-eshtml/test/package.test.ts`, `packages/prettier-plugin-esjs/test/package.test.ts`, `packages/prettier-plugin-esvue/test/package.test.ts` | Desactivación de tests de importación y requerimiento de paquetes Prettier plugin mediante `.skip`. |
| `packages/core/test/fixtures/extras/soporte.esjs`, `packages/core/test/fixtures/extras/soporte.js`, `packages/core/test/fixtures/extras/fecha.esjs`, `packages/core/test/fixtures/extras/matriz.esjs` | Ampliación y corrección de fixtures para cubrir más funciones globales y mejorar cobertura de pruebas, incluyendo manejo de timers, alertas, prompts, confirmaciones, fetch y codificación URI; corrección de llamadas a métodos y formato de código. |
## Possibly related PRs
- [es-js/esjs#8](https://github.com/es-js/esjs/pull/8): Añade y actualiza el paquete `@es-js/runtime` y su script principal, directamente relacionado con la inclusión y mejoras del runtime en este PR.
- [es-js/esjs#11](https://github.com/es-js/esjs/pull/11): Incorpora el workflow de GitHub Actions `.github/workflows/test.yml` y la especificación de versión de `pnpm`, igual que en este PR y por tanto directamente conectado a la configuración de CI.
## Poema
> ʕ•ᴥ•ʔ
>
> ¡Brinca el conejo entre plugins y test,
> traduce ventanas, documentos y más!
> Navegador y símbolo saltan al compás,
> objetos y apoderados en código verás.
> Con fixtures y scripts, la suite a bailar,
> ¡es primavera en ESJS, listo para innovar!
>
> (∩`-´)⊃━☆゚.*・。゚ 🥕✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 30
🔭 Outside diff range comments (1)
packages/vite-plugin-eshtml/test/vite-plugin-eshtml.test.ts (1)
44-79: 💡 Verification agent❓ Verification inconclusive
Verificar razón del
skipen 'build pages'
De igual modo, la prueba'build pages'se omite sin explicación. Recomiendo añadir un comentario justificativo para el skip o eliminarlo una vez la prueba esté lista para correr en el pipeline.
Verificar y justificar/eliminar el
it.skipde la prueba 'build pages'
La pruebabuild pagesestá deshabilitada medianteit.skipsin indicar la razón. Para mantener la claridad y asegurar que la prueba se ejecute cuando corresponda, añade un comentario que explique el motivo del skip o elimina elskipsi la prueba ya está lista.Punto de atención:
- packages/vite-plugin-eshtml/test/vite-plugin-eshtml.test.ts (líneas 44–79)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (13)
packages/core/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/esbabel/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/eshtml/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/esjs-loader/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/esvue/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/language-tools/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/language-tools/test/__snapshots__/language-tools.test.js.snapis excluded by!**/*.snappackages/prueba/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/runtime/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/terminal/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/vite-plugin-eshtml/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/vite-plugin-esvue/pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlpackages/vscode-esjs/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (75)
.github/workflows/test.yml(1 hunks)apps/playground/app/components/playground/PlaygroundShell.vue(2 hunks)apps/playground/app/composables/usePlayground.ts(0 hunks)apps/playground/nuxt.config.ts(1 hunks)package.json(2 hunks)packages/cli/package.json(1 hunks)packages/cli/postinstall.js(1 hunks)packages/core/package.json(2 hunks)packages/core/src/compiler/esbabel.compiler.ts(1 hunks)packages/core/src/compiler/essucrase.compiler.ts(1 hunks)packages/core/src/index.ts(1 hunks)packages/core/src/keywords.ts(1 hunks)packages/core/src/plugins/apoderado/index.ts(1 hunks)packages/core/src/plugins/cadena/index.ts(1 hunks)packages/core/src/plugins/documento/index.ts(1 hunks)packages/core/src/plugins/enterogrande/index.ts(1 hunks)packages/core/src/plugins/fecha/index.ts(1 hunks)packages/core/src/plugins/index.ts(2 hunks)packages/core/src/plugins/mate/index.ts(0 hunks)packages/core/src/plugins/matriz/index.ts(1 hunks)packages/core/src/plugins/navegador/index.ts(1 hunks)packages/core/src/plugins/numero/index.ts(1 hunks)packages/core/src/plugins/objetos/index.ts(1 hunks)packages/core/src/plugins/promesa/index.ts(1 hunks)packages/core/src/plugins/simbolo/index.ts(1 hunks)packages/core/src/plugins/soporte/index.ts(1 hunks)packages/core/src/plugins/tipos/index.ts(2 hunks)packages/core/src/plugins/utils.ts(1 hunks)packages/core/src/plugins/ventana/index.ts(1 hunks)packages/core/test/fixtures.test.ts(2 hunks)packages/core/test/fixtures/extras/apoderado.esjs(1 hunks)packages/core/test/fixtures/extras/apoderado.js(1 hunks)packages/core/test/fixtures/extras/documento.esjs(1 hunks)packages/core/test/fixtures/extras/documento.js(1 hunks)packages/core/test/fixtures/extras/enterogrande.esjs(1 hunks)packages/core/test/fixtures/extras/enterogrande.js(1 hunks)packages/core/test/fixtures/extras/fecha.esjs(1 hunks)packages/core/test/fixtures/extras/matriz.esjs(2 hunks)packages/core/test/fixtures/extras/navegador.esjs(1 hunks)packages/core/test/fixtures/extras/navegador.js(1 hunks)packages/core/test/fixtures/extras/objetos.esjs(1 hunks)packages/core/test/fixtures/extras/objetos.js(1 hunks)packages/core/test/fixtures/extras/simbolo.esjs(1 hunks)packages/core/test/fixtures/extras/simbolo.js(1 hunks)packages/core/test/fixtures/extras/soporte.esjs(1 hunks)packages/core/test/fixtures/extras/soporte.js(1 hunks)packages/core/test/fixtures/extras/ventana.esjs(1 hunks)packages/core/test/fixtures/extras/ventana.js(1 hunks)packages/esbabel/package.json(2 hunks)packages/esbabel/src/keywords.ts(3 hunks)packages/esbabel/test/knownIssues.test.ts(2 hunks)packages/eshtml/package.json(1 hunks)packages/esjs-loader/package.json(1 hunks)packages/esvue/package.json(1 hunks)packages/esvue/test/esvue.test.ts(1 hunks)packages/language-tools/package.json(2 hunks)packages/language-tools/test/language-tools.test.js(1 hunks)packages/language-tools/vite.config.js(1 hunks)packages/prettier-plugin-eshtml/package.json(1 hunks)packages/prettier-plugin-eshtml/test/package.test.ts(1 hunks)packages/prettier-plugin-esjs/package.json(1 hunks)packages/prettier-plugin-esjs/test/package.test.ts(1 hunks)packages/prettier-plugin-esvue/package.json(1 hunks)packages/prettier-plugin-esvue/test/package.test.ts(1 hunks)packages/prueba/package.json(2 hunks)packages/runtime/package.json(2 hunks)packages/runtime/src/index.js(1 hunks)packages/sandbox/src/render/index.ts(1 hunks)packages/sandbox/test/utils/codeFrame.test.ts(1 hunks)packages/terminal/package.json(2 hunks)packages/vite-plugin-eshtml/package.json(2 hunks)packages/vite-plugin-eshtml/src/index.ts(1 hunks)packages/vite-plugin-eshtml/test/vite-plugin-eshtml.test.ts(2 hunks)packages/vite-plugin-esvue/package.json(1 hunks)packages/vscode-esjs/package.json(4 hunks)
💤 Files with no reviewable changes (2)
- packages/core/src/plugins/mate/index.ts
- apps/playground/app/composables/usePlayground.ts
🧰 Additional context used
🧬 Code Graph Analysis (4)
packages/core/test/fixtures/extras/apoderado.js (1)
packages/core/test/fixtures/extras/objetos.js (1)
apoderado(25-25)
packages/core/src/plugins/utils.ts (1)
packages/core/src/plugins/soporte/index.ts (1)
keywords(5-19)
packages/core/src/plugins/objetos/index.ts (3)
packages/core/src/plugins/soporte/index.ts (2)
report(3-3)replace(21-27)packages/core/src/plugins/tipos/index.ts (2)
report(4-4)types(6-23)packages/core/src/plugins/utils.ts (1)
replaceObjects(65-82)
packages/core/src/plugins/documento/index.ts (1)
packages/core/src/plugins/utils.ts (4)
replaceObjectStaticMethods(98-117)replaceObjectStaticProperties(133-152)replaceInstanceof(183-196)replaceObjects(65-82)
🪛 Biome (1.9.4)
packages/sandbox/src/render/index.ts
[error] 24-24: Reassigning a function parameter is confusing.
The parameter is declared here:
Use a local variable instead.
(lint/style/noParameterAssign)
packages/runtime/src/index.js
[error] 5-5: This var should be declared at the root of the enclosing function.
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
(lint/correctness/noInnerDeclarations)
[error] 8-8: Use === instead of ==. == is only allowed when comparing against null
== is only allowed when comparing against null
Using == may be unsafe if you are relying on type coercion
Unsafe fix: Use ===
(lint/suspicious/noDoubleEquals)
[error] 9-9: Use === instead of ==. == is only allowed when comparing against null
== is only allowed when comparing against null
Using == may be unsafe if you are relying on type coercion
Unsafe fix: Use ===
(lint/suspicious/noDoubleEquals)
[error] 17-17: Use === instead of ==. == is only allowed when comparing against null
== is only allowed when comparing against null
Using == may be unsafe if you are relying on type coercion
Unsafe fix: Use ===
(lint/suspicious/noDoubleEquals)
[error] 35-35: Use === instead of ==. == is only allowed when comparing against null
== is only allowed when comparing against null
Using == may be unsafe if you are relying on type coercion
Unsafe fix: Use ===
(lint/suspicious/noDoubleEquals)
[error] 41-43: This function expression can be turned into an arrow function.
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.
(lint/complexity/useArrowFunction)
[error] 51-51: This var should be declared at the root of the enclosing function.
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
(lint/correctness/noInnerDeclarations)
[error] 54-54: Use === instead of ==. == is only allowed when comparing against null
== is only allowed when comparing against null
Using == may be unsafe if you are relying on type coercion
Unsafe fix: Use ===
(lint/suspicious/noDoubleEquals)
[error] 55-55: Use === instead of ==. == is only allowed when comparing against null
== is only allowed when comparing against null
Using == may be unsafe if you are relying on type coercion
Unsafe fix: Use ===
(lint/suspicious/noDoubleEquals)
[error] 3-64: This function expression can be turned into an arrow function.
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.
(lint/complexity/useArrowFunction)
[error] 4-4: This let declares a variable that is only assigned once.
'etiquetas' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 5-5: Use let or const instead of var.
A variable declared with var is accessible in the whole body of the function. Thus, the variable can be accessed before its initialization and outside the block where it is declared.
See MDN web docs for more details.
Unsafe fix: Use 'let' instead.
(lint/style/noVar)
[error] 12-12: This let declares a variable that is only assigned once.
'codigoCom' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 13-13: This let declares a variable that is only assigned once.
'elemento' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 30-30: This let declares a variable that is only assigned once.
'codigoCom' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 31-31: This let declares a variable that is only assigned once.
'elemento' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 50-50: This let declares a variable that is only assigned once.
'etiquetasH' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 51-51: Use let or const instead of var.
A variable declared with var is accessible in the whole body of the function. Thus, the variable can be accessed before its initialization and outside the block where it is declared.
See MDN web docs for more details.
Unsafe fix: Use 'let' instead.
(lint/style/noVar)
🪛 actionlint (1.7.4)
.github/workflows/test.yml
22-22: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
25-25: the runner of "actions/setup-node@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
⏰ Context from checks skipped due to timeout of 90000ms (1)
- GitHub Check: test (18.x)
🔇 Additional comments (102)
packages/esjs-loader/package.json (1)
29-29: Actualización de vitest a v2.1.5
La dependencia de desarrollovitestse ha actualizado a la versión ^2.1.5, en línea con la actualización coordinada en otros paquetes.packages/eshtml/package.json (1)
30-30: Actualización de vitest a v2.1.5
Se ha elevadovitesta ^2.1.5 para garantizar consistencia con el resto del monorepo y compatibilidad con la nueva configuración de CI.packages/vite-plugin-esvue/package.json (1)
35-35: Actualización de vitest a v2.1.5
Se alinea la versión devitestcon las actualizaciones en los demás paquetes, asegurando uniformidad en el entorno de pruebas.packages/core/src/index.ts (1)
1-1: Reordenación de imports:putoutal inicio
Mover la importación de@putout/bundlea la parte superior mejora la coherencia y visibilidad de las dependencias. Verifica que no se introduzcan dependencias circulares ni efectos secundarios inesperados.packages/esvue/package.json (1)
28-28: Actualización de vitest a v2.1.5
La versión devitestse ha unificado a ^2.1.5, coincidendo con el patrón de actualización en todo el repositorio.packages/esbabel/package.json (2)
3-3: Versión actualizada correctamente
Se ha incrementado la versión a0.0.1-beta.2de forma consistente con la estrategia de versionado del proyecto.
22-22: Verificar compatibilidad de Vitest 2.x
La dependenciavitestse ha actualizado a^2.1.5. Comprueba que todos los tests existentes funcionan sin ajustes adicionales en la configuración o en las APIs de Vitest.packages/runtime/package.json (1)
3-4: Sincronización de versión
Se ha incrementado la versión a0.0.1-beta.1, alineando este paquete con el resto de actualizaciones del monorepo.packages/prueba/package.json (2)
3-3: Versión incrementada correctamente
Se ha pasado de0.0.10a0.0.11, consistente con el patrón de publicación semántica.
17-18: Actualización de dependencias de desarrollo
viteyvitestse han promovido a versiones más recientes (^5.4.11y^2.1.5). Valida que la configuración de Vite y los tests corran sin errores después de estos cambios.packages/core/package.json (2)
3-3: Bump de versión
La versión ha sido actualizada a0.1.0-beta.17, en línea con el resto del monorepo.
35-35: Compatibilidad con Vitest 2.x
La versión devitestse ha actualizado a^2.1.5. Verifica que los tests del paquete funcionen correctamente con esta versión y actualiza la configuración si es necesario.packages/terminal/package.json (2)
3-3: Actualización correcta de versión del paquete.La versión del paquete ha sido incrementada de 1.1.9 a 1.1.10, lo cual es apropiado para reflejar los cambios realizados en esta actualización.
32-32: Actualización adecuada de dependencia.La actualización de la dependencia de desarrollo "xterminal" a la versión 2.1.9 es apropiada. Esta actualización probablemente incluye mejoras o correcciones que beneficiarán al componente de terminal.
packages/cli/postinstall.js (1)
3-3: Actualización correcta de la sintaxis de importación de JSON.Se ha actualizado la sintaxis de importación de JSON utilizando
with { type: 'json' }en lugar deassert { type: 'json' }. Esta es una actualización apropiada que utiliza la nueva sintaxis de importación de módulos de ES.packages/esvue/test/esvue.test.ts (1)
50-53: Mejora en la legibilidad del objeto de opciones.El cambio de formato del objeto de opciones de una línea a múltiples líneas mejora la legibilidad del código y sigue buenas prácticas de formato. Esta modificación mantiene la misma funcionalidad mientras hace el código más mantenible.
apps/playground/app/components/playground/PlaygroundShell.vue (3)
10-11: Importación correcta del objeto settings.Se ha añadido correctamente la importación del objeto de configuración que será utilizado para controlar el comportamiento del evento 'beforeunload'.
27-29: Mejora en la gestión del evento 'beforeunload'.Se ha añadido una condición adecuada para registrar el evento 'beforeunload' sólo cuando no estamos en modo desarrollo y no está habilitado el modo 'embed'. Esto evita interrupciones innecesarias durante el desarrollo y cuando la aplicación está embebida en otro contexto.
35-37: Consistencia en la eliminación del evento 'beforeunload'.La condición para eliminar el evento 'beforeunload' coincide correctamente con la condición de su registro, manteniendo la consistencia en la gestión de eventos.
packages/prettier-plugin-eshtml/package.json (1)
21-21: Validación del nuevo scripttest:run.
Se ha añadido"test:run": "vitest run"de forma consistente con otros paquetes del monorepo. Esto ayuda a unificar la ejecución de tests en CI.packages/core/src/plugins/promesa/index.ts (1)
4-4: Reordenamiento de import sin impacto funcional.
La posición dereplaceObjectStaticMethodscambió para alinear el orden de imports con otros plugins. No hay cambios de lógica ni nuevos efectos secundarios.packages/core/src/plugins/fecha/index.ts (1)
5-5: Reordenamiento de import sin impacto funcional.
La importación dereplaceObjectStaticMethodsse movió para mantener consistencia en el orden de los imports; no afecta la funcionalidad existente.packages/core/src/compiler/esbabel.compiler.ts (1)
2-2: Consolidación de tipos en un solo import.
Se combinó la importación deCompileOptionsyCompileren una línea, mejorando la claridad sin cambiar la lógica.packages/core/src/plugins/cadena/index.ts (1)
6-6: Reordenamiento de importaciones correctoEl cambio sólo reordena la importación de
replaceObjectStaticMethodssin afectar la funcionalidad del código. Este tipo de ajustes de estilo ayuda a mantener la consistencia en la estructura del código.packages/prettier-plugin-esvue/test/package.test.ts (1)
6-6:Details
❓ Verification inconclusive
Verificar la omisión de pruebas de importación
Se han desactivado las pruebas de importabilidad y requeribilidad con
.skip. Esta modificación es consistente con cambios similares en otros archivos de prueba de plugins de prettier, pero sería útil entender:
- ¿Es esta una medida temporal o permanente?
- ¿Hay algún problema específico con estas pruebas?
- ¿Están planificadas pruebas alternativas?
Also applies to: 12-12
🏁 Script executed:
#!/bin/bash # Buscar otros archivos de prueba con patrones similares de omisión echo "Buscando otros tests omitidos con .skip en archivos de prettier-plugin:" rg "it\.skip\('should be (importable|requireable)" --type tsLength of output: 791
Verificar alcance y motivación de las pruebas omitidas
Se han desactivado sistemáticamente las pruebas
should be importableyshould be requireableen todos los archivospackage.test.tsde los plugins de Prettier:
- packages/prettier-plugin-eshtml/test/package.test.ts
- packages/prettier-plugin-esvue/test/package.test.ts
- packages/prettier-plugin-esjs/test/package.test.ts
Para mantener la cobertura y entender el contexto, por favor aclara:
- ¿Es esta una medida temporal durante el desarrollo o una decisión definitiva?
- ¿Qué problemas específicos motivaron la omisión de ambas pruebas?
- ¿Se planea reemplazarlas o introducir pruebas alternativas?
packages/core/test/fixtures/extras/fecha.esjs (1)
40-40: Mejora en la consistencia lingüísticaEl cambio de
aCadenaLocale()aaCadenaLocalizada()mejora la coherencia terminológica en español, eliminando el anglicismo "Locale" y utilizando un término completamente traducido. Esta modificación se alinea con la nomenclatura utilizada en otros plugins comoenterogrande, creando una experiencia más consistente para los desarrolladores hispanohablantes.packages/core/src/compiler/essucrase.compiler.ts (1)
2-2: Reordenamiento de importaciones para mejorar la organización.El cambio reordena las importaciones de tipos antes de las importaciones de funciones, mejorando la estructura y consistencia del código. Esta organización sigue el patrón aplicado en otros archivos del compilador.
packages/vite-plugin-eshtml/package.json (2)
3-3: Actualización de versión a beta.2.Incremento adecuado de la versión del paquete de "0.0.1-beta.1" a "0.0.1-beta.2", siguiendo las convenciones de versionado semántico para versiones de desarrollo.
23-23: Adición de dependencia de Lodash.Se ha agregado la dependencia de Lodash que corresponde con cambios en el archivo
src/index.tsdonde se modifica la forma de importar la funcióntemplate.packages/core/test/fixtures/extras/apoderado.esjs (1)
1-1: Nuevo caso de prueba para la transformación de Apoderado a Proxy.Este fixture de prueba establece la base para verificar la correcta transformación de la sintaxis
crear Apoderado()anew Proxy()en JavaScript estándar. Se integra con el nuevo plugin de apoderado añadido en este PR.packages/core/src/plugins/matriz/index.ts (1)
5-5: Reorganización del orden de importaciones.La reordenación de la importación de
replaceObjectStaticMethodses parte de un esfuerzo más amplio para estandarizar la estructura de las importaciones en todos los módulos de plugins. No hay cambios funcionales en este ajuste.packages/core/test/fixtures/extras/matriz.esjs (2)
9-9: ¡Buena corrección estilística!Se agregó un punto y coma después de
matriz.longitudpara mantener la consistencia con las convenciones de estilo del código.
23-23: Mejora en la legibilidad del códigoSe combinaron las llamadas encadenadas a
filtrarymapearen una sola línea, lo que mejora la consistencia del estilo en el código.packages/prettier-plugin-esjs/package.json (1)
21-21: Adición de script para ejecución de pruebasLa adición del script
test:runestandariza la ejecución de pruebas convitest runy se alinea con los cambios similares en otros paquetes del repositorio. Esta mejora facilita la integración con el flujo de trabajo de CI en GitHub Actions.packages/prettier-plugin-esvue/package.json (1)
21-21: Adición de script para ejecución de pruebasLa adición del script
test:runestandariza la ejecución de pruebas convitest runy se alinea con los cambios similares en otros paquetes del repositorio. Esta mejora facilita la integración con el flujo de trabajo de CI en GitHub Actions.packages/prettier-plugin-eshtml/test/package.test.ts (2)
6-10: Uso intencional deit.skippara la prueba de importación ES Module.
Se ha omitido temporalmente la prueba de import dinámico para agilizar el CI. Asegúrate de reactivar o cubrir este caso en el entorno local si hay planes de compatibilidad ESM.
12-16: Uso intencional deit.skippara la prueba de CommonJS.
Al igual que en la importación ESM, se omite la verificación derequirepara optimizar el pipeline. Verifica manualmente la compatibilidad CommonJS si es requisito de tu distribución.packages/sandbox/test/utils/codeFrame.test.ts (1)
16-16: Eliminación dewhite-space: pre-wrapen el span de estilo.
La propiedad de espacio en blanco ya no es necesaria en la salida esperada. Este ajuste simplifica el HTML sin impactar la claridad del resaltado.packages/cli/package.json (1)
12-12: Unificación del script de test comotest:run.
La adición de"test:run"armoniza la invocación de pruebas en CI según el nuevo flujo de trabajo. Buen ajuste para estandarizar comandos en todos los paquetes.packages/core/src/plugins/numero/index.ts (1)
2-6: Reordenación de imports desde../utils.
El cambio de posición dereplaceExpressionMethodsyreplaceObjectStaticMethodses solo estilístico y no altera la funcionalidad. Alinea esta ordenación con las convenciones del resto de plugins si existe guía interna.packages/vite-plugin-eshtml/src/index.ts (1)
2-2: Importación directa delodash/template.
Pasar deimport { template } from 'lodash'aimport template from 'lodash/template'reduce el tamaño del bundle y mejora la carga parcial. Asegúrate de que la dependencialodasholodash.templateesté correctamente instalada enpackage.json.packages/language-tools/vite.config.js (1)
1-2: Importación dedefineConfigcorrecta
La importación dedefineConfigdesdevitest/configes apropiada y necesaria para configurar correctamente Vitest en este paquete.packages/vite-plugin-eshtml/test/vite-plugin-eshtml.test.ts (1)
16-42:Details
❓ Verification inconclusive
Verificar razón del
skipen 'build basic'
La prueba'build basic'está marcada con.skip, lo que impide su ejecución en CI. Sería conveniente documentar el motivo (falla intermitente, dependencia externa, etc.) o bien reactivar la prueba si ya está establecida.
Verifica el motivo del
.skipen la prueba ‘build basic’
La prueba está marcada con.skip, bloqueando su ejecución en CI. Por favor:
- Documenta la razón (falla intermitente, dependencia externa, etc.).
- O, si ya está estable, elimina el
.skippara reactivarla.Ubicación:
- packages/vite-plugin-eshtml/test/vite-plugin-eshtml.test.ts (líneas 16–42)
package.json (2)
10-10: Scripttestcentralizado correcto
La actualización del script"test": "pnpm --stream -r run test:run"permite ejecutar las pruebas de todos los paquetes del workspace de manera consistente y eficiente.
29-30: CampoprivateypackageManagerañadidos
Marcar el repositorio como privado y fijarpnpm@9.1.1mejora la seguridad y la reproducibilidad de las instalaciones en CI/CD.packages/core/src/keywords.ts (2)
1-16: Reordenación de imports para mejorar legibilidad
Los imports han sido reorganizados para agrupar métodos similares (arrayMethods,consoleMethods,keywords, etc.), facilitando la lectura y el mantenimiento sin cambiar la API pública.
18-33: Reordenación de exports coherente con los imports
La exportación de los símbolos ahora refleja el nuevo orden de los imports, manteniendo la consistencia interna y asegurando que no se modifique el superficie API exportada.packages/core/src/plugins/utils.ts (1)
198-215: ¡Buena implementación para el reemplazo por lotes de palabras clave!Esta nueva función
replaceKeywordsproporciona una manera eficiente de aplicar múltiples reemplazos de palabras clave a la vez, reutilizando la funciónreplaceKeywordexistente. La implementación sigue el mismo patrón que otras funciones similares en el archivo comoreplaceObjects, lo que mantiene la consistencia en el código.Esta adición será especialmente útil para plugins como
soporteque necesitan mapear múltiples funciones globales de nombres en español a sus equivalentes en JavaScript estándar.packages/core/src/plugins/tipos/index.ts (2)
2-2: Reordenamiento de importacionesEl reordenamiento de la importación de
getToEsJSdespués deinvertMapmejora la organización del código.
20-22: Adición correcta de nuevos tiposLa adición de los mapeos para
Apoderado,EnteroGrandeyDocumentoa sus equivalentes en JavaScript (Proxy,BigIntyDocument) está alineada con los nuevos plugins introducidos en este PR. Esta actualización garantiza que el sistema de tipos sea consistente con las implementaciones de los plugins.packages/vscode-esjs/package.json (5)
5-5: Actualización de versión apropiadaEl incremento de versión de 0.1.1 a 0.1.2 es adecuado para este PR que incluye nuevas características y mejoras.
38-38: Adición de script para pruebas en CILa adición del script
"test:run": "vitest run"es una buena práctica para entornos CI/CD donde se necesita ejecutar pruebas sin el modo watch. Esto facilitará la automatización de pruebas en flujos de trabajo de GitHub Actions.
57-57: Actualización de dependencia vitestLa actualización de vitest de ^0.21.1 a ^2.1.5 es una mejora significativa que permite aprovechar las nuevas características y correcciones de errores disponibles en la versión más reciente del framework de pruebas.
75-79: Mejora en la configuración de esvue con iconosLa adición de iconos para el tema oscuro y claro mejora la experiencia visual en VS Code para los archivos
.esvue.
86-90: Mejora en la configuración de esjs con iconosLa adición de iconos para el tema oscuro y claro mejora la experiencia visual en VS Code para los archivos
.esjs.packages/esbabel/test/knownIssues.test.ts (3)
21-23: Marcado correctamente el test obsoletoHas marcado apropiadamente como obsoleto el test para variables nombradas
getconit.skipy has añadido un comentario explicativo sobre por qué este test ya no es relevante debido a los cambios en el comportamiento de las declaraciones de variables.
24-24: Actualización de la sintaxis de variableLa actualización de
varamutrefleja correctamente los cambios en la sintaxis del lenguaje, donde ahoramutequivale aleten JavaScript.
38-42: Actualización precisa de la descripción y estructura del testLa descripción del test ha sido actualizada para reflejar con precisión el comportamiento actual: "does not compile var/global to var". También se ha mejorado el formato de la cadena multilínea añadiendo un punto y coma al final, lo que mejora la consistencia del código.
packages/language-tools/package.json (3)
3-3: Buen incremento de versión.El cambio de versión de 0.1.0 a 0.1.1 es adecuado para este tipo de actualización que agrega funcionalidades de prueba sin cambios importantes en la API.
10-12: Buena implementación de scripts de prueba con Vitest.La adición de scripts de prueba utilizando Vitest mejora significativamente la infraestructura de testing del paquete:
test: Ejecuta Vitest en modo observador, ideal para desarrollotest:run: Ejecuta Vitest una sola vez, perfecto para CI/CD- Se actualizó
prepublishOnly(anteriormenteprepublish) siguiendo las mejores prácticas de npm
27-28: Dependencias correctamente configuradas.La adición de
vitestcomo dependencia de desarrollo es coherente con los nuevos scripts de prueba. También se ha actualizado el formato de la dependenciamarkdown-tablepara mantener la consistencia en el archivo.packages/core/test/fixtures/extras/enterogrande.esjs (1)
1-6: Fixture de prueba para EnteroGrande completo.El fixture de prueba cubre adecuadamente la funcionalidad de EnteroGrande (equivalente a BigInt en JavaScript):
- Creación de instancias con
crear EnteroGrande- Métodos de instancia:
aCadenaLocalizada(),aCadena(),valorDe()- Métodos estáticos:
comoEntero(),comoEnteroSinSigno()Este fixture es valioso para asegurar que la traducción entre ESJS y JavaScript funcione correctamente para operaciones con números grandes.
packages/esbabel/src/keywords.ts (1)
227-227: Buena adición a numberMethods.La adición de 'esNuN' a la estructura de numberMethods es apropiada, mejorando la organización del código al agrupar esta funcionalidad con otros métodos relacionados con números.
packages/core/test/fixtures/extras/soporte.js (4)
1-7: Buena implementación de temporizadores.Las pruebas para
setTimeoutysetIntervalestán correctamente implementadas, creando variables para almacenar las referencias que luego se utilizarán para limpiar los temporizadores.
9-9: Correcta verificación de isNaN.La prueba para
isNaNcon un valor no numérico es un buen caso de prueba que debería devolvertrue.
11-13: Limpieza adecuada de temporizadores.La limpieza de temporizadores utilizando
clearTimeoutyclearIntervales una buena práctica para evitar fugas de memoria.
23-29: Buenas pruebas de codificación URI.Las pruebas para las funciones de codificación y decodificación URI son apropiadas y cubren los casos básicos.
packages/language-tools/test/language-tools.test.js (1)
1-30: Buena implementación de pruebas para los archivos generados.La estructura de pruebas utilizando Vitest está bien organizada y cubre todos los archivos de salida importantes. El uso de snapshots es apropiado para este caso de uso, ya que permite detectar cambios no intencionales en los archivos generados.
La función auxiliar
testFilereduce la duplicación de código y hace que las pruebas sean más mantenibles. Buen trabajo implementando una suite de pruebas completa para los language-tools.packages/core/test/fixtures/extras/ventana.js (1)
1-97: Fixture completo para las propiedades y métodos de window.Este fixture proporciona una cobertura exhaustiva de las propiedades y métodos del objeto global
window, lo que es excelente para probar la conversión entre los nombres en español (ventana) y sus equivalentes en JavaScript.La organización es clara, separando propiedades (líneas 1-61) de métodos (líneas 62-97), y abarca tanto funcionalidades comunes como aquellas menos utilizadas.
packages/core/src/plugins/objetos/index.ts (1)
1-12:Details
❓ Verification inconclusive
Implementación correcta, pero verificar la reutilización del mapa de tipos.
El plugin sigue el patrón establecido de exportar funciones
reportyreplace, lo cual es consistente con otros plugins del proyecto.Sin embargo, observo que se reutiliza el mapa
typesimportado desde el módulotiposen lugar de definir un mapa específico para objetos. Esto podría ser intencional para mantener la coherencia entre plugins, pero recomendaría verificar si esta reutilización es apropiada o si se deberían definir mapeos específicos para este contexto.
🏁 Script executed:
#!/bin/bash # Mostrar definición de 'types' en el plugin de tipos rg --context 3 "export const types" -n packages/core/src/plugins/tipos # Mostrar implementación de replaceObjects en utils rg -n "replaceObjects" -n packages/core/src/plugins/utilsLength of output: 691
🏁 Script executed:
#!/bin/bash # Buscar definición e implementación de replaceObjects en todo el repositorio rg --context 3 "replaceObjects" -n .Length of output: 12474
Implementación correcta; confirma la reutilización del mapa
typesdel plugintiposEl plugin
packages/core/src/plugins/objetos/index.tssigue el patrón establecido (exportareportyreplacey usareplaceObjectscon unMap<string, string>).
No obstante, a diferencia de otros plugins que definen internamente su propio map de objetos, aquí se importa directamente el mapatypesdepackages/core/src/plugins/tipos.Por favor, verifica si:
- Esta importación de
typeses intencional para mantener la coherencia con el plugin de tipos.- No se requieren mapeos específicos a objetos que deban residir en este plugin.
- Cualquier cambio futuro en
typesno introducirá efectos secundarios no deseados enobjetos.Ubicación a revisar:
- packages/core/src/plugins/objetos/index.ts (líneas 1–11:
import { types } … replaceObjects({ objects: types })).github/workflows/test.yml (1)
1-41: Buena configuración del flujo de trabajo de pruebas.La configuración del flujo de trabajo es adecuada:
- Ejecuta pruebas en múltiples versiones de Node.js (18.x, 20.x y 22.x)
- Establece un tiempo límite razonable (15 minutos)
- Incluye todos los pasos necesarios (checkout, configuración, instalación, build y ejecución de pruebas)
- Utiliza pnpm para la gestión de dependencias de manera consistente con el resto del proyecto
Esto garantizará que las pruebas se ejecuten de manera consistente en diferentes entornos.
🧰 Tools
🪛 actionlint (1.7.4)
22-22: the runner of "actions/checkout@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
25-25: the runner of "actions/setup-node@v3" action is too old to run on GitHub Actions. update the action's version to fix this issue
(action)
packages/core/src/plugins/soporte/index.ts (3)
1-1: Buena práctica al importar utilidad comúnLa importación de la función
replaceKeywordsmejora la cohesión y reduce la duplicación de código entre los diferentes plugins. Esta refactorización facilita el mantenimiento al centralizar la lógica de reemplazo de palabras clave.
9-18: Excelente ampliación de funcionalidadLa adición de estas nuevas palabras clave enriquece significativamente el plugin, cubriendo funciones esenciales del navegador como temporizadores, diálogos, fetch y manipulación de URIs. Esto proporciona una experiencia más completa para los desarrolladores que utilizan ESJS.
23-25: Simplificación efectiva mediante utilidadLa refactorización del método
replacepara utilizar la utilidadreplaceKeywordssimplifica el código y mantiene la coherencia con otros plugins. Esta implementación más concisa facilita las futuras ampliaciones de palabras clave.packages/core/test/fixtures/extras/ventana.esjs (2)
1-61: Fixture completo para propiedades de ventanaEste archivo de prueba proporciona una cobertura exhaustiva de las propiedades del objeto
windowcon sus traducciones al español. La nomenclatura es coherente y sigue un patrón claro de traducción que facilita la comprensión de las equivalencias.
62-97: Cobertura completa de métodos del objeto ventanaExcelente implementación de los métodos del objeto
windowcon traducciones descriptivas y funcionales en español. Esta completa colección de métodos asegura que el pluginventanapueda transformar correctamente todas las API comunes del objeto window.packages/core/test/fixtures/extras/objetos.esjs (3)
1-6: Buena representación de tipos primitivosLas instanciaciones de los tipos primitivos (
Numero,Cadena,Booleano) están correctamente implementadas. Observo el uso deverdaderocomo equivalente atrue, lo que es consistente con la filosofía del proyecto.
7-26: Uso consistente del patrón factory con "crear"Excelente implementación de la instanciación de objetos complejos utilizando el patrón factory con la palabra
crear. La sintaxis es intuitiva y mantiene un estilo español natural mientras conserva la semántica de JavaScript.
27-29: Implementación correcta de tipos especializadosLa implementación de
EnteroGrandeyDocumentoes adecuada. La integración con el objeto globaldocumenten la línea 29 demuestra la interoperabilidad con las APIs del navegador.packages/core/src/plugins/index.ts (3)
1-20: Integración completa de nuevos pluginsLa adición de importaciones para los nuevos plugins (
apoderado,documento,enterogrande,navegador,objetos,simbolo,ventana) amplía significativamente las capacidades del sistema. La organización alfabética de las importaciones facilita la lectura y el mantenimiento.
34-41: Orden estratégico de pluginsLa colocación de los nuevos plugins en el array antes de
tiposyobjetosparece estratégica para el pipeline de transformación. Esto asegura que las transformaciones específicas ocurran antes de las más generales, lo que es una buena práctica en sistemas de transformación de código.
44-44: Exportación adecuada de utilidadLa exportación de
setToEsJSproporciona acceso a esta utilidad desde fuera del módulo, lo que facilita su uso en otros componentes del sistema. Esto mejora la modularidad y reutilización del código.packages/core/test/fixtures.test.ts (3)
5-5: Optimización de import para TestCompileOptionsBuena práctica al cambiar la importación a una importación solo de tipo, ya que TestCompileOptions solo se utiliza como tipo y no como valor.
49-52: Normalización correcta de finales de líneaExcelente mejora al normalizar los finales de línea, esto garantiza que las pruebas funcionen correctamente en diferentes plataformas (Windows, macOS, Linux).
55-57: Función auxiliar bien implementadaLa función
normalizeLineEndingsestá bien implementada para manejar tanto CRLF como CR, normalizándolos a LF.packages/core/test/fixtures/extras/documento.js (1)
1-93: Conjunto completo de métodos y propiedades del objeto document.Este archivo de prueba proporciona una cobertura exhaustiva de la API del objeto
document, lo cual es excelente para validar la funcionalidad del plugin de documento. Incluye tanto métodos como propiedades, facilitando pruebas completas de traducción.packages/core/test/fixtures/extras/simbolo.esjs (3)
1-10: Implementación correcta de Simbolo y su integración con clases personalizadas.La creación del símbolo y la implementación del getter
[Simbolo.aCadenaEtiqueta]en la claseValidadorestán bien estructuradas. Esta es una buena prueba para verificar la correcta traducción entreSimbolo.aCadenaEtiquetaySymbol.toStringTag.
12-26: Cobertura completa de propiedades estáticas de Simbolo.Excelente cobertura de todas las propiedades estáticas relevantes de
Simbolo. Esto asegura que el plugin de traducción maneje correctamente todas las propiedades well-known de Symbol.
28-29: Verificación de métodos de registro de símbolos.La prueba de
Simbolo.para()ySimbolo.paraLlave()complementa bien el conjunto de pruebas, asegurando que estos métodos importantes también se traduzcan correctamente.packages/core/test/fixtures/extras/navegador.js (2)
1-30: Cobertura exhaustiva de propiedades del objeto navigator.Esta sección proporciona una lista completa de las propiedades y objetos de
navigator, lo que es fundamental para probar la funcionalidad del plugin de navegador. La cobertura es amplia e incluye tanto APIs comunes como especializadas.
31-41: Cobertura de métodos del objeto navigator.La inclusión de métodos como
canShare(),getBattery(),vibrate(), entre otros, complementa bien las pruebas de propiedades. Esto permite verificar la correcta traducción de la API completa denavigator.packages/core/src/plugins/enterogrande/index.ts (4)
1-9: Importaciones y descripción del plugin correctas.Las importaciones de utilidades son apropiadas para la funcionalidad requerida y la función
report()proporciona una descripción clara del propósito del plugin.
10-13: Mapeo adecuado de métodos estáticos.El mapeo de métodos estáticos es correcto, traduciendo
comoEnteroaasIntNycomoEnteroSinSignoaasUintN.
15-21: Mapeo completo de métodos de instancia y objetos.Los mapeos para métodos de instancia (
aCadenaLocalizada,aCadena,valorDe) y objetos (EnteroGrande->BigInt) son correctos y cubren la funcionalidad esencial.
23-41: Implementación completa de la función replace.La función
replace()implementa correctamente todas las transformaciones necesarias utilizando las utilidades importadas. La estructura es clara y organizada, abarcando métodos estáticos, métodos de instancia, verificaciones deinstanceofy referencias a objetos.packages/core/src/plugins/apoderado/index.ts (1)
1-31: ¡El código se ve bien!La implementación del plugin de Apoderado que transforma referencias desde español (Apoderado) a inglés (Proxy) está bien estructurada y sigue el patrón establecido para otros plugins. La conversión del método estático
revocabley las transformaciones de objetos están correctamente implementadas.packages/core/src/plugins/simbolo/index.ts (1)
1-71: Implementación completa y correctaEl plugin de Simbolo está bien implementado, cubriendo exhaustivamente todos los aspectos de la API de Symbol, incluyendo métodos de instancia, propiedades estáticas, métodos estáticos y símbolos conocidos (well-known symbols). La estructura es consistente con el patrón del proyecto y las traducciones son precisas.
packages/core/src/plugins/documento/index.ts (1)
1-132: Implementación exhaustiva y bien estructuradaEl plugin de Documento proporciona una traducción completa de la API de Document, cubriendo correctamente tanto el objeto global
documento(minúscula) como el constructorDocumento(mayúscula). Las traducciones de métodos y propiedades son precisas y la implementación sigue el patrón establecido para los plugins del proyecto.packages/core/src/plugins/ventana/index.ts (1)
1-140: Implementación completa de la API de ventanaEl plugin de ventana está bien implementado, cubriendo de manera exhaustiva las propiedades y métodos del objeto global window. Las traducciones son precisas (como 'alerta' → 'alert', 'desplazamientoX' → 'scrollX') y siguen una nomenclatura consistente en español. La estructura del plugin sigue el patrón establecido en el proyecto.
packages/core/src/plugins/navegador/index.ts (1)
1-74: Implementación completa y bien estructurada del plugin 'navegador'.El plugin para convertir referencias de 'navegador' a 'navigator' está bien organizado y sigue el patrón de diseño establecido para los plugins de ESJS. La implementación incluye un mapeo exhaustivo de propiedades, objetos y métodos del API de Navigator.
Sugerencias para considerar:
- Añadir documentación JSDoc al inicio del archivo para explicar el propósito general del plugin
- Considerar agrupar las propiedades por categorías funcionales (como geolocalización, medios, etc.) para mejorar la legibilidad y el mantenimiento
+/** + * Plugin para convertir referencias del navegador de español a inglés. + * Transforma propiedades, objetos y métodos relacionados con el API Navigator. + */ import { replaceObjects, replaceObjectStaticMethods, replaceObjectStaticProperties, } from '../utils'packages/core/test/fixtures/extras/navegador.esjs (1)
1-41: Fixture de prueba completo para el plugin 'navegador'.Este fixture cubre adecuadamente todas las propiedades y métodos definidos en el plugin navegador, proporcionando una buena cobertura para pruebas. La estructura sigue un formato claro con accesos a propiedades seguidos de llamadas a métodos.
Para mejorar la mantenibilidad:
- Considerar añadir comentarios para separar las secciones de propiedades y métodos
- Agrupar propiedades relacionadas (ej. multimedia, geolocalización, etc.)
+// Propiedades del navegador navegador.credenciales; navegador.memoriaDispositivo; navegador.concurrenciaHardware; ... + +// Métodos del navegador navegador.puedeCompartir() navegador.borrarInsigniaApp() ...packages/core/test/fixtures/extras/documento.esjs (1)
1-94: Fixture de prueba exhaustivo para el plugin 'documento'.Este fixture proporciona una cobertura amplia de las funcionalidades del objeto documento, incluyendo métodos para manipulación de nodos, creación de elementos, consultas y propiedades. También incluye la creación de una instancia de documento.
Sugerencias para mejorar:
- Añadir comentarios para separar las secciones por funcionalidad (ej. creación de elementos, manipulación de DOM, etc.)
- Verificar que todos los métodos y propiedades incluidos correspondan exactamente con los definidos en el plugin correspondiente
+// Métodos del documento documento.adoptarNodo() documento.anexar() ... + +// Propiedades del documento documento.elementoActivo; documento.hojasEstiloAdoptadas; ... + +// Creación de instancia de documento mut miDocumento = crear Documento()
| import * as esJscore from 'https://esm.run/@es-js/core' | ||
| import * as esJseshtml from 'https://esm.run/@es-js/eshtml' | ||
| window.addEventListener('load', function () { | ||
| let etiquetas = document.getElementsByTagName('script') |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Usar const para variables inmutables.
La variable etiquetas nunca se reasigna tras su inicialización. Cambiarla a const mejora la claridad y evita reasignaciones accidentales.
🧰 Tools
🪛 Biome (1.9.4)
[error] 4-4: This let declares a variable that is only assigned once.
'etiquetas' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
| } catch (error) { | ||
| console.error(error) | ||
| } | ||
| if (etiquetas[i].hasAttribute('src')) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
¿Considerar desduplicar el bloque de procesamiento de src?
El bloque que maneja <script src="..."> duplica la lógica de compilación y append. Quizás puedas extraer una función auxiliar para evitar repetición de código.
| const foo = Symbol("foo") | ||
|
|
||
| foo.valueOf() === "foo" | ||
| foo.toString() === "foo" | ||
|
|
||
| class Validador { | ||
| get [Symbol.toStringTag]() { | ||
| return 'Validador'; | ||
| } | ||
| } | ||
|
|
||
| Symbol.iterator.description; | ||
|
|
||
| Symbol.asyncIterator; | ||
| Symbol.hasInstance; | ||
| Symbol.isConcatSpreadable; | ||
| Symbol.iterator; | ||
| Symbol.match; | ||
| Symbol.matchAll; | ||
| Symbol.replace; | ||
| Symbol.search; | ||
| Symbol.species; | ||
| Symbol.split; | ||
| Symbol.toPrimitive; | ||
| Symbol.toStringTag; | ||
| Symbol.unscopables; | ||
|
|
||
| let sym = Symbol.for("foo"); | ||
| Symbol.keyFor(sym) === "foo"; |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Buena cobertura de funcionalidades de Symbol
El archivo proporciona una excelente cobertura de las funcionalidades de Symbol en JavaScript. Sin embargo, hay algunas expresiones que se evalúan pero no se verifican sus resultados.
Sugerencias:
- Añade comentarios explicativos para cada sección de prueba
- Utiliza
console.logo aserciones para verificar los resultados esperados - Agrupa las propiedades de Symbol por categorías lógicas
+// Creación básica de Symbol y pruebas de métodos
const foo = Symbol("foo")
-foo.valueOf() === "foo"
-foo.toString() === "foo"
+// Verificación de métodos
+console.log('valueOf() correcto:', foo.valueOf() === "foo")
+console.log('toString() correcto:', foo.toString() === "foo")
+// Ejemplo de uso con Symbol.toStringTag
class Validador {
get [Symbol.toStringTag]() {
return 'Validador';
}
}
+// Acceso a propiedades de Symbol
Symbol.iterator.description;
+// Símbolos bien conocidos (well-known symbols)
Symbol.asyncIterator;
Symbol.hasInstance;
Symbol.isConcatSpreadable;
Symbol.iterator;
Symbol.match;
Symbol.matchAll;
Symbol.replace;
Symbol.search;
Symbol.species;
Symbol.split;
Symbol.toPrimitive;
Symbol.toStringTag;
Symbol.unscopables;
+// Registro global de símbolos
let sym = Symbol.for("foo");
-Symbol.keyFor(sym) === "foo";
+console.log('Symbol.keyFor correcto:', Symbol.keyFor(sym) === "foo");📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const foo = Symbol("foo") | |
| foo.valueOf() === "foo" | |
| foo.toString() === "foo" | |
| class Validador { | |
| get [Symbol.toStringTag]() { | |
| return 'Validador'; | |
| } | |
| } | |
| Symbol.iterator.description; | |
| Symbol.asyncIterator; | |
| Symbol.hasInstance; | |
| Symbol.isConcatSpreadable; | |
| Symbol.iterator; | |
| Symbol.match; | |
| Symbol.matchAll; | |
| Symbol.replace; | |
| Symbol.search; | |
| Symbol.species; | |
| Symbol.split; | |
| Symbol.toPrimitive; | |
| Symbol.toStringTag; | |
| Symbol.unscopables; | |
| let sym = Symbol.for("foo"); | |
| Symbol.keyFor(sym) === "foo"; | |
| // Creación básica de Symbol y pruebas de métodos | |
| const foo = Symbol("foo") | |
| // Verificación de métodos | |
| console.log('valueOf() correcto:', foo.valueOf() === "foo") | |
| console.log('toString() correcto:', foo.toString() === "foo") | |
| // Ejemplo de uso con Symbol.toStringTag | |
| class Validador { | |
| get [Symbol.toStringTag]() { | |
| return 'Validador'; | |
| } | |
| } | |
| // Acceso a propiedades de Symbol | |
| Symbol.iterator.description; | |
| // Símbolos bien conocidos (well‑known symbols) | |
| Symbol.asyncIterator; | |
| Symbol.hasInstance; | |
| Symbol.isConcatSpreadable; | |
| Symbol.iterator; | |
| Symbol.match; | |
| Symbol.matchAll; | |
| Symbol.replace; | |
| Symbol.search; | |
| Symbol.species; | |
| Symbol.split; | |
| Symbol.toPrimitive; | |
| Symbol.toStringTag; | |
| Symbol.unscopables; | |
| // Registro global de símbolos | |
| let sym = Symbol.for("foo"); | |
| console.log('Symbol.keyFor correcto:', Symbol.keyFor(sym) === "foo"); |
| document.title; | ||
| document.URL; | ||
|
|
||
| let miDocumento = new Document() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Considera usar const en lugar de let para miDocumento.
Como parece que no se modifica el valor de miDocumento después de su inicialización, es preferible usar const para mejorar la intención del código y prevenir modificaciones accidentales.
-let miDocumento = new Document()
+const miDocumento = new Document()📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| let miDocumento = new Document() | |
| - let miDocumento = new Document() | |
| + const miDocumento = new Document() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 1
♻️ Duplicate comments (8)
packages/runtime/src/index.js (8)
3-3: Convertir callback a función flecha
El listener usa una función anónima que podría simplificarse a una arrow function para consistencia con las prácticas modernas.🧰 Tools
🪛 Biome (1.9.4)
[error] 3-64: This function expression can be turned into an arrow function.
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.(lint/complexity/useArrowFunction)
4-4: Usarconstpara variables inmutables
La variableetiquetasnunca se reasigna. Es más claro declararla comoconst.🧰 Tools
🪛 Biome (1.9.4)
[error] 4-4: This let declares a variable that is only assigned once.
'etiquetas' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
5-5: Reemplazarvarporlet
isolo se usa dentro del bucle,letlimita el alcance al bloque y evita fugas.🧰 Tools
🪛 Biome (1.9.4)
[error] 5-5: This var should be declared at the root of the enclosing function.
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.(lint/correctness/noInnerDeclarations)
[error] 5-5: Use let or const instead of var.
A variable declared with var is accessible in the whole body of the function. Thus, the variable can be accessed before its initialization and outside the block where it is declared.
See MDN web docs for more details.
Unsafe fix: Use 'let' instead.(lint/style/noVar)
12-13: Declaraciones inmutables comoconst
TantocodigoComcomoelementono se reasignan tras su definición; conviene declararlas comoconst.🧰 Tools
🪛 Biome (1.9.4)
[error] 12-12: This let declares a variable that is only assigned once.
'codigoCom' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 13-13: This let declares a variable that is only assigned once.
'elemento' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
30-31: Usarconsten lugar delet
codigoComyelementodentro del.thenno cambian después de la asignación.🧰 Tools
🪛 Biome (1.9.4)
[error] 30-30: This let declares a variable that is only assigned once.
'codigoCom' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 31-31: This let declares a variable that is only assigned once.
'elemento' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
41-43: Convertir.catcha arrow function
La función de manejo de errores usafunction(error), se puede concisar conerror => { ... }.🧰 Tools
🪛 Biome (1.9.4)
[error] 41-43: This function expression can be turned into an arrow function.
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.(lint/complexity/useArrowFunction)
50-50: DeclararetiquetasHcomoconst
Esta variable no se reasigna y debería usarconstpara mayor claridad.🧰 Tools
🪛 Biome (1.9.4)
[error] 50-50: This let declares a variable that is only assigned once.
'etiquetasH' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
51-51: Reemplazarvarporlet
La variableuse limita al bucle; usarletevita posibles problemas de alcance.🧰 Tools
🪛 Biome (1.9.4)
[error] 51-51: This var should be declared at the root of the enclosing function.
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.(lint/correctness/noInnerDeclarations)
[error] 51-51: Use let or const instead of var.
A variable declared with var is accessible in the whole body of the function. Thus, the variable can be accessed before its initialization and outside the block where it is declared.
See MDN web docs for more details.
Unsafe fix: Use 'let' instead.(lint/style/noVar)
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
⛔ Files ignored due to path filters (1)
apps/playground/pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (3)
apps/playground/package.json(1 hunks)packages/runtime/src/index.js(1 hunks)packages/sandbox/package.json(1 hunks)
🧰 Additional context used
🪛 Biome (1.9.4)
packages/runtime/src/index.js
[error] 5-5: This var should be declared at the root of the enclosing function.
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
(lint/correctness/noInnerDeclarations)
[error] 41-43: This function expression can be turned into an arrow function.
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.
(lint/complexity/useArrowFunction)
[error] 51-51: This var should be declared at the root of the enclosing function.
The var is accessible in the whole body of the enclosing function.
To avoid confusion, it should be declared at the root of the enclosing function.
(lint/correctness/noInnerDeclarations)
[error] 3-64: This function expression can be turned into an arrow function.
Function expressions that don't use this can be turned into arrow functions.
Safe fix: Use an arrow function instead.
(lint/complexity/useArrowFunction)
[error] 4-4: This let declares a variable that is only assigned once.
'etiquetas' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 5-5: Use let or const instead of var.
A variable declared with var is accessible in the whole body of the function. Thus, the variable can be accessed before its initialization and outside the block where it is declared.
See MDN web docs for more details.
Unsafe fix: Use 'let' instead.
(lint/style/noVar)
[error] 12-12: This let declares a variable that is only assigned once.
'codigoCom' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 13-13: This let declares a variable that is only assigned once.
'elemento' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 30-30: This let declares a variable that is only assigned once.
'codigoCom' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 31-31: This let declares a variable that is only assigned once.
'elemento' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 50-50: This let declares a variable that is only assigned once.
'etiquetasH' is never reassigned.
Safe fix: Use const instead.
(lint/style/useConst)
[error] 51-51: Use let or const instead of var.
A variable declared with var is accessible in the whole body of the function. Thus, the variable can be accessed before its initialization and outside the block where it is declared.
See MDN web docs for more details.
Unsafe fix: Use 'let' instead.
(lint/style/noVar)
🔇 Additional comments (3)
packages/sandbox/package.json (1)
3-3: Actualización de versión del paquete
Se ha incrementado la versión de@es-js/sandboxde0.0.20-beta.1a0.0.20-beta.2.Por favor, verifica que la versión
0.0.20-beta.2ya esté publicada correctamente en el registro npm antes de proceder con el lanzamiento.apps/playground/package.json (1)
27-29: Alineación de dependencias de desarrollo
Se han actualizado las versiones de@es-js/core,@es-js/language-toolsy@es-js/sandboxpara reflejar los últimos cambios en el monorepo.Recomiendo ejecutar un build y las pruebas de integración en
apps/playgroundpara asegurar que estos bumps no introduzcan rupturas de compatibilidad.packages/runtime/src/index.js (1)
1-2: Solo cambios de formato en imports
Los cambios en estas líneas solo reemplazan comillas dobles por simples y no afectan la lógica.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Actionable comments posted: 6
♻️ Duplicate comments (2)
packages/core/test/fixtures/extras/soporte.js (1)
21-21: Manejo de la promesa defetch
Solo se usa.then()para parsear el JSON; no hay un.catch()para capturar errores de red o de parseo. Para evitar warnings de promesas no manejadas, incorpora un bloquecatch().fetch('https://jsonplaceholder.typicode.com/todos/1') - .then((respuesta) => { return respuesta.json() }) + .then((respuesta) => respuesta.json()) + .then((data) => console.log('Fetch resultado:', data)) + .catch((error) => console.error('Error en fetch:', error));packages/core/test/fixtures/extras/soporte.esjs (1)
1-29: ¡Excelente cobertura de funcionalidades de soporte!El archivo proporciona una buena cobertura de pruebas para las funciones de soporte globales del navegador. Incluye pruebas para temporizadores, diálogos, consultas HTTP y funciones de codificación URI.
Sugerencia: Considera organizar el código con comentarios que agrupen funcionalidades relacionadas para mejorar la legibilidad y mantenimiento.
const timeout = establecerTemporizador(() => { consola.escribir('timeout') }) const interval = establecerIntervalo(() => { consola.escribir('interval') }) consola.escribir(esNuN('a')) +// Limpieza de temporizadores limpiarTemporizador(timeout) limpiarIntervalo(interval) +// Funciones de diálogo alerta('alert') preguntar('prompt') confirmar('confirm') +// Peticiones HTTP consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() }) +// Funciones de codificación/decodificación URI consola.escribir(decodificarURI('https://jsonplaceholder.typicode.com/todos/1')) consola.escribir(decodificarComponenteURI('https%3A%2F%2Fjsonplaceholder.typicode.com%2Ftodos%2F1')) consola.escribir(codificarURI('https://jsonplaceholder.typicode.com/todos/1')) consola.escribir(codificarComponenteURI('https://jsonplaceholder.typicode.com/todos/1'))
📜 Review details
Configuration used: CodeRabbit UI
Review profile: ASSERTIVE
Plan: Pro
📒 Files selected for processing (6)
packages/core/test/fixtures/extras/apoderado.esjs(1 hunks)packages/core/test/fixtures/extras/apoderado.js(1 hunks)packages/core/test/fixtures/extras/enterogrande.esjs(1 hunks)packages/core/test/fixtures/extras/enterogrande.js(1 hunks)packages/core/test/fixtures/extras/soporte.esjs(1 hunks)packages/core/test/fixtures/extras/soporte.js(1 hunks)
🧰 Additional context used
🧬 Code Graph Analysis (1)
packages/core/test/fixtures/extras/apoderado.js (1)
packages/core/test/fixtures/extras/objetos.js (1)
apoderado(25-25)
⏰ Context from checks skipped due to timeout of 90000ms (6)
- GitHub Check: test (22.x)
- GitHub Check: test (18.x)
- GitHub Check: test (20.x)
- GitHub Check: test (22.x)
- GitHub Check: test (20.x)
- GitHub Check: test (18.x)
🔇 Additional comments (13)
packages/core/test/fixtures/extras/apoderado.esjs (1)
1-1: Fixture implementado correctamente.El código parece estar correctamente implementado utilizando la sintaxis de es-js. La variable mutable
apoderadose inicializa concrear Apoderado({}, {}), que debería transformarse adecuadamente anew Proxy({}, {})en JavaScript.La inicialización incluye correctamente los dos argumentos requeridos para un Proxy: el objeto destino y el objeto manejador, ambos vacíos en este caso.
packages/core/test/fixtures/extras/apoderado.js (1)
1-1: Implementación correcta de Proxy.Esta implementación es correcta y corresponde adecuadamente con la transformación esperada desde el código es-js. El constructor
Proxyrecibe los dos argumentos requeridos: un objeto destino vacío y un objeto manejador vacío.Este código coincide con el patrón de implementación visto en otros archivos del proyecto, como en
packages/core/test/fixtures/extras/objetos.js.packages/core/test/fixtures/extras/enterogrande.js (3)
1-1: ¡Implementación correcta de BigInt!Excelente trabajo corrigiendo el uso de
BigInt. En JavaScript,BigIntno se debe usar con el operadornewya que no es un constructor, sino una función. La implementación actual es correcta.
2-4: Métodos de instancia correctamente implementadosLos métodos de instancia para el objeto BigInt están correctamente implementados. Para completar este fixture, podría ser útil capturar los valores de retorno para mostrar su comportamiento, aunque para fines de prueba la implementación actual es suficiente.
5-6: Métodos estáticos correctamente implementadosLos métodos estáticos
asIntNyasUintNestán correctamente implementados. Estos métodos son importantes para la manipulación de enteros con tamaños específicos en bits.packages/core/test/fixtures/extras/enterogrande.esjs (3)
1-1: Declaración correcta de EnteroGrandeLa declaración de la variable con
muty la inicialización deEnteroGrandesin el operadornewes correcta, siguiendo las convenciones de ES-JS y evitando el error común de usarBigIntcomo constructor.
2-4: Métodos de instancia en español correctamente implementadosLos métodos de instancia en español (
aCadenaLocalizada,aCadena,valorDe) están correctamente implementados y corresponden a sus equivalentes en JavaScript (toLocaleString,toString,valueOf).
5-6: Métodos estáticos en español correctamente implementadosLos métodos estáticos
comoEnteroycomoEnteroSinSignoestán correctamente implementados y corresponden a sus equivalentes en JavaScript (asIntNyasUintN). La firma de los métodos mantiene el mismo orden de parámetros que sus equivalentes en JavaScript.packages/core/test/fixtures/extras/soporte.js (5)
9-9: Cobertura deisNaN
El uso deconsole.log(isNaN('a'))es correcto para validar el mapeo de la función global en el plugin.
11-13: Limpieza de los temporizadores
clearTimeout(timeout)yclearInterval(interval)están aplicados correctamente sobre los identificadores capturados.
15-19: Disponibilidad dealert,promptyconfirmen pruebas
Las llamadas directas a estos diálogos pueden no existir en el entorno Node o en un runner de pruebas sin un entorno de navegador (JSDOM) o mocks configurados. Verifica que el test runner proporcione estas funciones globales para evitar errores deReferenceError.
23-26: Cobertura de funciones de decodificación de URI
Los llamados adecodeURIydecodeURIComponentestán bien para probar el plugin de mapeo de keywords.
27-30: Cobertura de funciones de codificación de URI
Los llamados aencodeURIyencodeURIComponentestán correctos y completan el conjunto de pruebas para URI.
| const interval = setInterval(() => { | ||
| console.log('interval') | ||
| }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Prueba de temporizador recurrente con setInterval
Análogamente, interval se declara bien para luego limpiarse. De nuevo, podrías especificar un retardo explícito (0) para dejar más claro el comportamiento en el fixture.
| const timeout = setTimeout(() => { | ||
| console.log('timeout') | ||
| }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Prueba de temporizador con setTimeout
La constante timeout captura correctamente el identificador para su cancelación posterior. Considera, si quieres mayor claridad en el fixture, añadir explícitamente el retardo (0) como segundo parámetro, aunque por defecto sea 0.
|
|
||
| confirmar('confirm') | ||
|
|
||
| consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() }) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🛠️ Refactor suggestion
Añadir manejo de errores a la consulta fetch
La operación de consulta (fetch) debería incluir manejo de errores para asegurar que los fallos en la red o en la respuesta sean capturados correctamente.
-consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() })
+consultar('https://jsonplaceholder.typicode.com/todos/1')
+ .luego((respuesta) => {
+ si (!respuesta.ok) {
+ lanzar nuevo Error(`Error en la consulta: ${respuesta.status}`);
+ }
+ retornar respuesta.json()
+ })
+ .atrapar((error) => {
+ consola.error('Error en la consulta:', error);
+ })📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() }) | |
| consultar('https://jsonplaceholder.typicode.com/todos/1') | |
| .luego((respuesta) => { | |
| si (!respuesta.ok) { | |
| lanzar nuevo Error(`Error en la consulta: ${respuesta.status}`); | |
| } | |
| retornar respuesta.json() | |
| }) | |
| .atrapar((error) => { | |
| consola.error('Error en la consulta:', error); | |
| }) |
| consola.escribir('interval') | ||
| }) | ||
|
|
||
| consola.escribir(esNuN('a')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Probar esNuN con diferentes tipos de entrada
Para una cobertura más completa, considera probar la función esNuN con diferentes tipos de entrada.
-consola.escribir(esNuN('a'))
+// Pruebas de esNuN con diferentes tipos
+consola.escribir('esNuN con string:', esNuN('a'))
+consola.escribir('esNuN con número:', esNuN(123))
+consola.escribir('esNuN con NaN:', esNuN(NaN))
+consola.escribir('esNuN con undefined:', esNuN(indefinido))
+consola.escribir('esNuN con null:', esNuN(nulo))Committable suggestion skipped: line range outside the PR's diff.
| @@ -1,3 +1,29 @@ | |||
| const data = importar.meta | |||
| const timeout = establecerTemporizador(() => { | |||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Añadir un comentario descriptivo al inicio del archivo
Para mejorar la documentación, considera añadir un comentario al inicio del archivo que explique su propósito.
+/**
+ * Pruebas para las funciones de soporte global del navegador.
+ * Este archivo verifica la funcionalidad de temporizadores, diálogos,
+ * consultas HTTP y funciones de codificación/decodificación URI.
+ */
const timeout = establecerTemporizador(() => {
consola.escribir('timeout')
})📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const timeout = establecerTemporizador(() => { | |
| /** | |
| * Pruebas para las funciones de soporte global del navegador. | |
| * Este archivo verifica la funcionalidad de temporizadores, diálogos, | |
| * consultas HTTP y funciones de codificación/decodificación URI. | |
| */ | |
| const timeout = establecerTemporizador(() => { | |
| consola.escribir('timeout') | |
| }) |
| const timeout = establecerTemporizador(() => { | ||
| consola.escribir('timeout') | ||
| }) | ||
|
|
||
| consola.escribir(`${importar.meta.env.ESJS}`) | ||
| const interval = establecerIntervalo(() => { | ||
| consola.escribir('interval') | ||
| }) | ||
|
|
||
| consola.escribir(esNuN('a')) | ||
|
|
||
| limpiarTemporizador(timeout) | ||
|
|
||
| limpiarIntervalo(interval) | ||
|
|
||
| alerta('alert') | ||
|
|
||
| preguntar('prompt') | ||
|
|
||
| confirmar('confirm') | ||
|
|
||
| consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() }) | ||
|
|
||
| consola.escribir(decodificarURI('https://jsonplaceholder.typicode.com/todos/1')) | ||
|
|
||
| consola.escribir(decodificarComponenteURI('https%3A%2F%2Fjsonplaceholder.typicode.com%2Ftodos%2F1')) | ||
|
|
||
| consola.escribir(codificarURI('https://jsonplaceholder.typicode.com/todos/1')) | ||
|
|
||
| consola.escribir(codificarComponenteURI('https://jsonplaceholder.typicode.com/todos/1')) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🧹 Nitpick (assertive)
Considerar añadir aserciones para verificar resultados
Este archivo de prueba ejecuta varias funciones pero no verifica que los resultados sean correctos. Para mejorar la cobertura de pruebas, considera añadir aserciones o verificaciones.
const timeout = establecerTemporizador(() => {
consola.escribir('timeout')
})
const interval = establecerIntervalo(() => {
consola.escribir('interval')
})
-consola.escribir(esNuN('a'))
+// Verificar esNuN
+const resultadoEsNuN = esNuN('a')
+consola.escribir(resultadoEsNuN)
+console.assert(resultadoEsNuN === verdadero, 'esNuN("a") debería ser verdadero')
limpiarTemporizador(timeout)
limpiarIntervalo(interval)
alerta('alert')
preguntar('prompt')
confirmar('confirm')
consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() })
-consola.escribir(decodificarURI('https://jsonplaceholder.typicode.com/todos/1'))
+// Verificar funciones de URI
+const uriOriginal = 'https://jsonplaceholder.typicode.com/todos/1'
+const uriCodificada = codificarURI(uriOriginal)
+const uriDecodificada = decodificarURI(uriCodificada)
+consola.escribir(uriDecodificada)
+console.assert(uriDecodificada === uriOriginal, 'La URI decodificada debería coincidir con la original')
consola.escribir(decodificarComponenteURI('https%3A%2F%2Fjsonplaceholder.typicode.com%2Ftodos%2F1'))
consola.escribir(codificarURI('https://jsonplaceholder.typicode.com/todos/1'))
consola.escribir(codificarComponenteURI('https://jsonplaceholder.typicode.com/todos/1'))📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| const timeout = establecerTemporizador(() => { | |
| consola.escribir('timeout') | |
| }) | |
| consola.escribir(`${importar.meta.env.ESJS}`) | |
| const interval = establecerIntervalo(() => { | |
| consola.escribir('interval') | |
| }) | |
| consola.escribir(esNuN('a')) | |
| limpiarTemporizador(timeout) | |
| limpiarIntervalo(interval) | |
| alerta('alert') | |
| preguntar('prompt') | |
| confirmar('confirm') | |
| consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() }) | |
| consola.escribir(decodificarURI('https://jsonplaceholder.typicode.com/todos/1')) | |
| consola.escribir(decodificarComponenteURI('https%3A%2F%2Fjsonplaceholder.typicode.com%2Ftodos%2F1')) | |
| consola.escribir(codificarURI('https://jsonplaceholder.typicode.com/todos/1')) | |
| consola.escribir(codificarComponenteURI('https://jsonplaceholder.typicode.com/todos/1')) | |
| const timeout = establecerTemporizador(() => { | |
| consola.escribir('timeout') | |
| }) | |
| const interval = establecerIntervalo(() => { | |
| consola.escribir('interval') | |
| }) | |
| // Verificar esNuN | |
| const resultadoEsNuN = esNuN('a') | |
| consola.escribir(resultadoEsNuN) | |
| console.assert(resultadoEsNuN === verdadero, 'esNuN("a") debería ser verdadero') | |
| limpiarTemporizador(timeout) | |
| limpiarIntervalo(interval) | |
| alerta('alert') | |
| preguntar('prompt') | |
| confirmar('confirm') | |
| consultar('https://jsonplaceholder.typicode.com/todos/1').luego((respuesta) => { retornar respuesta.json() }) | |
| // Verificar funciones de URI | |
| const uriOriginal = 'https://jsonplaceholder.typicode.com/todos/1' | |
| const uriCodificada = codificarURI(uriOriginal) | |
| const uriDecodificada = decodificarURI(uriCodificada) | |
| consola.escribir(uriDecodificada) | |
| console.assert(uriDecodificada === uriOriginal, 'La URI decodificada debería coincidir con la original') | |
| consola.escribir(decodificarComponenteURI('https%3A%2F%2Fjsonplaceholder.typicode.com%2Ftodos%2F1')) | |
| consola.escribir(codificarURI('https://jsonplaceholder.typicode.com/todos/1')) | |
| consola.escribir(codificarComponenteURI('https://jsonplaceholder.typicode.com/todos/1')) |
Añadir @es-js/runtime
Arreglar Error
Añadir recomentacion de coderabbitai
Añadir ventana, navegador y algunas funciones
añadir mas funciones
Arreglar Error
Arreglar
Añadir Apoderado = Proxy
Añadir tipos
.
añadir mas funciones,
cambiar Apoderado a Puente
añadir Simbolo = Symbol
Arreglar Error en Simbolo
Añadir Numero Grande
Arreglar Proxy y añadir NumeroGrande a tipos
Añadir Documento
Arreglar Errores
Arreglar error de ventana caches
Arreglar propiedades de simbolo
Cambiar documento a document estatico
Arreglar simbolo aCadena propiedad a etiquetaCadena
Arreglar Documento
chore(tests): add Plugins fixtures
chore(tests): plugins fixtures
Update packages/core/src/plugins/ventana/index.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
change(documento): cambiar
agregarporanexar; eliminar funciones deprecadas; agregar Fixture para Testschore(documento): fix fixture
Update packages/core/src/plugins/ventana/index.ts
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Añadir Icono y Simbolo tests
Arreglar Symbol...
Añadir test de Puente y arreglar Simbolo
Añadir NumeroGrande Tests y Arreglar Puente
Arreglar NumeroGrande
Quitar ;
Añadir propiedades Documento
Arreglar Errores
Arreglar...
Añadir ; ...
Añadir...
Arreglar mensajes de error de Extension VSCode y añadir Ignorar tipos de salto de linea
Arreglar Simbolo Test
Añadir Navegador
Añadir Ventana
chore: update tests and add action (chore: update tests and add action #11)
Añadir @es-js/runtime
Arreglar Ventana
chore(documento): cambios && eliminar deprecados
chore(documento): cambios && eliminar deprecados
change: renombrar NumeroGrande a EnteroGrande
change(EnteroGrande): claves && eliminar
etiquetaCadenaporque esta duplicado en Simbolochange(navegador): keywords
change(simbolo): aCadenaEtiqueta
chore: renombrar puente -> paoderado
chore(simbolo): keywords && tests
chore(soporte): keywords
chore(ventana): keywords
chore(soporte): keywords && tests
chore: salto lineas
chore: run format
chore(documento): keywords
chore(navegador): keywords
chore(vscode-esjs): revertir errorHandler
chore(vscode-esjs): release v0.1.2
chore(language-tools): update from develop
chore(core/plugins): tipos tests
fix(core/plugins): tipos
chore: run format
chore: remove unused fixtures
chore(core/simbolo): quitar aPrimitivo como metodo
chore: quitar codigo no usado
chore(core/ventana): keywords
chore(core/plugins): objetos
Co-authored-by: Enzo Notario enzo.notario@gmail.com
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Summary by CodeRabbit
Nuevas funcionalidades
Mejoras
Corrección de errores
Estilo y Refactorización
Tareas de mantenimiento