Sobre el proyecto

GraphQL.js es la implementación de referencia de GraphQL en JavaScript, el lenguaje de consultas para APIs creado originalmente en Facebook. El README remite al repositorio de la especificación de GraphQL para obtener una visión general del lenguaje, y señala que los ejemplos descritos allí aparecen como pruebas dentro de este repositorio; una ruta sugerida para los recién llegados es leer esa descripción general junto con las pruebas correspondientes. Capacidades principales La biblioteca expone dos capacidades centrales: la construcción de un esquema de tipos y la atención de consultas contra dicho esquema. Un esquema se define con GraphQLSchema y GraphQLObjectType, con campos cuyo tipo es uno de los escalares integrados como GraphQLString; cada campo puede proporcionar una función resolve. El README establece que un resolver puede devolver un valor, una promesa o un array de promesas. Las consultas se ejecutan a través de la función graphql, que acepta un esquema y una cadena de origen y devuelve una promesa del resultado. Antes de ejecutar, la función verifica que la consulta sea sintáctica y semánticamente válida y, de lo contrario, informa los errores, ilustrado por un ejemplo que devuelve un error "Cannot query field" con información de ubicación. Instalación GraphQL.js se instala desde npm como el paquete `graphql`, utilizando npm, yarn o bun. El README también menciona una rama de `npm` del repositorio mantenida automáticamente que sigue el último commit de la línea 17.x.x que pase todas las pruebas; depender directamente de esa rama se ofrece como una forma de usar código aún no publicado, mientras que el README recomienda usar las builds publicadas en npm. Uso en navegador y bundler El README señala que la biblioteca es de propósito general y puede usarse tanto en un servidor Node como en el navegador, citando a GraphiQL como un proyecto de ejemplo construido con ella. Los proyectos que utilizan webpack o rollup deberían funcionar sin configuración especial e incluir solo las partes de la biblioteca que utilicen, ya que GraphQL.js se distribuye con archivos tanto de CommonJS (`require()`) como de ESModule (`import`). Un mapa de `exports` en `package.json` dirige los entornos de ejecución y bundlers a los archivos apropiados; las herramientas sin soporte para `exports` encuentran las builds de CommonJS en archivos `.js` y la build de ESModule en archivos `.mjs`. Gobierno del proyecto y soporte Las contribuciones son bienvenidas a través de pull requests, y el repositorio es gestionado por EasyCLA: los participantes deben firmar un acuerdo de Membresía de la Especificación de GraphQL, ya sea individualmente o a través de un empleador, antes de contribuir. El README también menciona la membresía de la GraphQL Foundation como una forma de apoyar financieramente a la comunidad. Los cambios se rastrean como releases de GitHub. El proyecto tiene licencia MIT. Sigue el Versionado Semántico, con soporte completo (correcciones de errores y actualizaciones de seguridad) para la versión mayor más reciente, soporte de funciones para la versión mayor anterior durante 12 meses después de un nuevo lanzamiento mayor (realizando backporting de cambios de especificación solo cuando no sean disruptivos), y sin mantenimiento activo para versiones más antiguas, excepto que una versión lanzada hace menos de un año se trata como la versión mayor anterior. Actualmente no hay ninguna versión de Soporte a Largo Plazo (LTS); se anima a los usuarios a actualizar a la versión estable más reciente. Las fechas de fin de vida para una versión mayor se anuncian con al menos seis meses de antelación, después de lo cual esa versión no recibe actualizaciones ni siquiera para problemas críticos de seguridad. Las actualizaciones de seguridad críticas se aplican tanto a la versión mayor actual como a la anterior. La asistencia para la actualización se ofrece a través de notas de lanzamiento por versión, guías de migración en el sitio de documentación y un canal de Discord de la comunidad.