CLI tool for Google Ads Query Language (GAQL) validation and type generation
npm install @gaql/cliCommand-line interface for Google Ads Query Language (GAQL) validation.
``bashInstall globally
npm install -g @gaql/cli
Usage
$3
`bash
Validate GAQL queries in a file
gaql validate query.tsValidate from stdin
echo "SELECT campaign.id FROM campaign" | gaql validateValidate with pipe
cat query.ts | gaql validate
`$3
`bash
Specify API version (19, 20, or 21)
gaql validate query.ts --api-version 21Output in JSON format
gaql validate query.ts --format jsonDisable colored output
gaql validate query.ts --no-colorShow help
gaql validate --help
`Examples
$3
`typescript
// query.ts
const query = ;
``bash
gaql validate query.ts
`Output:
`
✔ Read file: query.ts=== GAQL Validation Results ===
Total queries: 1
✓ Valid: 1
✓ Query at line 2: Valid
`$3
`typescript
// invalid.ts
const query = ;
``bash
gaql validate invalid.ts
`Output:
`
✔ Read file: invalid.ts=== GAQL Validation Results ===
Total queries: 1
✗ Invalid: 1
✗ Query at line 2: Invalid
Query:
SELECT
campaign.invalid_field,
metrics.clicks
FROM campaign
Errors:
• Invalid field: campaign.invalid_field for resource campaign
Suggestion: campaign.id
`$3
`bash
gaql validate query.ts --format json
`Output:
`json
{
"totalQueries": 1,
"validQueries": 1,
"invalidQueries": 0,
"results": [
{
"query": "SELECT campaign.id FROM campaign",
"line": 2,
"valid": true,
"errors": []
}
]
}
`Exit Codes
-
0: All queries are valid
- 1: At least one query is invalid or an error occurredIntegration
$3
Add to
.git/hooks/pre-commit:`bash
#!/bin/sh
gaql validate src/*/.ts --no-color
`$3
`yaml
.github/workflows/validate.yml
name: Validate GAQL Querieson: [push, pull_request]
jobs:
validate:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions/setup-node@v3
- run: npm install -g @gaql/cli
- run: gaql validate src/*/.ts --format json
``MIT