@chriscarrillo/ts

Personal TypeScript configurations

Usage no npm install needed!

<script type="module">
  import chriscarrilloTs from 'https://cdn.skypack.dev/@chriscarrillo/ts';
</script>

README

Custom TypeScript Configurations

Installation

yarn add -D @chriscarrillo/ts

or

npm install -D @chriscarrillo/ts

Set-Up

TypeScript

In tsconfig.json:

{
  "extends": "./node_modules/@chriscarrillo/ts/tsconfig.json"
}

In tsconfig.base.json:

{
  "compilerOptions": {"baseUrl": "./src"},
  "extends": "./node_modules/@chriscarrillo/ts/config/base.json"
}

Prettier

yarn add -D prettier

or

npm install -D prettier

In .prettierrc.js:

module.exports = require('@chriscarrillo/ts/format')

ESLint

yarn add -D @typescript-eslint/eslint-plugin
yarn add -D @typescript-eslint/parser
yarn add -D eslint
yarn add -D eslint-config-prettier
yarn add -D eslint-plugin-functional
yarn add -D eslint-plugin-import
yarn add -D eslint-plugin-jsdoc
yarn add -D eslint-plugin-prettier
yarn add -D eslint-plugin-react
yarn add -D eslint-plugin-react-hooks
yarn add -D eslint-plugin-sonarjs

or

npm install -D @typescript-eslint/eslint-plugin
npm install -D @typescript-eslint/parser
npm install -D eslint
npm install -D eslint-config-prettier
npm install -D eslint-plugin-functional
npm install -D eslint-plugin-import
npm install -D eslint-plugin-jsdoc
npm install -D eslint-plugin-prettier
npm install -D eslint-plugin-react
npm install -D eslint-plugin-react-hooks
npm install -D eslint-plugin-sonarjs

In .eslintrc.js:

module.exports = {
  ...require('@chriscarrillo/ts/lint')
}

Jest

yarn add babel-plugin-dynamic-import-node
yarn add jest
yarn add ts-jest

or

npm install babel-plugin-dynamic-import-node
npm install jest
npm install ts-jest

In jest.config.js:

const {pathsToModuleNameMapper} = require('ts-jest/utils')
const {compilerOptions} = require('./tsconfig')

module.exports = {
    moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths, {
        prefix: '<rootDir>/',
    }),
    preset: '@chirscarrillo/ts'
}

Visual Studio Code

settings.json:

{
  "editor.codeActionsOnSave": {
    "source.fixAll": true
  },
  "editor.defaultFormatter": "esbenp.prettier-vscode",
  "editor.formatOnSave": true,
  "editor.rulers": [100],
  "telemetry.enableCrashReporter": false,
  "telemetry.enableTelemetry": false,
  "typescript.enablePromptUseWorkspaceTsdk": true,
  "typescript.format.enable": false,
  "typescript.tsdk": "node_modules/typescript/lib",
  "[javascript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
  },
  "[typescript]": {
    "editor.defaultFormatter": "dbaeumer.vscode-eslint"
  }
}