Sobre o projeto
GraphQL.js é a implementação de referência em JavaScript do GraphQL, a linguagem de consulta para APIs criada originalmente no Facebook. O README aponta para o repositório da especificação GraphQL para uma visão geral da linguagem e observa que os exemplos descritos lá aparecem como testes dentro deste repositório — um caminho sugerido para novatos é ler essa visão geral juntamente com os testes correspondentes.
Principais capacidades
A biblioteca expõe duas capacidades centrais: a construção de um esquema de tipos e o atendimento de consultas contra esse esquema. Um esquema é definido com GraphQLSchema e GraphQLObjectType, com campos cujo tipo é um dos escalares integrados, como GraphQLString; cada campo pode fornecer uma função resolve. O README afirma que um resolver pode retornar um valor, uma promise ou um array de promises. As consultas são executadas através da função graphql, que aceita um esquema e uma string de origem e retorna uma promise do resultado. Antes de executar, a função verifica se a consulta é sintática e semanticamente válida e, caso contrário, relata erros, ilustrado por um exemplo que retorna um erro "Cannot query field" com informações de localização.
Instalação
O GraphQL.js é instalado via npm como o pacote `graphql`, utilizando npm, yarn ou bun. O README também menciona um branch `npm` do repositório mantido automaticamente que rastreia o último commit da linha 17.x.x que passou em todos os testes; depender diretamente desse branch é oferecido como uma forma de usar código ainda não lançado, enquanto o README recomenda o uso de builds publicados no npm.
Uso em navegador e bundlers
O README observa que a biblioteca é de propósito geral e pode ser usada tanto em um servidor Node quanto no navegador, citando o GraphiQL como um exemplo de projeto construído com ela. Projetos que utilizam webpack ou rollup devem funcionar sem configuração especial e incluir apenas as partes da biblioteca que utilizam, pois o GraphQL.js é distribuído com arquivos CommonJS (`require()`) e ESModule (`import`). Um mapa `exports` no `package.json` direciona runtimes e bundlers para os arquivos apropriados; ferramentas sem suporte a `exports` encontram builds CommonJS em arquivos `.js` e o build ESModule em arquivos `.mjs`.
Governança do projeto e suporte
Contribuições são bem-vindas via pull requests, e o repositório é gerenciado pelo EasyCLA: os participantes devem assinar um acordo de Membro da Especificação GraphQL, individualmente ou através de um empregador, antes de contribuir. O README também menciona a adesão à GraphQL Foundation como uma forma de apoiar financeiramente a comunidade.
As alterações são rastreadas como releases do GitHub. O projeto possui licença MIT. Ele segue o Versionamento Semântico, com suporte total (correções de bugs e atualizações de segurança) para a versão major mais recente, suporte de funcionalidades para a versão major anterior por 12 meses após um novo lançamento major (fazendo backport de mudanças na especificação apenas quando não forem disruptivas) e sem manutenção ativa para versões mais antigas — exceto que uma versão lançada há menos de um ano é tratada como a versão major anterior. Atualmente não há um lançamento de Long-Term Support; os usuários são incentivados a atualizar para a versão estável mais recente. As datas de fim de vida (end-of-life) para uma versão major são anunciadas com pelo menos seis meses de antecedência, após as quais essa versão não recebe atualizações, mesmo para problemas críticos de segurança. Atualizações críticas de segurança aplicam-se tanto à versão major atual quanto à anterior. Assistência de atualização é oferecida através de notas de release por versão, guias de migração no site de documentação e um canal da comunidade no Discord.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.