tsconfigs

por redis

Localize e modifique a configuração TypeScript no RedisInsight. Use ao adicionar aliases de caminho, introduzir uma nova área TS, depurar caminhos do webpack/ts-node/ESLint…

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

Mais skills de redis

docs-sync
redis
Analisar a implementação e configuração da branch master para encontrar documentação ausente, incorreta ou desatualizada em docs/, README.md e READMEs por pacote. Usar…
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
Revise um URL de issue ou pull request do GitHub como mantenedor do node-redis, com uma avaliação em etapas sobre se a alegação é real, praticamente importante, já…
official
pr-draft-summary
redis
Crie o bloco de resumo necessário para PR, sugestão de branch, título e descrição do rascunho para node-redis. Deve ser usado antes da resposta final sempre que o…
official
runtime-behavior-probe
redis
Planeje e execute investigações de comportamento em tempo de execução com scripts de sonda TypeScript temporários, matrizes de validação, controles de estado e relatórios focados em descobertas. Use…
official
backend
redis
Padrões de desenvolvimento de backend NestJS para a API RedisInsight: estrutura de módulos, serviços, controladores, DTOs, injeção de dependência e tratamento de erros. Use quando…
official
branches
redis
usar kebab-case minúsculo com prefixo de tipo e identificador de issue/ticket. Os nomes dos branches devem corresponder às regras do fluxo de trabalho do GitHub Actions (consulte .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