Video Summary and Transcription
JSR es un nuevo registro de JavaScript que admite TypeScript y ofrece características adicionales como integración con GitHub Actions, atestaciones de procedencia y generación de documentación. Proporciona un sitio web simple con búsqueda de paquetes, documentación y una puntuación gamificada. El proceso de publicación de un nuevo paquete en JSR implica crear un archivo JSR.json con los detalles y exportaciones del paquete, usar MPX JSR publish para publicar el paquete y aprobar la autorización en el navegador. Sin embargo, la documentación del paquete no se genera automáticamente y debe agregarse manualmente.
1. Introducing JSR and its Features
Hoy, estaré presentando JSR una vez más. Es un nuevo registro de JavaScript, similar a npm, pero con soporte para TypeScript de forma nativa. Creamos JSR debido a la complejidad de npm. Npm no está innovando en absoluto. Tenemos características adicionales como integración con GitHub Actions, certificaciones de procedencia y generación de documentación. Echemos un vistazo a JSR en sí, un sitio web simple con búsqueda de paquetes, documentación y una puntuación gamificada. Publiquemos un paquete.
Hoy, estaré presentando JSR una vez más. Soy Leo, trabajo en Deano, trabajo en JSR, generación de documentation y APIs web. ¿Qué es JSR? Es un nuevo registro de JavaScript, similar a npm, pero con soporte para TypeScript de forma nativa. No es necesario configurar TSC, solo subes TypeScript y genera los archivos por ti. Sin embargo, no reemplaza a npm. Está construido sobre él. Aún puedes usar paquetes de npm junto con él. Es compatible con diferentes entornos de ejecución, ya sea Node, Deano, trabajadores de Cloudflare, siempre que admitan módulos de Node, funciona. Lo mismo ocurre con los administradores de paquetes, npm, pm, pm, yarn, y más. Siempre que admitas módulos de Node, funcionará sin problemas. Entonces, ¿por qué creamos JSR? Es debido a la complejidad de npm. Como se mencionó, TypeScript se está volviendo complicado, pero todos lo usan hoy en día, entonces, ¿por qué npm no lo adopta? La solución fue crear una alternativa basada en él. Npm no está innovando en absoluto. Sin soporte para TypeScript, ha realizado muy pocos cambios y parece estar orientado más hacia el ámbito empresarial, pero nada para el ecosistema de código abierto. Nuestros valores son que JavaScript es uno que avanza rápidamente y, nuevamente, npm no lo hace realmente. La razón por la que creamos esto es porque npm no está avanzando. Algunas características adicionales de npm son que tenemos integración directa con GitHub Actions, por lo que, a través de tokens YDC, puedes ejecutar npm JSR publish y se publicará automáticamente. No necesitas poner ningún token, solo autentica que eres tú. Tenemos certificaciones de procedencia que, si usas GitHub Actions, generará certificaciones de procedencia para ti, lo que demuestra aún más que publicaste el paquete y que eres el verdadero autor, y no hay un intermediario con algún tipo de token robado, etc. La generación de documentation es que JSR genera documentación para todas tus APIs directamente para ti. No necesitas configurar TS docs u otra herramienta de generación de documentation. Lo hace directamente por ti. Entonces, hora de la demostración. Esto va a ser interesante. Echemos un vistazo a JSR en sí. Es un sitio web simple. Podemos buscar un paquete, hacerlo más grande y es un paquete middleware popular similar a express del ecosistema de npm. Tiene un archivo readme, puedo hacer clic en los docs, tiene algunos tipos exportados, clases, interfaces, etc., y más documentation, los parámetros de tipo, propiedades, métodos, toda la información diferente que uno necesitaría de un paquete está incluida. También tenemos una puntuación pequeña pero interesante porque a la gente le encanta gamificar las cosas. Publiquemos un paquete, ¿de acuerdo? Así que estamos aquí, en un directorio vacío, nada especial que ver, y simplemente crearemos, en realidad, vayamos al navegador, déjame iniciar sesión rápidamente.
2. Publishing a New Package in JSR
Vamos a publicar un nuevo paquete en JSR. Crea un archivo JSR.json con los detalles del paquete y las exportaciones. Exporta una función que imprime un mensaje de bienvenida. Usa MPX JSR publish para publicar el paquete. Aprueba la autorización en el navegador. El paquete se publica, pero no se encuentra documentación. La función hello se puede encontrar en la documentación actual.
Y vamos a la página principal, y vamos a publicar un nuevo paquete. Así que voy a seleccionar mi propio alcance, o puedes crear uno nuevo si quieres, pero ya tengo el mío. Y simplemente creemos JS nation, y está disponible. Genial. Entonces, ¿cómo publicar? Simplemente copiaremos este JSR.json, o también puedes especificar manualmente el archivo que deseas, el archivo de configuración, pero por ahora, simplemente creamos JSR.json, y eso contiene el nombre del paquete, incluyendo el alcance, porque en JSR todo está acotado, tenemos la versión y las exportaciones. Para este ejemplo, llamémoslo index.ts. Esto podría ser un objeto, clave por valor, y la clave a la que deseas asignar, y vamos a crear un archivo TypeScript, index, y exportemos una función. Hola. ¿Por qué no? Y toma un año. Eso es un número. Y simplemente console.log hola JS nation, y pasemos ese año. Agreguemos también alguna documentación. Tenemos el cuerpo de la función actual que genera un mensaje de bienvenida. Digamos imprime. Imprime un mensaje de bienvenida, y un año, el año para dar la bienvenida. Muy bien, entonces. Simplemente MPX JSR publish, y esperemos que funcione. Primero tiene que descargar JSR en sí, y abre el navegador para aprobar la autorización porque no se pasan tokens con la CLI en sí. Y aprobamos. Hace algo de magia detrás de escena. Y se publica. Ahora dice que no se encontró documentación porque no agregamos un readme de ningún tipo, pero si voy a la documentación actual, y voy a la función hello en la exportación predeterminada, tenemos imprime un mensaje de bienvenida con el año, especificando el tipo y el comentario que dejamos anteriormente, y devuelve nada, obviamente. Sí, eso es prácticamente todo. Muchas gracias.
Comments