{"id":42801,"library":"google-sql-syntax-ts","title":"Google SQL Syntax TS","description":"Provides TypeScript type definitions and a query formatter for GoogleSQL (Google BigQuery SQL), along with a Monaco Editor language configuration for syntax highlighting. Current stable version is 1.0.3, released infrequently as needed. Key differentiators: focused exclusively on GoogleSQL (unlike generic SQL formatters), ships built-in TypeScript types, and integrates directly with Monaco Editor for highlighting. Ideal for BigQuery users building web-based SQL editors or needing programmatic SQL formatting.","status":"active","version":"1.0.3","language":"javascript","source_language":"en","source_url":"https://github.com/google/google-sql-syntax-ts","tags":["javascript","typescript"],"install":[{"cmd":"npm install google-sql-syntax-ts","lang":"bash","label":"npm"},{"cmd":"yarn add google-sql-syntax-ts","lang":"bash","label":"yarn"},{"cmd":"pnpm add google-sql-syntax-ts","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESM-only package; cannot use require(). Must use dynamic import or ESM.","wrong":"const { QueryFormatter } = require('google-sql-syntax-ts')","symbol":"QueryFormatter","correct":"import { QueryFormatter } from 'google-sql-syntax-ts'"},{"note":"Default export of the language definition; often used alongside QueryFormatter.","symbol":"GoogleSqlDefinition","correct":"import { GoogleSqlDefinition } from 'google-sql-syntax-ts'"},{"note":"For Monaco Editor only. Import as a named export.","symbol":"googleSqlLanguageConfiguration","correct":"import { googleSqlLanguageConfiguration } from 'google-sql-syntax-ts'"}],"quickstart":{"code":"import { QueryFormatter, GoogleSqlDefinition } from 'google-sql-syntax-ts';\n\nconst queryFormatter = new QueryFormatter(new GoogleSqlDefinition());\n\nconst formattedQuery = queryFormatter.formatQuery(\n  \"SELECT column, REGEXP_CONTAINS(column, r'a') AS column_contains_a FROM `some-table` WHERE date > 1970-01-01\"\n);\n\nconsole.log(formattedQuery);\n// Output:\n// SELECT\n//   COLUMN,\n//   REGEXP_CONTAINS(COLUMN, r'a') AS column_contains_a\n// FROM\n//   `some-table`\n// WHERE\n//   date > 1970-01-01","lang":"typescript","description":"Demonstrates formatting a GoogleSQL query using QueryFormatter and GoogleSqlDefinition."},"warnings":[{"fix":"If you need case preservation, consider using a different SQL formatter or overriding behavior via options (if available).","message":"QueryFormatter converts identifiers to UPPER CASE by default (e.g., 'column' -> 'COLUMN'). This may not be desired for users expecting case preservation.","severity":"gotcha","affected_versions":">=1.0.0"},{"fix":"Use Node.js >=12 with \"type\": \"module\" in package.json, or use dynamic import for older Node.","message":"Package is ESM-only; Node.js versions <12 may not support ESM without experimental flags.","severity":"breaking","affected_versions":">=1.0.0"},{"fix":"","message":"No version deprecations noted; package is small and stable.","severity":"deprecated","affected_versions":""},{"fix":"Use a bundler to resolve ESM imports. Alternatively, use CDN via esm.sh.","message":"No browser bundle provided; importing directly into browser may require bundler (Webpack, Rollup).","severity":"gotcha","affected_versions":">=1.0.0"}],"env_vars":null,"search_vec":"'1.0.3':32 'along':18 'base':68 'bigqueri':16,63 'build':65 'built':49 'built-in':48 'configur':24 'current':28 'definit':8 'differenti':38 'direct':55 'editor':22,58,70 'exclus':40 'focus':39 'format':75 'formatt':12,46 'generic':44 'googl':1,15 'googlesql':14,42 'highlight':27,60 'ideal':61 'infrequ':34 'integr':54 'javascript':76 'key':37 'languag':23 'monaco':21,57 'need':36,72 'programmat':73 'provid':5 'queri':11 'releas':33 'ship':47 'sql':2,17,45,69,74 'stabl':29 'syntax':3,26 'ts':4 'type':7,52 'typescript':6,51,77 'unlik':43 'user':64 'version':30 'web':67 'web-bas':66","created_at":"2026-06-05T16:56:43.800863+00:00","updated_at":"2026-06-05T16:56:43.800863+00:00","problems":[{"fix":"Replace require() with import statement. If you must use require, use dynamic import: const { QueryFormatter } = await import('google-sql-syntax-ts');","cause":"CommonJS require() used instead of ESM import.","error":"SyntaxError: The requested module 'google-sql-syntax-ts' does not provide an export named 'QueryFormatter'"},{"fix":"Ensure both imports: import { QueryFormatter, GoogleSqlDefinition } from 'google-sql-syntax-ts';","cause":"Forgot to import GoogleSqlDefinition or used wrong import pattern.","error":"TypeError: GoogleSqlDefinition is not a constructor"},{"fix":"Run: npm install @google/google-sql-syntax-ts (note scoped package name)","cause":"Package not installed or missing from node_modules.","error":"Cannot find module 'google-sql-syntax-ts'"}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":null,"cli_version":null,"type":"library","homepage":"https://github.com/google/google-sql-syntax-ts#readme","github":"https://github.com/google/google-sql-syntax-ts","docs":null,"changelog":null,"pypi":null,"npm":"google-sql-syntax-ts","openapi_spec":null,"status_page":null,"smithery":null,"categories":["database"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-05","next_check":"2026-09-03","install_tag":null}}