@platformatic/tsconfig
v0.2.0
Published
Platformatic TypeScript configuration
Maintainers
Keywords
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
npm install @platformatic/tsconfig🚀 Usage
To use this configuration, extend it in your project's tsconfig.json:
{
"extends": "@platformatic/tsconfig",
"compilerOptions": {
"outDir": "./dist",
"rootDir": "./src"
},
"include": ["src/**/*"],
"exclude": ["node_modules", "dist"]
}Basic Setup
Install the package:
npm install --save-dev @platformatic/tsconfigCreate or update your
tsconfig.json:{ "extends": "@platformatic/tsconfig" }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 | ESNext | Compile to the latest ECMAScript standard for maximum performance |
| lib | ["ESNext"] | Include latest ECMAScript library features |
📦 Module Settings
| Setting | Value | Description |
| -------------------------------------------------------------------- | ---------- | ---------------------------------------------------------- |
| module | NodeNext | Use Node.js ESM module resolution for modern applications |
| moduleResolution | NodeNext | Enable Node.js 16+ module resolution algorithm |
| skipLibCheck | true | Skip type checking of declaration files for faster builds |
| esModuleInterop | true | Enable CommonJS/ES module interoperability |
| allowSyntheticDefaultImports | true | Allow default imports from modules without default exports |
| allowImportingTsExtensions | true | Allow importing .ts files directly |
| rewriteRelativeImportExtensions | true | Automatically rewrite import extensions |
| allowJs | false | Enforce TypeScript-only codebase for type safety |
🔒 Language Settings (Type Safety)
| Setting | Value | Description |
| ---------------------------------------------------------- | ------- | ------------------------------------------------------------- |
| strict | true | Enable all strict type checking options |
| strictNullChecks | true | Enforce strict null and undefined checking |
| noImplicitAny | true | Raise error on expressions with implied any type |
| noUnusedLocals | true | Report errors on unused local variables |
| noUnusedParameters | true | Report errors on unused function parameters |
| useUnknownInCatchVariables | false | Use any type for catch clause variables (for compatibility) |
🔧 Transpilation Settings
| Setting | Value | Description |
| ---------------------------------------------- | ------ | -------------------------------------------------------- |
| removeComments | true | Remove comments from compiled output for smaller bundles |
| newLine | lf | Use Unix-style line endings for consistency |
| verbatimModuleSyntax | true | Preserve module syntax more accurately in output |
| erasableSyntaxOnly | true | Allow removal of only erasable syntax for cleaner code |
💡 Why These Settings?
Modern Node.js Support
NodeNextmodule resolution ensures compatibility with Node.js 22+ ESM featuresESNexttarget 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
