worksome / graphlint
GraphQl 的静态分析工具
v0.11.3
2024-07-03 08:18 UTC
Requires
- php: ^8.2
- illuminate/support: ^10.0
- jawira/case-converter: ^3.5
- symfony/config: ^6.0
- symfony/console: ^6.1
- symfony/dependency-injection: ^6.0
- symfony/http-kernel: ^6.0
- symplify/autowire-array-parameter: ^11.0
- symplify/package-builder: ^11.0
- thecodingmachine/safe: ^2.4
- webonyx/graphql-php: ^15.0.1
Requires (Dev)
- pestphp/pest: ^2.34
- symfony/var-dumper: ^6.4
- symplify/easy-testing: ^11.0
- worksome/coding-style: ^2.10.2
Suggests
- ext-dom: Required for Checkstyle output format.
- dev-main
- v0.11.3
- v0.11.2
- v0.11.1
- v0.11.0
- v0.10.1
- v0.10.0
- v0.9.0
- v0.8.0
- v0.7.0
- v0.6.2
- v0.6.1
- v0.6.0
- v0.5.3
- v0.5.2
- v0.5.1
- v0.5.0
- v0.4.4
- v0.4.3
- v0.4.2
- v0.4.1
- v0.4.0
- v0.3.1
- v0.3.0
- v0.2.1
- v0.2.0
- v0.1.4
- v0.1.3
- v0.1.2
- v0.1.1
- v0.1.0
- dev-dependabot/composer/symfony/var-dumper-tw-7.1
- dev-dependabot/composer/symfony/config-tw-7.0
This package is auto-updated.
Last update: 2024-09-03 08:43:59 UTC
README
GraphQL 模式校验工具。
此工具旨在查找您的 GraphQL 模式中的错误。它不适用于您的查询。此工具包含多个检查,可以将它们添加到用户的配置文件中,以检查不同的事物。此工具的目的是实施Worksome 的 GraphQL 标准。
安装
可以通过以下方式将此工具安装为 composer 全局依赖项:
$ composer global require worksome/graphlint
或通过 Homebrew 安装
brew tap worksome/tap brew install --formula worksome/tap/graphlint
使用方法
可以通过以下方式运行此工具:
$ graphlint path/to/schema.graphql
使用 GitHub Actions 的 CI 使用
使用 GitHub Actions,我们支持使用 cs2pr
工具为您的 pull request 添加内联注释。
graphlint --format=checkstyle path/to/schema.graphql | cs2pr
配置
⚠️ 目前该软件包仅支持在编译后的模式上运行。它将后来支持在原始模式上运行。
在根目录下创建一个名为 graphlint.php
的文件,并按照以下配置进行。
<?php declare(strict_types=1); use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Worksome\Graphlint\Configuration\Visitor; use Worksome\Graphlint\Inspections\CamelCaseFieldDefinitionInspection; return function (ContainerConfigurator $config): void { $services = $config->services(); $services->set(CamelCaseFieldDefinitionInspection::class) ->tag(Visitor::COMPILED); };
要使用 Worksome GraphQL 标准
<?php declare(strict_types=1); use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator; use Worksome\Graphlint\GraphlintSet; return function (ContainerConfigurator $config): void { $config->import(GraphlintSet::Standard->value); };
此工具可以为编译前后的模式提供配置。一些库没有编译其模式,因此对于这些库,应只使用一个标签。
忽略问题
可以在问题之前添加一个 ignore-next-line
注释来抑制问题。
interface Account { # @graphlint-ignore-next-line id: ID }
在某些情况下,由于模式是自动生成的,因此无法添加注释。对于这些情况,可以在配置文件中添加以下内容来忽略错误。
return function (ContainerConfigurator $config): void { $config->services() ->set(IgnoreByNameSuppressorInspection::class) ->call('configure', [ 'TEST', 'AccountInput.name' // Dotted value for only applying on some fields ]); };
测试
此软件包包含用于运行测试的 Docker 配置。假设您已克隆了存储库,并且已安装 docker 和 docker-compose,您可以通过运行以下命令来运行测试:
docker-compose run --rm composer install # Only needed the first time
docker-compose run --rm pest