Improve TypeScript configuration management
Open
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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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