@coxwave/config-typescript
v1.0.0
Published
Shared TypeScript configuration for Coxwave projects
Readme
@coxwave/config-typescript
Shared TypeScript configuration for Coxwave projects following best practices.
Installation
npm install --save-dev @coxwave/config-typescript typescript
# or
yarn add -D @coxwave/config-typescript typescript
# or
pnpm add -D @coxwave/config-typescript typescriptUsage
Base Configuration
For general TypeScript projects:
// tsconfig.json
{
"extends": "@coxwave/config-typescript"
}React Configuration
For React/Vite projects:
// tsconfig.json
{
"extends": "@coxwave/config-typescript/react"
}Node.js Configuration
For Node.js projects:
// tsconfig.json
{
"extends": "@coxwave/config-typescript/node"
}Library Configuration
For npm packages/libraries:
// tsconfig.json
{
"extends": "@coxwave/config-typescript/library"
}Configuration Details
Base Configuration
- Target: ES2022
- Module: Bundler resolution
- Strict mode: Enabled with additional strict checks
- Modern features: Import assertions, verbatim module syntax
- Type checking: Unused locals/parameters, exact optional properties
React Configuration
- DOM types: Includes DOM and DOM.Iterable
- JSX: React JSX transform
- Vite types: Includes Vite client types
- Module: ESNext
Node.js Configuration
- Module: Node16 with Node16 resolution
- Target: ES2022 for Node.js compatibility
- Types: Node.js types included
Library Configuration
- Declaration generation: Enabled with source maps
- Output: dist/ directory
- Target: ES2020 for broader compatibility
- Comments: Preserved in output
Extending Configuration
// tsconfig.json
{
"extends": "@coxwave/config-typescript/react",
"compilerOptions": {
"baseUrl": "./src",
"paths": {
"@/*": ["*"]
}
}
}Project Structure
Each configuration assumes different project structures:
# React/Vite projects
src/
├── components/
├── pages/
└── types/
# Node.js projects
src/
├── controllers/
├── services/
└── types/
# Library projects
src/
├── index.ts
└── types/
dist/ # Generated declarationsComposite Projects
For monorepos with multiple packages:
// Root tsconfig.json
{
"files": [],
"references": [
{ "path": "./packages/app" },
{ "path": "./packages/lib" }
]
}
// packages/app/tsconfig.json
{
"extends": "@coxwave/config-typescript/react",
"references": [
{ "path": "../lib" }
]
}License
MIT
