redis/tsconfigs
>- Locate and modify TypeScript configuration in RedisInsight. Use when adding path aliases, introducing a new TS area, debugging webpack/ts-node/ESLint path resolution, or the user asks about tsconfig, path mappings, or where TypeScript is configured.
npx skills add https://github.com/redis/RedisInsight --skill tsconfigs
RedisInsight has no root tsconfig.json. Config is split per area, each owning its own paths, includes, and consumers. ESLint uses parserOptions.project: true to auto-discover the nearest tsconfig for each linted file.
| File | Owns | Consumers |
| - | - | - |
| redisinsight/ui/tsconfig.json | UI source, uiSrc/*, apiClient paths | Vite (UI build), ESLint UI override, npm run type-check:ui |
| redisinsight/api/tsconfig.json | API source, src/*, tests/* paths | NestJS build, ESLint API override |
| redisinsight/api/tsconfig.check.json | Same as base + strict: true (with strictPropertyInitialization and useUnknownInCatchVariables off) and noEmit: true | npm run type-check:api only — kept separate so strict mode doesn't break nest build. See the type-check-baselines skill. |
| redisinsight/desktop/tsconfig.json | Desktop source. Paths desktopSrc/*, apiSrc/*, uiSrc/*, apiClient, apiClient/* for TypeScript / IDE intellisense | ESLint for desktop files, TS language server |
| configs/tsconfig.json | Compiler options (module: CommonJS, esModuleInterop) used by ts-node to load the .ts webpack configs | ts-node via TS_NODE_PROJECT set in build:main / build:main:stage / build:stage |
| .storybook/tsconfig.json | Storybook framework files, extends UI tsconfig | Storybook + ESLint |
| stories/tsconfig.json | Story files. Extends UI tsconfig; rewires uiSrc/* to resolve from redisinsight/ui | Storybook + ESLint |
| tests/e2e-playwright/tsconfig.json | Playwright E2E suite | E2E runner (sub-project with own package.json, eslint-ignored at root) |
configs/webpack.config.base.ts)Webpack uses explicit resolve.alias entries (not tsconfig-paths-webpack-plugin):
alias: {
desktopSrc: webpackPaths.desktopSrcPath,
apiSrc: resolve(webpackPaths.apiPath, 'src'),
uiSrc: webpackPaths.uiSrcPath,
apiClient: resolve(webpackPaths.riPath, 'api-client'),
// ...
}
If you add a new path alias used by desktop code, add it in both places: redisinsight/desktop/tsconfig.json (for TypeScript / ESLint / IDE) and configs/webpack.config.base.ts resolve.alias (for the electron bundle).
The webpack configs in configs/ are .ts files with type annotations. When webpack --config ./configs/*.ts runs, ts-node compiles them. Three package.json scripts set TS_NODE_PROJECT=./configs/tsconfig.json so ts-node uses the right compiler options:
build:mainbuild:main:stagebuild:stageconfigs/tsconfig.json deliberately does not set allowJs. Any .js file inside scripts/ or configs/ must be CommonJS (require / module.exports) — Node 22's module syntax detection will treat ESM-syntax .js files as ESM and break references to __dirname. Two scripts converted for this reason: scripts/prebuild.js, scripts/DeleteSourceMaps.js.
.eslintrc.js:
parserOptions.project: true — auto-discovers the nearest tsconfig per file.parserOptions.project: redisinsight/api/tsconfig.json (explicit).parserOptions.project: redisinsight/ui/tsconfig.json (explicit)..storybook/, .github/, etc. are not linted by eslint . because ESLint skips dot-prefixed paths during directory expansion.If you add a top-level TS folder that ESLint will reach, drop a tsconfig in it or parserOptions.project: true will fail to find one.
redisinsight/desktop/tsconfig.json compilerOptions.paths.redisinsight/ui/tsconfig.json.redisinsight/api/tsconfig.json.redisinsight/desktop/**), also mirror the alias into configs/webpack.config.base.ts resolve.alias. Vite resolves UI aliases from redisinsight/ui/tsconfig.json automatically.Create a tsconfig.json in it. Bare minimum:
{
"extends": "../redisinsight/ui/tsconfig.json",
"include": ["**/*"]
}
Without it, ESLint's parserOptions.project: true will error on those files.
.ts webpack config under configs/No action needed — configs/tsconfig.json includes **/*.
Place under scripts/ as CommonJS (require/module.exports). Do not use ESM syntax — configs/tsconfig.json no longer has allowJs and Node 22 will load ESM-syntax .js files as ESM (no __dirname).
Take redis/tsconfigs from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.