ni / ni/nimble

Improve TypeScript configuration management

Open
#2,133 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

tech debt
Dominant language
TypeScript
Stars
39
Forks
14
Avg merge
1d 16h
Merged PRs (30d)
13

Description

🧹 Tech Debt

We should find a way to improve TypeScript configuration management, some concerns to address:

  • Storybook as of #2131 is responsible for reproducing the exact same build as nimble-components and has its own tsconfig that could get out of sync
  • As we have adopted TS 5 we should remove deprecated rules and adopt rules that lead to better best practices (adopt isolatedModules, remove ignoreDeprecations, adopt verbatimModuleSyntax, adopt incremental builds, bump target and module passed es2020)

Properties of shared configuration:

  • Should be shared as a private package of shared configuration in the monorepo
  • Should likely have base shared configuration to use across all packages generically
  • Should likely have tsconfigs that extend the base config for specific contexts (component dev, angular)
  • Should NOT just try and make a single overloaded shared TypeScript configuration to share as much as possible

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by inspecting the existing tsconfig files and Storybook configuration, then review issue #2131 to understand the duplicated build setup. Done means shared configuration is provided as a private monorepo package with a generic base and context-specific configs, while addressing the listed TypeScript 5 rules without creating one overloaded configuration.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
build-system, developer-experience, tooling
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.