@gsa-tts/graymatter-typescript-config
Package Responsibilities
The GrayMatter TypeScript Configuration package (@gsa-tts/graymatter-typescript-config
) provides shared TypeScript configurations. It ensures consistent TypeScript settings, type checking, and compiler options across all applications and packages.
Primary Responsibilities:
- Define and maintain shared TypeScript configurations
- Ensure consistent type checking
- Provide specialized configurations for different project types
- Reduce duplication of TypeScript configuration across projects
- Enforce type safety standards
Package Boundaries:
- SHOULD contain TypeScript configuration files
- SHOULD provide different configuration presets for different project types
- SHOULD be framework-aware (support Svelte, Astro, etc.)
- SHOULD NOT contain application code or business logic
- SHOULD NOT depend on application packages
- SHOULD NOT include project-specific overrides (these belong in the consuming projects)
Usage
Installing
pnpm add -D @gsa-tts/graymatter-typescript-config
Basic Configuration
Create a tsconfig.json
file in your project:
{
"extends": ["@gsa-tts/graymatter-typescript-config/base.json"],
"compilerOptions": {
"outDir": "dist"
},
"include": ["src/**/*.ts", "src/**/*.tsx"],
"exclude": ["node_modules", "dist"]
}
Available Configurations
The package provides the following configuration presets:
- base.json: Base configuration for TypeScript projects
Features
- Strict type checking
- Modern JavaScript support
- Path aliases
- Source maps configuration
- Optimized build settings
- Framework-specific settings
Best Practices
- Extend the appropriate base configuration
- Add project-specific settings in your local tsconfig.json
- Keep overrides minimal to maintain consistency
- Use the same TypeScript version for packages that depend on this one