{ "$schema": "http://json.schemastore.org/tsconfig", "compilerOptions": { // NOTE: We DO NOT use typescript to compile the application. Babel is // responsible for handing transformation of tsx files into plain JavaScript // compiles for the browser (and uses preset-env to determine what ECMA // features are supported based on our browser usage configuration in // package.json). `target` DOES NOT affect the babel output! [0] // // We DO however, use ts-node to build jest, webpack, and a few other // {build,dev}-time tools. Because these are run through node, we can // target what our current version of node supports (see [1]) // // [0]: https://babeljs.io/docs/en/babel-preset-typescript // [1]: https://node.green "module": "commonjs", "target": "ES2022", "moduleResolution": "node", // We add esnext to lib to pull in types for all newer ECMAScript features "lib": ["esnext", "dom"], // Skip type checking of all declaration files "skipLibCheck": true, // We do not actually use tsc to output any JavaScript anywhere "noEmit": true, // Don't do anything to JSX. This doesn't really matter since we don't use // typescript to compile files, but left here for documentation purposes. "jsx": "preserve", "jsxImportSource": "@emotion/react", // Type checking specific options "alwaysStrict": false, "noFallthroughCasesInSwitch": true, "noImplicitAny": false, "noImplicitReturns": true, "noImplicitThis": true, "noUnusedLocals": true, "noUnusedParameters": true, "strict": true, "strictBindCallApply": false, "useUnknownInCatchVariables": false, // We do not configure these, but are left here for documentation purposes // // allowUnreachableCode // allowUnusedLabels // exactOptionalPropertyTypes // noImplicitOverride // noPropertyAccessFromIndexSignature // noUncheckedIndexedAccess // strictFunctionTypes // strictNullChecks // strictPropertyInitialization // anduseUnknownInCatchVariables // Emit configuration "declaration": false, "declarationMap": false, "downlevelIteration": true, "importHelpers": true, "inlineSources": false, "noEmitHelpers": true, "sourceMap": true, "pretty": false, // We do not configure these, but are left here for documentation purposes // // declarationDir // emitBOM // emitDeclarationOnly // importsNotUsedAsValues // inlineSourceMap // mapRoot // newLine // noEmitHelpers // noEmitOnError // outDir // outFile // preserveConstEnums // preserveValueImports // removeComments // sourceRoot // andstripInternal // These get overridden when necessary "allowJs": false, "checkJs": false, "esModuleInterop": true, "experimentalDecorators": true, "resolveJsonModule": true, "baseUrl": "../", "paths": { "sentry/*": ["static/app/*"], "sentry-test/*": ["tests/js/sentry-test/*"], "sentry-images/*": ["static/images/*"], "sentry-locale/*": ["src/sentry/locale/*"], "sentry-logos/*": ["src/sentry/static/sentry/images/logos/*"], "sentry-fonts/*": ["static/fonts/*"], // Use the stub file for type checking. Webpack resolver will use the real files // based on configuration. "integration-docs-platforms": [ "fixtures/integration-docs/_platforms.json", "src/sentry/integration-docs/_platforms.json" ] }, "plugins": [ // The styled plugin provides language server autocompletion for styled // component template strings {"name": "typescript-styled-plugin"} ] }, "include": ["../static/app", "../tests/js", "../fixtures/js-stubs"], "exclude": ["../node_modules", "../**/*.benchmark.ts"], "ts-node": { "transpileOnly": true } }