diff --git a/core/generator/gapic-generator-typescript/.prettierrc.cjs b/core/generator/gapic-generator-typescript/.prettierrc.cjs index 76e5c66efa0c..473c51d73eb3 100644 --- a/core/generator/gapic-generator-typescript/.prettierrc.cjs +++ b/core/generator/gapic-generator-typescript/.prettierrc.cjs @@ -13,7 +13,10 @@ // limitations under the License. module.exports = { - ...require('gts/.prettierrc.json') -} + bracketSpacing: false, + singleQuote: true, + trailingComma: 'all', + arrowParens: 'avoid', +}; \ No newline at end of file diff --git a/core/generator/gapic-generator-typescript/BUILD.bazel b/core/generator/gapic-generator-typescript/BUILD.bazel index 7dd7d11f5525..dcbbd2b002df 100644 --- a/core/generator/gapic-generator-typescript/BUILD.bazel +++ b/core/generator/gapic-generator-typescript/BUILD.bazel @@ -40,6 +40,7 @@ npm_runtime_dependencies = [ "//:node_modules/yargs", "//:node_modules/google-gax", "//:node_modules/prettier", + "//:node_modules/gts", ] npm_test_dependencies = npm_runtime_dependencies + [ diff --git a/core/generator/gapic-generator-typescript/package.json b/core/generator/gapic-generator-typescript/package.json index 2a6334ee6b33..0e6ab79a4e40 100644 --- a/core/generator/gapic-generator-typescript/package.json +++ b/core/generator/gapic-generator-typescript/package.json @@ -75,5 +75,14 @@ }, "engines": { "node": ">=18" + }, + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } } } diff --git a/handwritten/bigquery-storage/package.json b/handwritten/bigquery-storage/package.json index bde1683b04b0..358327a2ae28 100644 --- a/handwritten/bigquery-storage/package.json +++ b/handwritten/bigquery-storage/package.json @@ -45,6 +45,7 @@ "protobufjs": "^7.5.5" }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/bigquery": "^8.0.0", "@types/extend": "^3.0.4", "@types/mocha": "^10.0.10", @@ -74,5 +75,14 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/bigquery-storage" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/bigquery-storage", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/bigquery/package.json b/handwritten/bigquery/package.json index 5c9e8cdb29d3..75aacf2a7a99 100644 --- a/handwritten/bigquery/package.json +++ b/handwritten/bigquery/package.json @@ -63,13 +63,16 @@ "extend": "^3.0.2", "stream-events": "^1.0.5" }, + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", "overrides": { + "eslint": "10.0.0", "@sinonjs/fake-timers": "15.1.1", "@google-cloud/common": { "google-auth-library": "10.3.0" } }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/storage": "^7.16.0", "@types/big.js": "^6.2.2", "@types/duplexify": "^3.6.4", @@ -97,5 +100,10 @@ "sinon": "21.0.3", "typescript": "^5.8.2" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/bigquery" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/bigquery", + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/bigtable/package.json b/handwritten/bigtable/package.json index 32f99b0ace3b..506c7877184e 100644 --- a/handwritten/bigtable/package.json +++ b/handwritten/bigtable/package.json @@ -79,6 +79,7 @@ "stream-events": "^1.0.5" }, "devDependencies": { + "eslint": "10.0.0", "@grpc/grpc-js": "^1.13.2", "@grpc/proto-loader": "^0.7.13", "@types/escape-string-regexp": "^2.0.3", @@ -116,5 +117,14 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/bigtable" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/bigtable", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/cloud-profiler/package.json b/handwritten/cloud-profiler/package.json index 5b815f1afa17..db34c2e54c3a 100644 --- a/handwritten/cloud-profiler/package.json +++ b/handwritten/cloud-profiler/package.json @@ -48,6 +48,7 @@ "teeny-request": "^9.0.0" }, "devDependencies": { + "eslint": "10.0.0", "@types/extend": "^3.0.0", "@types/long": "^5.0.0", "@types/mocha": "^9.0.0", @@ -86,5 +87,14 @@ "engines": { "node": ">=14.0.0" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/cloud-profiler" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/cloud-profiler", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/datastore/package.json b/handwritten/datastore/package.json index 50b0fa9ec0e5..e574282fe97e 100644 --- a/handwritten/datastore/package.json +++ b/handwritten/datastore/package.json @@ -57,6 +57,7 @@ "stream-events": "^1.0.5" }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/storage": "^7.16.0", "@types/extend": "^3.0.4", "@types/is": "^0.0.25", @@ -88,5 +89,14 @@ "engines": { "node": ">=18" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/datastore" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/datastore", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/error-reporting/package.json b/handwritten/error-reporting/package.json index f2be96718a9e..09008e4eb2a5 100644 --- a/handwritten/error-reporting/package.json +++ b/handwritten/error-reporting/package.json @@ -39,6 +39,7 @@ "console-log-level": "^1.4.1" }, "devDependencies": { + "eslint": "10.0.0", "@compodoc/compodoc": "1.1.25", "@hapi/hapi": "^21.4.4", "@types/boom": "^7.3.5", @@ -70,13 +71,16 @@ "typescript": "^5.9.3", "uuid": "^8.3.2" }, + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", "overrides": { + "eslint": "10.0.0", "undici": "5.28.4", "tablesort": "5.6.0", "cheerio": "1.0.0" }, "pnpm": { "overrides": { + "eslint": "10.0.0", "tablesort": "5.6.0", "cheerio": "1.0.0" } diff --git a/handwritten/eslint.config.mjs b/handwritten/eslint.config.mjs new file mode 100644 index 000000000000..a6b478c9bf0c --- /dev/null +++ b/handwritten/eslint.config.mjs @@ -0,0 +1,21 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +export default [ + ...compat.extends('gts'), + { + ignores: [ + "**/build/**", + "**/coverage/**", + "**/.nyc_output/**" + ] + } +]; diff --git a/handwritten/firestore/package.json b/handwritten/firestore/package.json index a150827d977d..b38069985613 100644 --- a/handwritten/firestore/package.json +++ b/handwritten/firestore/package.json @@ -76,6 +76,7 @@ "protobufjs": "^7.5.3" }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/cloud-rad": "^0.4.10", "@google-cloud/opentelemetry-cloud-trace-exporter": "^3.0.0", "@google-cloud/promisify": "^5.0.0", @@ -122,7 +123,9 @@ "typescript": "^5.9.2" }, "//_comment": "TODO: Remove @sinonjs/fake-timers overrides/resolutions when version > 15.3.0 fixes the duplicate identifier 'withGlobal' issue.", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", "overrides": { + "eslint": "10.0.0", "@sinonjs/fake-timers": "15.1.1" }, "resolutions": { @@ -140,5 +143,10 @@ "./package.json": "./package.json", "./build/src/path": "./build/src/path.js" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/firestore" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/firestore", + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/logging-bunyan/package.json b/handwritten/logging-bunyan/package.json index 2b7144bc5f37..2669d01f82c7 100644 --- a/handwritten/logging-bunyan/package.json +++ b/handwritten/logging-bunyan/package.json @@ -59,6 +59,7 @@ "google-auth-library": "^9.0.0" }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/common": "^5.0.0", "@types/bunyan": "^1.8.4", "@types/express": "^4.16.0", @@ -87,5 +88,14 @@ "peerDependencies": { "bunyan": "*" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging-bunyan" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging-bunyan", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/logging-winston/package.json b/handwritten/logging-winston/package.json index e8f007a03ac8..2885dba39385 100644 --- a/handwritten/logging-winston/package.json +++ b/handwritten/logging-winston/package.json @@ -60,6 +60,7 @@ "winston-transport": "^4.9.0" }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/common": "^6.0.0", "@types/lodash.mapvalues": "^4.6.9", "@types/mocha": "^10.0.10", @@ -84,5 +85,14 @@ "peerDependencies": { "winston": ">=3.2.1" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging-winston" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging-winston", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/logging/package.json b/handwritten/logging/package.json index 77a1d034cd3a..17fbceb04213 100644 --- a/handwritten/logging/package.json +++ b/handwritten/logging/package.json @@ -69,6 +69,7 @@ "uuid": "^9.0.0" }, "devDependencies": { + "eslint": "10.0.0", "@google-cloud/bigquery": "^7.0.0", "@google-cloud/opentelemetry-cloud-trace-exporter": "^2.1.0", "@google-cloud/pubsub": "^4.0.0", @@ -113,5 +114,14 @@ "engines": { "node": ">=14.0.0" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/logging", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/pubsub/package.json b/handwritten/pubsub/package.json index a3672e423700..bd6e588d9432 100644 --- a/handwritten/pubsub/package.json +++ b/handwritten/pubsub/package.json @@ -71,6 +71,7 @@ "p-defer": "^3.0.0" }, "devDependencies": { + "eslint": "10.0.0", "@grpc/proto-loader": "^0.8.0", "@opentelemetry/sdk-trace-base": "^1.17.0", "@types/duplexify": "^3.6.4", @@ -111,5 +112,14 @@ "why-is-node-running": "^2.3.0", "yargs": "^17.7.2" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/pubsub" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/pubsub", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/handwritten/spanner/package.json b/handwritten/spanner/package.json index 1ff8b6481ecb..86e6dbb4df3d 100644 --- a/handwritten/spanner/package.json +++ b/handwritten/spanner/package.json @@ -98,6 +98,7 @@ "uuid": "^11.1.0" }, "devDependencies": { + "eslint": "10.0.0", "@grpc/reflection": "^1.0.4", "@opentelemetry/sdk-trace-base": "^2.0.0", "@opentelemetry/sdk-trace-node": "^2.0.0", @@ -145,12 +146,15 @@ "typescript": "^5.8.2", "yargs": "^17.7.2" }, + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", "overrides": { + "eslint": "10.0.0", "gcp-metadata": "^7.0.1", "@sinonjs/fake-timers": "15.2.1" }, "pnpm": { "overrides": { + "eslint": "10.0.0", "gcp-metadata": "^7.0.1", "@sinonjs/fake-timers": "15.2.1" } diff --git a/handwritten/storage/package.json b/handwritten/storage/package.json index 2c5d4b7da458..94db2be0978c 100644 --- a/handwritten/storage/package.json +++ b/handwritten/storage/package.json @@ -93,6 +93,7 @@ "uuid": "^8.0.0" }, "devDependencies": { + "eslint": "10.0.0", "@babel/cli": "^7.22.10", "@babel/core": "^7.22.11", "@google-cloud/pubsub": "^4.0.0", @@ -133,5 +134,14 @@ "yargs": "^17.3.1", "cross-env": "^7.0.3" }, - "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/storage" + "homepage": "https://github.com/googleapis/google-cloud-node/tree/main/handwritten/storage", + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } + } } diff --git a/package.json b/package.json index db19b0b3dbcf..fd6380b700c0 100644 --- a/package.json +++ b/package.json @@ -40,9 +40,19 @@ "parse-link-header": "^2.0.0" }, "devDependencies": { + "eslint": "10.0.0", "gts": "^6.0.2" }, "engines": { "node": ">=18" + }, + "//_comment_eslint": "Pin eslint version at 10.0.0 until we upgrade the node version", + "overrides": { + "eslint": "10.0.0" + }, + "pnpm": { + "overrides": { + "eslint": "10.0.0" + } } } diff --git a/packages/eslint.config.mjs b/packages/eslint.config.mjs new file mode 100644 index 000000000000..54fbe0a2c198 --- /dev/null +++ b/packages/eslint.config.mjs @@ -0,0 +1,24 @@ +import path from 'node:path'; +import { fileURLToPath } from 'node:url'; +import { FlatCompat } from '@eslint/eslintrc'; + +const __filename = fileURLToPath(import.meta.url); +const __dirname = path.dirname(__filename); + +const compat = new FlatCompat({ + baseDirectory: __dirname, +}); + +export default [ + ...compat.extends('gts'), + { + ignores: [ + "**/.coverage/**", + "**/build/**", + "**/docs/**", + "**/protos/**", + "**/system-test/**", + "**/samples/generated/**" + ] + } +];