Skip to content

asd-xiv/ts-config

Repository files navigation

Release npm version

@asd14/ts-config

ASD14's reusable TypeScript configurations.

Installation

npm install --save-dev @asd14/ts-config typescript@^5

Usage

In your tsconfig.json, extend the desired configuration:

{
  "extends": "@asd14/ts-config/targets/react.json"
}

Targets

There are 3 configurations, each tailored for a specific target environment: node, react and ink.

Common Configuration

All 3 targets extend a common set of rules:

{
  "allowImportingTsExtensions": true,
  "allowJs": true,
  "checkJs": true,
  "declaration": true,
  "esModuleInterop": true,
  "forceConsistentCasingInFileNames": true,
  "incremental": true,
  "moduleDetection": "force",
  "noFallthroughCasesInSwitch": true,
  "noImplicitOverride": true,
  "noImplicitReturns": true,
  "noPropertyAccessFromIndexSignature": true,
  "noUncheckedIndexedAccess": true,
  "noUnusedLocals": true,
  "noUnusedParameters": true,
  "removeComments": false,
  "resolveJsonModule": true,
  "skipDefaultLibCheck": true,
  "skipLibCheck": true,
  "sourceMap": true,
  "strict": true
}

Node

// @asd14/ts-config/targets/node.json
{
  "module": "nodenext",
  "moduleResolution": "nodenext",
  "target": "es2022",
  "lib": ["es2023"],
  "types": ["node"]
}

React

// @asd14/ts-config/targets/react.json
{
  "module": "esnext",
  "moduleResolution": "bundler",
  "target": "esnext",
  "jsx": "preserve",
  "lib": ["dom", "dom.iterable", "esnext"]
}

Ink

// @asd14/ts-config/targets/ink.json
{
  "module": "esnext",
  "moduleResolution": "nodenext",
  "target": "esnext",
  "jsx": "preserve",
  "lib": ["es2023", "dom"],
  "types": ["node"]
}

Peer dependencies

This package requires and assumes you already installed:

  "peerDependencies": {
    "typescript": "^5"
  },

License

MIT

About

ASD14's reusable TypeScript configurations.

Resources

License

Stars

Watchers

Forks

Contributors 2

  •  
  •  

Languages