Files
teleport/tsconfig.json
T
Grzegorz Zdunek 784d7ac10c Clone the tshd gRPC client to allow inspecting errors (#39229)
* Add functions to clone every gRPC method, so they can be passed over the context bridge

* Replace `@grpc/grpc-js` interceptors with `@protobuf-ts/runtime-rpc` ones

* Replace string check with check on metadata, add missing `AddMetadataToRetryableError`

* Add `pin` to sensitive properties

It's needed because now we also log a passwordless login stream call.

* Add `cloneClient` method to clone the entire gRPC client

* Switch tests to `TshdRetryableError`

* Improve comments

* Move `cloneClient` and `cloneAbortSignal` to the top of the file

* Simplify condition

* Lowercase logs

* Check if the error is `RpcError` using `instanceof`

* Log error object instead of `[object Object]`

* Do not export call specific types

* Wrap gRPC calls in `createClient` to allow passing the errors over the context bridge (#39230)

* Regenerate protos with the `protobuf-ts` client

* Enable `strictBindCallApply` so `.bind()` results have correct types (instead of `any`)

This is needed for wrapping calls in `createClient`.

* Use `protobuf-ts` client instead of `grpc-js` one

* Convert `createClient` to use `protobuf-ts` response style, clone each call

* Switch callsites to `cloneAbortSignal`

* Replace `error.message` checks with a proper check on the error status code

* Clone the entire client instead of each method separately

* Correct the error `cause` in `ResourceSearchError`

* Remove `params.sortBy` defaults, always set `startKey` to string

* Use a simpler type for `reportUsageEvent`

* Fix interceptor test

* Ignore TS error in `highbar.ts`
2024-03-18 16:33:16 +00:00

63 lines
1.8 KiB
JSON

{
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"allowJs": true,
"baseUrl": ".",
"useDefineForClassFields": true,
"esModuleInterop": true,
"importHelpers": true,
"forceConsistentCasingInFileNames": true,
"isolatedModules": true,
"lib": ["dom", "dom.iterable", "esnext"],
"jsx": "react-jsx",
"module": "esnext",
"moduleResolution": "bundler",
"strictBindCallApply": true,
"noEmit": true,
"noEmitHelpers": true,
"resolveJsonModule": true,
"skipLibCheck": true,
"sourceMap": false,
"target": "esnext",
"types": ["node", "@emotion/core", "@types/wicg-file-system-access"],
"paths": {
"//": [
"generator still uses 'grpc' package that has been deprecated in favor of '@grpc/grpc-js'"
],
"grpc": ["node_modules/@grpc/grpc-js"],
"shared/*": ["web/packages/shared/*"],
"design/*": ["web/packages/design/src/*"],
"design": ["web/packages/design/src/"],
"teleport/*": ["web/packages/teleport/src/*"],
"teleport": ["web/packages/teleport/src/"],
"teleterm/*": ["web/packages/teleterm/src/*"],
"e-teleport/*": ["e/web/teleport/src/*"],
"e-teleterm/*": ["e/web/teleterm/src/*"],
"gen-proto-js/*": ["gen/proto/js/*"],
"gen-proto-ts/*": ["gen/proto/ts/*"],
"access-graph": ["e/web/teleport/src/AccessGraph/Loader.tsx"],
}
},
"include": [
"e/web/**/*.ts",
"e/web/**/*.tsx",
"e/web/**/*.js",
"e/web/**/*.jsx",
"web/**/*.ts",
"web/**/*.tsx",
"web/**/*.js",
"web/**/*.jsx",
"../web/src/**/*.ts",
"../web/src/**/*.tsx"
],
"references": [{ "path": "./tsconfig.node.json" }],
"exclude": [
"node_modules",
"**/node_modules/*",
"dist",
"**/dist/*",
"**/build/app/**",
"**/build/release/**"
]
}