No description
Find a file
TransQuinnFTW df842fad6e
Some checks failed
Build and Publish / build-and-publish (push) Failing after 43s
chore: bump version to 1.1.5
2026-01-15 08:04:21 -08:00
.forgejo/workflows chore(shared): 🔧 **Chain-of-Thought Reasoning:** 2026-01-15 06:57:52 -08:00
.githooks chore: configure GitLab CI/CD with workspace protocol 2025-12-28 03:32:41 -08:00
.gitignore feat: configure GitLab CI/CD for npm registry publishing 2025-12-28 00:29:54 -08:00
package.json chore: bump version to 1.1.5 2026-01-15 08:04:21 -08:00
README.md chore(shared): 🔧 Hello! I'm a mock assistant responding to your message. 2026-01-05 12:52:03 -08:00
tsconfig.base.json feat: configure GitLab CI/CD for npm registry publishing 2025-12-28 00:29:54 -08:00
tsconfig.esm.json feat: configure GitLab CI/CD for npm registry publishing 2025-12-28 00:29:54 -08:00

@lilith/typescript-config-base

Base TypeScript configuration with strict settings and best practices.

Features

  • Strict Type Checking: All strict options enabled
  • Modern Target: ES2022 for Node.js 18+
  • NodeNext Modules: Native ESM/CJS resolution
  • Declaration Maps: Full IDE support
  • ESM Variant: Separate ESM-optimized config

Installation

pnpm add -D @lilith/typescript-config-base typescript

Usage

Create a tsconfig.json in your project:

{
  "extends": "@lilith/typescript-config-base",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src"
  },
  "include": ["src/**/*"],
  "exclude": ["node_modules", "dist"]
}

ESM Projects

For pure ESM projects:

{
  "extends": "@lilith/typescript-config-base/esm",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src"
  }
}

Configuration

Compiler Options

Option Value Description
target ES2022 Modern JavaScript features
module NodeNext Native Node.js module resolution
moduleResolution NodeNext ESM/CJS hybrid support
strict true All strict checks enabled

Strict Checks

All strict type checking options are enabled:

  • noImplicitAny - No implicit any types
  • strictNullChecks - Strict null checking
  • strictFunctionTypes - Strict function parameter types
  • strictBindCallApply - Strict bind/call/apply
  • strictPropertyInitialization - Class property initialization
  • noImplicitThis - No implicit this types
  • useUnknownInCatchVariables - Catch variables as unknown
  • alwaysStrict - Emit "use strict"

Additional Checks

  • noUnusedLocals - Error on unused locals
  • noUnusedParameters - Error on unused parameters
  • noImplicitReturns - All paths must return
  • noFallthroughCasesInSwitch - No fallthrough in switch
  • noImplicitOverride - Require override keyword

Output Options

  • declaration: true - Generate .d.ts files
  • declarationMap: true - Source maps for declarations
  • sourceMap: true - JavaScript source maps

Module Interop

  • esModuleInterop: true - CommonJS/ESM interop
  • skipLibCheck: true - Skip library type checking
  • forceConsistentCasingInFileNames: true - Case-sensitive imports
  • resolveJsonModule: true - Import JSON files
  • isolatedModules: true - Bundler compatibility

Exports

Export File Use Case
. tsconfig.base.json Default configuration
./esm tsconfig.esm.json Pure ESM projects

Examples

Node.js Library

{
  "extends": "@lilith/typescript-config-base",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src",
    "declaration": true
  },
  "include": ["src/**/*"]
}

Node.js Application

{
  "extends": "@lilith/typescript-config-base",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src",
    "declaration": false
  },
  "include": ["src/**/*"]
}

Monorepo Package

{
  "extends": "@lilith/typescript-config-base",
  "compilerOptions": {
    "outDir": "./dist",
    "rootDir": "./src",
    "composite": true,
    "declarationMap": true
  },
  "include": ["src/**/*"],
  "references": [
    { "path": "../shared" }
  ]
}

License

MIT

Simple test 1767646321