Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@cprussin/tsconfig

Package Overview
Dependencies
Maintainers
1
Versions
7
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@cprussin/tsconfig

A set of strict shared typescript configs

  • 3.0.1
  • latest
  • Source
  • npm
  • Socket score

Version published
Maintainers
1
Created
Source

@cprussin/tsconfig v3.0.1Docs


@cprussin/tsconfig v3.0.1

This package contains a set of strict shared typescript configs.

Installing

Use the package manager of your choice to install:

  • npm: npm install --save-dev @cprussin/tsconfig
  • pnpm: pnpm add -D @cprussin/tsconfig
  • yarn: yarn add -D @cprussin/tsconfig

Usage

Add the config you want to extend to your tsconfig.json, for example:

{
  "extends": "@cprussin/tsconfig/base.json"
}

Note that "noEmit": true is set by configs here. The intention is that most of the case, you're type checking with typescript and distributed untranspiled files, or that if you're transpiling then the transpilation tools you're using will override that setting in their own configs as needed. For instance, if you're using webpack, you could configure ts-loader like this:

{
  loader: "ts-loader",
  options: {
    compilerOptions: {
      sourceMap: process.env.NODE_ENV === "development",
      noEmit: false,
    },
  },
}

Or you could have a build script in your package.json that runs tsc directly:

{
  "name": "foo",
  "scripts": {
    "build": "tsc --noEmit false --outDir ./dist"
  }
}

Configurations

base.json

// tsconfig.json
{
  "extends": "@cprussin/tsconfig/base.json"
}

The base configuration that everything else extends from. Sets a bunch of strict options such as "strict": true, "allowJs": false, "noFallthroughCasesInSwitch": true, "noImplicitReturns": true, etc. If you want to be as strict as I do and you aren't incrementally adding typescript to a legacy project, you probably don't want to override most of these options, but it might make sense to override the target or lib options.

Note that no options are set for JSX or for DOM libraries. If you need any of that, you'll want to use one of the configs that extends base.json instead of using base.json directly.

dom.json

// tsconfig.json
{
  "extends": "@cprussin/tsconfig/dom.json"
}

Very simply extends the base.json config by adding the dom and dom.iterable libs.

react.json

// tsconfig.json
{
  "extends": "@cprussin/tsconfig/react.json"
}

Adds the "jsx": "preserve" option to the dom.json config.

nextjs.json

// tsconfig.json
{
  "extends": "@cprussin/tsconfig/nextjs.json"
}

Adds the nextjs typescript plugin to the react.json config.

webworker.json

// tsconfig.json
{
  "extends": "@cprussin/tsconfig/webworker.json"
}

Extends the base.json config by adding the webworker lib.

Keywords

FAQs

Package last updated on 03 Jun 2024

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc