tsconfigs

von redis

Locate and modify TypeScript configuration in RedisInsight. Use when adding path aliases, introducing a new TS area, debugging webpack/ts-node/ESLint path…

npx skills add https://github.com/redis/redisinsight --skill tsconfigs

TypeScript Configuration

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.

Layout

FileOwnsConsumers
redisinsight/ui/tsconfig.jsonUI source, uiSrc/*, apiClient pathsVite (UI build), ESLint UI override, npm run type-check:ui
redisinsight/api/tsconfig.jsonAPI source, src/*, tests/* pathsNestJS build, ESLint API override
redisinsight/api/tsconfig.check.jsonSame as base + strict: true (with strictPropertyInitialization and useUnknownInCatchVariables off) and noEmit: truenpm run type-check:api only — kept separate so strict mode doesn't break nest build. See the type-check-baselines skill.
redisinsight/desktop/tsconfig.jsonDesktop source. Paths desktopSrc/*, apiSrc/*, uiSrc/*, apiClient, apiClient/* for TypeScript / IDE intellisenseESLint for desktop files, TS language server
configs/tsconfig.jsonCompiler options (module: CommonJS, esModuleInterop) used by ts-node to load the .ts webpack configsts-node via TS_NODE_PROJECT set in build:main / build:main:stage / build:stage
.storybook/tsconfig.jsonStorybook framework files, extends UI tsconfigStorybook + ESLint
stories/tsconfig.jsonStory files. Extends UI tsconfig; rewires uiSrc/* to resolve from redisinsight/uiStorybook + ESLint
tests/e2e-playwright/tsconfig.jsonPlaywright E2E suiteE2E runner (sub-project with own package.json, eslint-ignored at root)

Webpack path resolution (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).

ts-node and webpack TS configs

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:main
  • build:main:stage
  • build:stage

configs/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.

ESLint

.eslintrc.js:

  • Root parserOptions.project: true — auto-discovers the nearest tsconfig per file.
  • API override: parserOptions.project: redisinsight/api/tsconfig.json (explicit).
  • UI override: parserOptions.project: redisinsight/ui/tsconfig.json (explicit).
  • Files in .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.

Common tasks

Adding a path alias used by desktop / electron

  1. Add the alias to redisinsight/desktop/tsconfig.json compilerOptions.paths.
  2. If the alias is also used by UI code, add it to redisinsight/ui/tsconfig.json.
  3. If the alias is also used by API code, add it to redisinsight/api/tsconfig.json.
  4. For aliases used by the electron bundle (anything imported from redisinsight/desktop/**), also mirror the alias into configs/webpack.config.base.ts resolve.alias. Vite resolves UI aliases from redisinsight/ui/tsconfig.json automatically.

Adding a new top-level TS folder

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.

Adding a new .ts webpack config under configs/

No action needed — configs/tsconfig.json includes **/*.

Adding a Node script that needs to run without ts-node

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).

Mehr Skills von redis

docs-sync
redis
Analysiere die Implementierung und Konfiguration des Master-Branches, um fehlende, falsche oder veraltete Dokumentation in docs/, README.md und paketspezifischen READMEs zu finden. Verwende…
official
implement-command
redis
Add a new Redis command (or command variant) to node-redis end-to-end — the `<NAME>.ts` Command file, its registration with JSDoc in the package…
official
maintainer-review
redis
Überprüfe eine GitHub-Issue- oder Pull-Request-URL als Node-Redis-Maintainer mit einer gestaffelten Bewertung, ob die Behauptung real, praktisch wichtig, bereits…
official
pr-draft-summary
redis
Erstelle den erforderlichen PR-fähigen Zusammenfassungsblock, Branch-Vorschlag, Titel und Entwurfsbeschreibung für node-redis. Muss vor der endgültigen Antwort verwendet werden, wann immer die…
official
runtime-behavior-probe
redis
Planen und Ausführen von Laufzeitverhaltensuntersuchungen mit temporären TypeScript-Probe-Skripten, Validierungsmatrizen, Zustandssteuerungen und ergebnisorientierten Berichten. Verwenden…
official
backend
redis
NestJS-Backend-Entwicklungsmuster für die RedisInsight-API: Modulstruktur, Services, Controller, DTOs, Dependency Injection und Fehlerbehandlung. Verwenden, wenn…
official
branches
redis
Kleinbuchstaben mit Bindestrichen verwenden, mit Typ-Präfix und Issue-/Ticket-Kennung. Branchnamen müssen den GitHub Actions Workflow-Regeln entsprechen (siehe .github/workflows/enforce-branch-name-rules.yml).
official
code-quality
redis
Code-quality standards for RedisInsight: TypeScript strictness, naming conventions (camelCase, PascalCase, UPPER_SNAKE_CASE), linting rules, no `any` without…
official