https://github.com/platformatic/tsconfig
@platformatic/tsconfig
https://github.com/platformatic/tsconfig
Last synced: 6 months ago
JSON representation
@platformatic/tsconfig
- Host: GitHub
- URL: https://github.com/platformatic/tsconfig
- Owner: platformatic
- License: apache-2.0
- Created: 2025-09-12T14:40:19.000Z (6 months ago)
- Default Branch: main
- Last Pushed: 2025-09-13T06:50:58.000Z (6 months ago)
- Last Synced: 2025-09-19T17:11:21.224Z (6 months ago)
- Language: JavaScript
- Homepage: https://platformatic.dev
- Size: 40 KB
- Stars: 1
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Notice: NOTICE
Awesome Lists containing this project
README
# @platformatic/tsconfig
⚡ **Shared TypeScript configuration for Platformatic applications** - A carefully crafted `tsconfig.json` base configuration that provides optimal settings for Node.js applications in the Platformatic ecosystem.
## 📦 Install
```sh
npm install @platformatic/tsconfig
```
## 🚀 Usage
To use this configuration, extend it in your project's `tsconfig.json`:
```json
{
"extends": "@platformatic/tsconfig",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}
```
### Basic Setup
1. Install the package:
```sh
npm install --save-dev @platformatic/tsconfig
```
2. Create or update your `tsconfig.json`:
```json
{
"extends": "@platformatic/tsconfig"
}
```
3. Start using TypeScript with the optimized configuration!
## ⚙️ Configuration Settings
This configuration is optimized for modern Node.js applications and includes the following settings:
### 🎯 General Settings
| Setting | Value | Description |
| ------------------ | ------------ | ----------------------------------------------------------------- |
| [`target`][target] | `ESNext` | Compile to the latest ECMAScript standard for maximum performance |
| [`lib`][lib] | `["ESNext"]` | Include latest ECMAScript library features |
### 📦 Module Settings
| Setting | Value | Description |
| -------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- |
| [`module`][module] | `NodeNext` | Use Node.js ESM module resolution for modern applications |
| [`moduleResolution`][moduleResolution] | `NodeNext` | Enable Node.js 16+ module resolution algorithm |
| [`skipLibCheck`][skipLibCheck] | `true` | Skip type checking of declaration files for faster builds |
| [`esModuleInterop`][esModuleInterop] | `true` | Enable CommonJS/ES module interoperability |
| [`allowSyntheticDefaultImports`][allowSyntheticDefaultImports] | `true` | Allow default imports from modules without default exports |
| [`allowImportingTsExtensions`][allowImportingTsExtensions] | `true` | Allow importing `.ts` files directly |
| [`rewriteRelativeImportExtensions`][rewriteRelativeImportExtensions] | `true` | Automatically rewrite import extensions |
| [`allowJs`][allowJs] | `false` | Enforce TypeScript-only codebase for type safety |
### 🔒 Language Settings (Type Safety)
| Setting | Value | Description |
| ---------------------------------------------------------- | ------- | ------------------------------------------------------------- |
| [`strict`][strict] | `true` | Enable all strict type checking options |
| [`strictNullChecks`][strictNullChecks] | `true` | Enforce strict null and undefined checking |
| [`noImplicitAny`][noImplicitAny] | `true` | Raise error on expressions with implied `any` type |
| [`noUnusedLocals`][noUnusedLocals] | `true` | Report errors on unused local variables |
| [`noUnusedParameters`][noUnusedParameters] | `true` | Report errors on unused function parameters |
| [`useUnknownInCatchVariables`][useUnknownInCatchVariables] | `false` | Use `any` type for catch clause variables (for compatibility) |
### 🔧 Transpilation Settings
| Setting | Value | Description |
| ---------------------------------------------- | ------ | -------------------------------------------------------- |
| [`removeComments`][removeComments] | `true` | Remove comments from compiled output for smaller bundles |
| [`newLine`][newLine] | `lf` | Use Unix-style line endings for consistency |
| [`verbatimModuleSyntax`][verbatimModuleSyntax] | `true` | Preserve module syntax more accurately in output |
| [`erasableSyntaxOnly`][erasableSyntaxOnly] | `true` | Allow removal of only erasable syntax for cleaner code |
## 💡 Why These Settings?
### Modern Node.js Support
- **`NodeNext` module resolution** ensures compatibility with Node.js 22+ ESM features
- **`ESNext` target** leverages the latest JavaScript features for optimal performance
### Type Safety First
- **Strict mode enabled** catches common bugs at compile time
- **No implicit any** ensures all types are explicitly defined
- **Unused variable detection** keeps code clean and maintainable
### Developer Experience
- **Skip lib check** speeds up compilation without sacrificing safety
- **Import extensions** work seamlessly with modern tooling
- **Consistent formatting** with LF line endings across platforms
## 📄 License
Apache 2.0
[target]: https://www.typescriptlang.org/tsconfig#target
[lib]: https://www.typescriptlang.org/tsconfig#lib
[module]: https://www.typescriptlang.org/tsconfig#module
[moduleResolution]: https://www.typescriptlang.org/tsconfig#moduleResolution
[skipLibCheck]: https://www.typescriptlang.org/tsconfig#skipLibCheck
[esModuleInterop]: https://www.typescriptlang.org/tsconfig#esModuleInterop
[allowSyntheticDefaultImports]: https://www.typescriptlang.org/tsconfig#allowSyntheticDefaultImports
[allowImportingTsExtensions]: https://www.typescriptlang.org/tsconfig#allowImportingTsExtensions
[rewriteRelativeImportExtensions]: https://www.typescriptlang.org/tsconfig#rewriteRelativeImportExtensions
[allowJs]: https://www.typescriptlang.org/tsconfig#allowJs
[strict]: https://www.typescriptlang.org/tsconfig#strict
[strictNullChecks]: https://www.typescriptlang.org/tsconfig#strictNullChecks
[noImplicitAny]: https://www.typescriptlang.org/tsconfig#noImplicitAny
[noUnusedLocals]: https://www.typescriptlang.org/tsconfig#noUnusedLocals
[noUnusedParameters]: https://www.typescriptlang.org/tsconfig#noUnusedParameters
[useUnknownInCatchVariables]: https://www.typescriptlang.org/tsconfig#useUnknownInCatchVariables
[removeComments]: https://www.typescriptlang.org/tsconfig#removeComments
[newLine]: https://www.typescriptlang.org/tsconfig#newLine
[verbatimModuleSyntax]: https://www.typescriptlang.org/tsconfig#verbatimModuleSyntax
[erasableSyntaxOnly]: https://www.typescriptlang.org/tsconfig#erasableSyntaxOnly