open-index/open-npm huggingface dataset:
npm package: @rainroad/map-tools
Description: 当打包完成后，应将 `src/types` 下的类型文件同步拷贝进 `lib/types` 目录下。并在 `mapTool.d.ts` 和 `useMap` 的文件顶部添加 `/// <reference path="minemap.d.ts" />`，以使类型提示生效。
Latest version: 1.0.16

# map-tools

## 构建

当打包完成后，应将 `src/types` 下的类型文件同步拷贝进 `lib/types` 目录下。并在 `mapTool.d.ts` 和 `useMap` 的文件顶部添加 `/// <reference path="minemap.d.ts" />`，以使类型提示生效。
npm package: @rainson/npm-demo
Description: 一个简单的 Koa 服务器演示项目
Author: Your Name
Latest version: 1.0.3

# npm-demo

一个简单的 Koa 服务器演示项目，展示了 npm 包的各种配置选项。

## 功能特性

- 🚀 基于 Koa 的 Web 服务器
- 📦 完整的 npm 包配置示例
- 🛠️ 命令行工具支持
- 🔧 灵活的配置选项

## 安装

```bash
# 全局安装（推荐）
npm install -g npm-demo

# 本地安装
npm install npm-demo
```

## 使用方法

### 命令行工具

```bash
# 显示帮助信息
npm-demo

# 启动服务器
npm-demo start

# 指定端口和主机
npm-demo start -p 8080 -h 0.0.0.0

# 显示项目信息
npm-demo info

# 显示当前配置
npm-demo config
```

### 编程方式

```javascript
const server = require('npm-demo');
// 服务器会自动启动
```

## 配置选项

| 配置项 | 默认值 | 说明 |
|--------|--------|------|
| port | 3030 | 服务器端口 |
| host | 127.0.0.1 | 服务器主机地址 |
| env | development | 运行环境 |

## 支持的平台

- ✅ macOS (darwin)
- ✅ Linux
- ✅ Windows (win32)

## 支持的 CPU 架构

- ✅ x64 (Intel/AMD 64位)
- ✅ AMD64
- ✅ arm64 (Apple Silicon)

## 开发

```bash
# 克隆项目
git clone https://github.com/yourusername/npm-demo.git
cd npm-demo

# 安装依赖
npm install

# 启动开发服务器
npm run dev

# 运行测试
npm test

# 构建项目
npm run build
```

## 发布配置说明

### package.json 关键字段

- `private: false` - 允许发布到 npm
- `preferGlobal: true` - 推荐全局安装
- `publishConfig` - 发布配置
- `engines` - 运行环境要求
- `os` - 支持的操作系统
- `cpu` - 支持的 CPU 架构
- `files` - 发布时包含的文件
- `bin` - 命令行工具配置

## 许可证

MIT License

## 作者

Your Name <your.email@example.com>
npm package: @rainstormy/preset-eslint-next
Description: A predefined, opinionated ESLint configuration suitable for any Next.js project.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Next.js Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [Next.js](https://nextjs.org) project.

## Installation
Install the `@rainstormy/preset-eslint-next` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-next eslint
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-next eslint
```

```shell
yarn add --dev @rainstormy/preset-eslint-next eslint
```

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [@next/eslint-plugin-next](https://nextjs.org/docs/app/building-your-application/configuring/eslint#eslint-plugin) (with rule names prefixed by `next/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target JSX component files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase
} from "@rainstormy/preset-eslint-base"
import { eslintNext } from "@rainstormy/preset-eslint-next"
import { eslintReact } from "@rainstormy/preset-eslint-react"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),

	// `eslintAmbientTypeScriptModules` and `eslintReact` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintReact({ files: ["**/*.tsx"] }),

	// `eslintNext` must follow `eslintReact` to take effect.
	eslintNext({ files: ["**/*.tsx"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-react](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-react)
npm package: @rainstormy/preset-eslint-preact
Description: A predefined, opinionated ESLint configuration suitable for any web project with Preact components.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Preact Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [Preact](https://preactjs.com) components.

## Installation
Install the `@rainstormy/preset-eslint-preact` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-preact eslint
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-preact eslint
```

```shell
yarn add --dev @rainstormy/preset-eslint-preact eslint
```

This preset configures a subset of rules from the following plugins, which are installed along with the preset package:

* [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#supported-rules) (with rule names prefixed by `jsx-a11y/`)
* [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules) (with rule names prefixed by `react/`)
* [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks#custom-configuration) (with rule names prefixed by `react-hooks/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target JSX component files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase
} from "@rainstormy/preset-eslint-base"
import { eslintPreact } from "@rainstormy/preset-eslint-preact"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),

	// `eslintAmbientTypeScriptModules` and `eslintPreact` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintPreact({ files: ["**/*.tsx"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-storybook](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-storybook)
* [@rainstormy/preset-eslint-tailwind](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-tailwind)
* [@rainstormy/preset-eslint-testing-library](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-testing-library)
npm package: @rainstormy/preset-eslint-react
Description: A predefined, opinionated ESLint configuration suitable for any web project with React components.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# React Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [React](https://react.dev) components.

## Installation
Install the `@rainstormy/preset-eslint-react` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-react eslint
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-react eslint
```

```shell
yarn add --dev @rainstormy/preset-eslint-react eslint
```

This preset configures a subset of rules from the following plugins, which are installed along with the preset package:

* [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#supported-rules) (with rule names prefixed by `jsx-a11y/`)
* [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules) (with rule names prefixed by `react/`)
* [eslint-plugin-react-hooks](https://github.com/facebook/react/tree/main/packages/eslint-plugin-react-hooks#custom-configuration) (with rule names prefixed by `react-hooks/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target JSX component files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase,
} from "@rainstormy/preset-eslint-base"
import { eslintReact } from "@rainstormy/preset-eslint-react"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),

	// `eslintAmbientTypeScriptModules` and `eslintReact` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintReact({ files: ["**/*.tsx"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-next](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-next)
* [@rainstormy/preset-eslint-storybook](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-storybook)
* [@rainstormy/preset-eslint-tailwind](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-tailwind)
* [@rainstormy/preset-eslint-testing-library](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-testing-library)
npm package: @rainstormy/preset-eslint-solid
Description: A predefined, opinionated ESLint configuration suitable for any web project with Solid components.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Solid Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [Solid](https://www.solidjs.com) components.

## Installation
Install the `@rainstormy/preset-eslint-solid` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-solid eslint
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-solid eslint
```

```shell
yarn add --dev @rainstormy/preset-eslint-solid eslint
```

This preset configures a subset of rules from the following plugins, which are installed along with the preset package:

* [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#supported-rules) (with rule names prefixed by `jsx-a11y/`)
* [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules) (only for generic JSX rules, with rule names prefixed by `react/`)
* [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid#rules) (with rule names prefixed by `solid/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target JSX component files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase,
} from "@rainstormy/preset-eslint-base"
import { eslintSolid } from "@rainstormy/preset-eslint-solid"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),

	// `eslintAmbientTypeScriptModules` and `eslintSolid` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintSolid({ files: ["**/*.tsx"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-storybook](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-storybook)
* [@rainstormy/preset-eslint-tailwind](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-tailwind)
* [@rainstormy/preset-eslint-testing-library](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-testing-library)
npm package: @rainstormy/preset-eslint-storybook
Description: A predefined, opinionated ESLint configuration suitable for any web project with Storybook stories.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Storybook Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [Storybook](https://storybook.js.org) stories.

## Installation
Install the `@rainstormy/preset-eslint-storybook` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-storybook eslint
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-storybook eslint
```

```shell
yarn add --dev @rainstormy/preset-eslint-storybook eslint
```

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-storybook](https://github.com/storybookjs/eslint-plugin-storybook) (with rule names prefixed by `storybook/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target Storybook configuration files and story files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase,
	eslintTestData,
} from "@rainstormy/preset-eslint-base"
import { eslintReact } from "@rainstormy/preset-eslint-react"
import { eslintStorybook } from "@rainstormy/preset-eslint-storybook"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),

	// `eslintAmbientTypeScriptModules`, `eslintReact`, and `eslintTestData` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintReact({ files: ["**/*.tsx"] }),
	eslintTestData({ files: ["**/*.stories.+(ts|tsx)"] }),

	// `eslintStorybook` must follow a JSX preset such as `eslintReact` to take effect.
	eslintStorybook({
		files: [".storybook/**/*.+(ts|tsx)", "**/*.stories.+(ts|tsx)"],
	}),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-testing-library](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-testing-library)
npm package: @rainstormy/preset-eslint-tailwind
Description: A predefined, opinionated ESLint configuration suitable for any web project with Tailwind CSS classes.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Tailwind CSS Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [Tailwind CSS](https://tailwindcss.com) classes.

## Installation
Install the `@rainstormy/preset-eslint-tailwind` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-tailwind eslint tailwindcss
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-tailwind eslint tailwindcss
```

```shell
yarn add --dev @rainstormy/preset-eslint-tailwind eslint tailwindcss
```

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-tailwindcss](https://github.com/francoismassart/eslint-plugin-tailwindcss#supported-rules) (with rule names prefixed by `tailwind/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target JSX component files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase,
} from "@rainstormy/preset-eslint-base"
import { eslintTailwind } from "@rainstormy/preset-eslint-tailwind"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),
	eslintTailwind({ files: ["**/*.tsx"] }),

	// `eslintAmbientTypeScriptModules` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-prettier-tailwind](https://github.com/rainstormy/presets-web/tree/main/packages/preset-prettier-tailwind)
npm package: @rainstormy/preset-eslint-testing-library
Description: A predefined, opinionated ESLint configuration suitable for any web project with Testing Library tests.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Testing Library Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [Testing Library](https://testing-library.com) tests.

## Installation
Install the `@rainstormy/preset-eslint-testing-library` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-testing-library eslint
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-testing-library eslint
```

```shell
yarn add --dev @rainstormy/preset-eslint-testing-library eslint
```

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-testing-library](https://github.com/testing-library/eslint-plugin-testing-library#supported-rules) (with rule names prefixed by `testing-library/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target component test files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase,
	eslintTestData,
} from "@rainstormy/preset-eslint-base"
import { eslintTestingLibrary } from "@rainstormy/preset-eslint-testing-library"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),
	eslintTestingLibrary({ files: ["**/*.test.tsx"] }),

	// `eslintAmbientTypeScriptModules` and `eslintTestData` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintTestData({ files: ["**/*.test.tsx"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-storybook](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-storybook)
* [@rainstormy/preset-eslint-vitest](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-vitest)
npm package: @rainstormy/preset-eslint-vitest
Description: A predefined, opinionated ESLint configuration suitable for any web project with Vitest suites.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Vitest Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any web project with [Vitest](https://vitest.dev) suites.

## Installation
Install the `@rainstormy/preset-eslint-vitest` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-eslint-vitest eslint vitest
```

```shell
pnpm install --save-dev @rainstormy/preset-eslint-vitest eslint vitest
```

```shell
yarn add --dev @rainstormy/preset-eslint-vitest eslint vitest
```

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-vitest](https://github.com/veritem/eslint-plugin-vitest#rules) (with rule names prefixed by `vitest/`)

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) to target test files in TypeScript.
For example:

```javascript
import {
	eslintAmbientTypeScriptModules,
	eslintBase,
	eslintTestData,
} from "@rainstormy/preset-eslint-base"
import { eslintVitest } from "@rainstormy/preset-eslint-vitest"

export default [
	eslintBase({ files: ["**/*.+(js|ts|tsx)"] }),

	// `eslintAmbientTypeScriptModules`, `eslintTestData`, and `eslintVitest` must follow `eslintBase` to take effect.
	eslintAmbientTypeScriptModules({ files: ["**/*.d.ts"] }),
	eslintTestData({ files: ["**/*.test.+(ts|tsx)"] }),
	eslintVitest({ files: ["**/*.test.+(ts|tsx)"] }),
]
```

## Complementary Presets
* [@rainstormy/preset-eslint-testing-library](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-testing-library)
npm package: @rainstormy/preset-prettier-base
Description: A predefined, opinionated Prettier configuration suitable for any TypeScript project.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# General Preset for Prettier

This package provides a predefined, opinionated [Prettier](https://prettier.io) configuration suitable for any [TypeScript](https://www.typescriptlang.org) project.

## Installation
Install the `@rainstormy/preset-prettier-base` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-prettier-base prettier typescript
```

```shell
pnpm install --save-dev @rainstormy/preset-prettier-base prettier typescript
```

```shell
yarn add --dev @rainstormy/preset-prettier-base prettier typescript
```

This preset includes the following plugins, which are installed along with the preset package:

* [prettier-plugin-organize-imports](https://github.com/simonhaenisch/prettier-plugin-organize-imports)
* [prettier-plugin-packagejson](https://github.com/matzkoh/prettier-plugin-packagejson)

## Usage
Create or extend a [Prettier configuration file](https://prettier.io/docs/en/configuration.html) (`prettier.config.js`).
For example:

```javascript
import { prettierBase } from "@rainstormy/preset-prettier-base"

export default prettierBase()
```

## Complementary Presets
* [@rainstormy/preset-eslint-base](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-base)
* [@rainstormy/preset-typescript](https://github.com/rainstormy/presets-web/tree/main/packages/preset-typescript)
npm package: @rainstormy/preset-prettier-css
Description: A predefined, opinionated Prettier configuration suitable for any web project with CSS declarations.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# CSS Preset for Prettier

This package provides a predefined, opinionated [Prettier](https://prettier.io) configuration suitable for any web project with CSS declarations.

## Installation
Install the `@rainstormy/preset-prettier-css` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-prettier-css postcss prettier
```

```shell
pnpm install --save-dev @rainstormy/preset-prettier-css postcss prettier
```

```shell
yarn add --dev @rainstormy/preset-prettier-css postcss prettier
```

This preset includes the following plugin, which is installed along with the preset package:

* [prettier-plugin-css-order](https://github.com/Siilwyn/prettier-plugin-css-order)

## Usage
Create or extend a [Prettier configuration file](https://prettier.io/docs/en/configuration.html) (`prettier.config.js`).
For example:

```javascript
import {
	prettierBase,
	prettierMergeConfigs,
} from "@rainstormy/preset-prettier-base"
import { prettierCss } from "@rainstormy/preset-prettier-css"

export default prettierMergeConfigs([
	prettierBase(),
	prettierCss(),
])
```

## Complementary Presets
* [@rainstormy/preset-prettier-tailwind](https://github.com/rainstormy/presets-web/tree/main/packages/preset-prettier-tailwind)
npm package: @rainstormy/preset-prettier-tailwind
Description: A predefined, opinionated Prettier configuration suitable for any web project with Tailwind CSS classes.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Tailwind CSS Preset for Prettier

This package provides a predefined, opinionated [Prettier](https://prettier.io) configuration suitable for any web project with [Tailwind CSS](https://tailwindcss.com) classes.

## Installation
Install the `@rainstormy/preset-prettier-tailwind` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-prettier-tailwind prettier
```

```shell
pnpm install --save-dev @rainstormy/preset-prettier-tailwind prettier
```

```shell
yarn add --dev @rainstormy/preset-prettier-tailwind prettier
```

This preset includes the following plugin, which is installed along with the preset package:

* [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss)

## Usage
Create or extend a [Prettier configuration file](https://prettier.io/docs/en/configuration.html) (`prettier.config.js`).
For example:

```javascript
import {
	prettierBase,
	prettierMergeConfigs,
} from "@rainstormy/preset-prettier-base"
import { prettierCss } from "@rainstormy/preset-prettier-css"
import { prettierTailwind } from "@rainstormy/preset-prettier-tailwind"

export default prettierMergeConfigs([
	prettierBase(),
	prettierCss(),

	// `prettierTailwind` must be applied last.
	prettierTailwind(),
])
```

## Complementary Presets
* [@rainstormy/preset-eslint-tailwind](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-tailwind)
* [@rainstormy/preset-prettier-css](https://github.com/rainstormy/presets-web/tree/main/packages/preset-prettier-css)
npm package: @rainstormy/preset-typescript
Description: A predefined, opinionated TypeScript configuration suitable for any TypeScript project.
Author: Steffen Diswal
Latest version: 1.0.0-alpha.3
Deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.

# Presets for TypeScript

This package provides predefined, opinionated [TypeScript](https://www.typescriptlang.org) configuration.

## Installation
Install the `@rainstormy/preset-typescript` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/preset-typescript typescript
```

```shell
pnpm install --save-dev @rainstormy/preset-typescript typescript
```

```shell
yarn add --dev @rainstormy/preset-typescript typescript
```

## Usage
Create a [TypeScript configuration file](https://www.typescriptlang.org/tsconfig) (`tsconfig.json`) and extend the following configurations to enable type-checking and optionally also generation of `js` and `d.ts` files:

* `@rainstormy/preset-typescript/check`
* `@rainstormy/preset-typescript/generate` (to generate `js` and `d.ts` files)
* `@rainstormy/preset-typescript/generate-types` (to generate `d.ts` files only)
* `@rainstormy/preset-typescript/target-node-es2023` (for Node.js projects)
* `@rainstormy/preset-typescript/target-web-es2023` (for web browser projects)

For example:

```json
{
	"$schema": "https://json.schemastore.org/tsconfig",
	"extends": [
		"@rainstormy/preset-typescript/check",
		"@rainstormy/preset-typescript/target-web-es2023"
	]
}
```

<dl><dt><strong>💡 TIP: Override Settings</strong></dt><dd>

To override the settings configured by this preset, specify the desired options after the `extends` field to take precedence over the preset.
For example:

```json
{
	"$schema": "https://json.schemastore.org/tsconfig",
	"extends": [
		"@rainstormy/preset-typescript/check",
		"@rainstormy/preset-typescript/generate",
		"@rainstormy/preset-typescript/target-node-es2023"
	],
	"compilerOptions": {
		"baseUrl": "./",
		"incremental": true,
		"noEmitOnError": false,
		"outDir": "dist",
		"sourceMap": true
	},
	"include": ["./src/**/*.ts", "./*.config.js", "./*.config.ts"]
}
```
</dd></dl>

## Complementary Presets
* [@rainstormy/preset-eslint-base](https://github.com/rainstormy/presets-web/tree/main/packages/preset-eslint-base)
* [@rainstormy/preset-prettier-base](https://github.com/rainstormy/presets-web/tree/main/packages/preset-prettier-base)
npm package: @rainstormy/presets-eslint-next
Description: A predefined, opinionated ESLint configuration suitable for any Next.js project.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Next.js Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [Next.js](https://nextjs.org) app.

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [@next/eslint-plugin-next](https://nextjs.org/docs/app/building-your-application/configuring/eslint#eslint-plugin) (with rule names prefixed by `next/`)

Additionally, it includes the following presets:

* [@rainstormy/presets-eslint-jsx](https://github.com/rainstormy/presets-web/tree/main/packages/presets-eslint-jsx)
* [@rainstormy/presets-eslint-react](https://github.com/rainstormy/presets-web/tree/main/packages/presets-eslint-react)

## Installation
Install the `@rainstormy/presets-eslint-next` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-eslint-next @rainstormy/presets-eslint eslint typescript
```

```shell
pnpm install --save-dev @rainstormy/presets-eslint-next @rainstormy/presets-eslint eslint typescript
```

```shell
yarn add --dev @rainstormy/presets-eslint-next @rainstormy/presets-eslint eslint typescript
```

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) and apply the `eslintPresetNext` preset.

For example (with the default options in comments):

```javascript
import { eslintPresets } from "@rainstormy/presets-eslint"
import { eslintPresetNext } from "@rainstormy/presets-eslint-next"

export default eslintPresets({
	additionalPresets: [
		// ...other presets...
		eslintPresetNext({
			// targetFilePatterns: ["**/*.@(jsx|tsx)"],
		}),
	],
})
```

### In Combination with Storybook, Tailwind CSS, and Testing Library
For example (with the default options applied):

```javascript
import {
	eslintPresetAmbientTypeScriptModules,
	eslintPresetTestData,
	eslintPresets,
} from "@rainstormy/presets-eslint"
import { eslintPresetNext } from "@rainstormy/presets-eslint-next"
import { eslintPresetStorybook } from "@rainstormy/presets-eslint-storybook"
import { eslintPresetTailwind } from "@rainstormy/presets-eslint-tailwind"
import { eslintPresetTestingLibrary } from "@rainstormy/presets-eslint-testing-library"
import { eslintPresetVitest } from "@rainstormy/presets-eslint-vitest"

export default eslintPresets({
	additionalPresets: [
		eslintPresetAmbientTypeScriptModules(),
		eslintPresetNext(),
		eslintPresetStorybook(),
		eslintPresetTailwind(),
		eslintPresetTestData(),
		eslintPresetTestingLibrary(),
		eslintPresetVitest(),
	],
})
```
npm package: @rainstormy/presets-eslint-solid
Description: A predefined, opinionated ESLint configuration suitable for any web project with Solid components.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Solid Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with [Solid](https://www.solidjs.com) components.

This preset configures a subset of rules from the following plugins, which are installed along with the preset package:

* [eslint-plugin-jsx-a11y](https://github.com/jsx-eslint/eslint-plugin-jsx-a11y#supported-rules) (with rule names prefixed by `jsx-a11y/`)
* [eslint-plugin-react](https://github.com/jsx-eslint/eslint-plugin-react#list-of-supported-rules) (only for generic JSX rules, with rule names prefixed by `react/`)
* [eslint-plugin-solid](https://github.com/solidjs-community/eslint-plugin-solid#rules) (with rule names prefixed by `solid/`)

Additionally, it includes the following preset:

* [@rainstormy/presets-eslint-jsx](https://github.com/rainstormy/presets-web/tree/main/packages/presets-eslint-jsx)

## Installation
Install the `@rainstormy/presets-eslint-solid` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-eslint-solid @rainstormy/presets-eslint eslint typescript
```

```shell
pnpm install --save-dev @rainstormy/presets-eslint-solid @rainstormy/presets-eslint eslint typescript
```

```shell
yarn add --dev @rainstormy/presets-eslint-solid @rainstormy/presets-eslint eslint typescript
```

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) and apply the `eslintPresetSolid` preset.

For example (with the default options in comments):

```javascript
import { eslintPresets } from "@rainstormy/presets-eslint"
import { eslintPresetSolid } from "@rainstormy/presets-eslint-solid"

export default eslintPresets({
	additionalPresets: [
		// ...other presets...
		eslintPresetSolid({
			// targetFilePatterns: ["**/*.@(jsx|tsx)"],
		}),
	],
})
```

### In Combination with Storybook, Tailwind CSS, and Testing Library
For example (with the default options applied):

```javascript
import {
	eslintPresetAmbientTypeScriptModules,
	eslintPresetTestData,
	eslintPresets,
} from "@rainstormy/presets-eslint"
import { eslintPresetSolid } from "@rainstormy/presets-eslint-solid"
import { eslintPresetStorybook } from "@rainstormy/presets-eslint-storybook"
import { eslintPresetTailwind } from "@rainstormy/presets-eslint-tailwind"
import { eslintPresetTestingLibrary } from "@rainstormy/presets-eslint-testing-library"
import { eslintPresetVitest } from "@rainstormy/presets-eslint-vitest"

export default eslintPresets({
	additionalPresets: [
		eslintPresetAmbientTypeScriptModules(),
		eslintPresetSolid(),
		eslintPresetStorybook(),
		eslintPresetTailwind(),
		eslintPresetTestData(),
		eslintPresetTestingLibrary(),
		eslintPresetVitest(),
	],
})
```
npm package: @rainstormy/presets-eslint-storybook
Description: A predefined, opinionated ESLint configuration suitable for any web project with Storybook stories.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Storybook Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with [Storybook](https://storybook.js.org) stories.

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-storybook](https://github.com/storybookjs/eslint-plugin-storybook) (with rule names prefixed by `storybook/`)

## Installation
Install the `@rainstormy/presets-eslint-storybook` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-eslint-storybook @rainstormy/presets-eslint eslint typescript
```

```shell
pnpm install --save-dev @rainstormy/presets-eslint-storybook @rainstormy/presets-eslint eslint typescript
```

```shell
yarn add --dev @rainstormy/presets-eslint-storybook @rainstormy/presets-eslint eslint typescript
```

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) and apply the `eslintPresetStorybook`, `eslintPresetStorybookConfiguration`, and `eslintPresetTestData` presets.

For example (with the default options in comments):

```javascript
import {
	eslintPresetTestData,
	eslintPresets,
} from "@rainstormy/presets-eslint"
import {
	eslintPresetStorybook,
	eslintPresetStorybookConfiguration,
} from "@rainstormy/presets-eslint-storybook"

export default eslintPresets({
	additionalPresets: [
		// ...other presets...
		eslintPresetStorybook({
			// targetFilePatterns: ["**/*.stories.@(js|jsx|ts|tsx)"],
		}),
		eslintPresetStorybookConfiguration({
			// targetFilePatterns: [".storybook/**/*.@(js|jsx|ts|tsx)"],
		}),
		eslintPresetTestData({
			// targetFilePatterns: [
			//     "**/*.@(spec|specs|stories|test|testdata|tests).@(js|jsx|ts|tsx)",
			// ],
		}),
	],
})
```
npm package: @rainstormy/presets-eslint-tailwind
Description: A predefined, opinionated ESLint configuration suitable for any web project with Tailwind CSS classes.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Tailwind CSS Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with [Tailwind CSS](https://tailwindcss.com) classes.

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-tailwindcss](https://github.com/francoismassart/eslint-plugin-tailwindcss#supported-rules) (with rule names prefixed by `tailwind/`)

## Installation
Install the `@rainstormy/presets-eslint-tailwind` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-eslint-tailwind @rainstormy/presets-eslint eslint typescript tailwindcss
```

```shell
pnpm install --save-dev @rainstormy/presets-eslint-tailwind @rainstormy/presets-eslint eslint typescript tailwindcss
```

```shell
yarn add --dev @rainstormy/presets-eslint-tailwind @rainstormy/presets-eslint eslint typescript tailwindcss
```

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) and apply the `eslintPresetTailwind` preset.

For example (with the default options in comments):

```javascript
import { eslintPresets } from "@rainstormy/presets-eslint"
import { eslintPresetTailwind } from "@rainstormy/presets-eslint-tailwind"

export default eslintPresets({
	additionalPresets: [
		// ...other presets...
		eslintPresetTailwind({
			// targetFilePatterns: ["**/*.@(jsx|tsx)"],
		}),
	],
})
```
npm package: @rainstormy/presets-eslint-testing-library
Description: A predefined, opinionated ESLint configuration suitable for any web project with Testing Library tests.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Testing Library Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with [Testing Library](https://testing-library.com) tests.

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-testing-library](https://github.com/testing-library/eslint-plugin-testing-library#supported-rules) (with rule names prefixed by `testing-library/`)

## Installation
Install the `@rainstormy/presets-eslint-testing-library` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-eslint-testing-library @rainstormy/presets-eslint eslint typescript
```

```shell
pnpm install --save-dev @rainstormy/presets-eslint-testing-library @rainstormy/presets-eslint eslint typescript
```

```shell
yarn add --dev @rainstormy/presets-eslint-testing-library @rainstormy/presets-eslint eslint typescript
```

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) and apply the `eslintPresetTestData` and `eslintPresetTestingLibrary` presets.

For example (with the default options in comments):

```javascript
import {
	eslintPresetTestData,
	eslintPresets,
} from "@rainstormy/presets-eslint"
import { eslintPresetTestingLibrary } from "@rainstormy/presets-eslint-testing-library"

export default eslintPresets({
	additionalPresets: [
		// ...other presets...
		eslintPresetTestData({
			// targetFilePatterns: [
			//     "**/*.@(spec|specs|stories|test|testdata|tests).@(js|jsx|ts|tsx)",
			// ],
		}),
		eslintPresetTestingLibrary({
			// targetFilePatterns: ["**/*.@(spec|specs|test|tests).@(jsx|tsx)"],
		}),
	],
})
```
npm package: @rainstormy/presets-eslint-vitest
Description: A predefined, opinionated ESLint configuration suitable for any web project with Vitest suites.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Vitest Preset for ESLint

This package provides a predefined, opinionated [ESLint](https://eslint.org) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with [Vitest](https://vitest.dev) suites.

This preset configures a subset of rules from the following plugin, which is installed along with the preset package:

* [eslint-plugin-vitest](https://github.com/veritem/eslint-plugin-vitest#rules) (with rule names prefixed by `vitest/`)

## Installation
Install the `@rainstormy/presets-eslint-vitest` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-eslint-vitest @rainstormy/presets-eslint eslint typescript vitest
```

```shell
pnpm install --save-dev @rainstormy/presets-eslint-vitest @rainstormy/presets-eslint eslint typescript vitest
```

```shell
yarn add --dev @rainstormy/presets-eslint-vitest @rainstormy/presets-eslint eslint typescript vitest
```

## Usage
Create or extend a [flat ESLint configuration file](https://eslint.org/docs/latest/use/configure/configuration-files-new) (`eslint.config.js`) and apply the `eslintPresetTestData` and `eslintPresetVitest` presets.

For example (with the default options in comments):

```javascript
import {
	eslintPresetTestData,
	eslintPresets,
} from "@rainstormy/presets-eslint"
import { eslintPresetVitest } from "@rainstormy/presets-eslint-vitest"

export default eslintPresets({
	additionalPresets: [
		// ...other presets...
		eslintPresetTestData({
			// targetFilePatterns: [
			//     "**/*.@(spec|specs|stories|test|testdata|tests).@(js|jsx|ts|tsx)",
			// ],
		}),
		eslintPresetVitest({
			// targetFilePatterns: ["**/*.@(spec|specs|test|tests).@(js|jsx|ts|tsx)"],
		}),
	],
})
```
npm package: @rainstormy/presets-prettier
Description: A predefined, opinionated Prettier configuration suitable for any TypeScript project.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# General Preset for Prettier

This package provides a predefined, opinionated [Prettier](https://prettier.io) configuration suitable for any [TypeScript](https://www.typescriptlang.org) project.

This preset includes the following plugins, which are installed along with the preset package:

* [prettier-plugin-organize-imports](https://github.com/simonhaenisch/prettier-plugin-organize-imports)
* [prettier-plugin-packagejson](https://github.com/matzkoh/prettier-plugin-packagejson)

## Installation
Install the `@rainstormy/presets-prettier` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-prettier prettier typescript
```

```shell
pnpm install --save-dev @rainstormy/presets-prettier prettier typescript
```

```shell
yarn add --dev @rainstormy/presets-prettier prettier typescript
```

## Usage
Create or extend a [Prettier configuration file](https://prettier.io/docs/en/configuration.html) (`prettier.config.js`) and export the result of `prettierPresets` as the configuration object.

For example (with the default options in comments):

```javascript
import { prettierPresets } from "@rainstormy/presets-prettier"

export default prettierPresets({
	// additionalPresets: [],
})
```
npm package: @rainstormy/presets-prettier-css
Description: A predefined, opinionated Prettier configuration suitable for any web project with CSS declarations.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# CSS Preset for Prettier

This package provides a predefined, opinionated [Prettier](https://prettier.io) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with CSS declarations.

This preset includes the following plugin, which is installed along with the preset package:

* [prettier-plugin-css-order](https://github.com/Siilwyn/prettier-plugin-css-order)

## Installation
Install the `@rainstormy/presets-prettier-css` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-prettier-css postcss prettier
```

```shell
pnpm install --save-dev @rainstormy/presets-prettier-css postcss prettier
```

```shell
yarn add --dev @rainstormy/presets-prettier-css postcss prettier
```

## Usage
Create or extend a [Prettier configuration file](https://prettier.io/docs/en/configuration.html) (`prettier.config.js`) and apply the `prettierPresetCss` preset.

For example:

```javascript
import { prettierPresets } from "@rainstormy/presets-prettier"
import { prettierPresetCss } from "@rainstormy/presets-prettier-css"

export default prettierPresets({
	additionalPresets: [
		// ...other presets...
		prettierPresetCss(),
	],
})
```

### In Combination with Tailwind CSS
For example:

```javascript
import { prettierPresets } from "@rainstormy/presets-prettier"
import { prettierPresetCss } from "@rainstormy/presets-prettier-css"
import { prettierPresetTailwind } from "@rainstormy/presets-prettier-tailwind"

export default prettierPresets({
	additionalPresets: [
		prettierPresetCss(),
		prettierPresetTailwind(),
	],
})
```
npm package: @rainstormy/presets-prettier-tailwind
Description: A predefined, opinionated Prettier configuration suitable for any web project with Tailwind CSS classes.
Author: Steffen Diswal
Latest version: 1.0.0-rc.0

# Tailwind CSS Preset for Prettier

This package provides a predefined, opinionated [Prettier](https://prettier.io) configuration suitable for any [TypeScript](https://www.typescriptlang.org)-based web project with [Tailwind CSS](https://tailwindcss.com) classes.

This preset includes the following plugin, which is installed along with the preset package:

* [prettier-plugin-tailwindcss](https://github.com/tailwindlabs/prettier-plugin-tailwindcss)

## Installation
Install the `@rainstormy/presets-prettier-tailwind` package and its peer dependencies:

```shell
npm install --save-dev @rainstormy/presets-prettier-tailwind prettier
```

```shell
pnpm install --save-dev @rainstormy/presets-prettier-tailwind prettier
```

```shell
yarn add --dev @rainstormy/presets-prettier-tailwind prettier
```

## Usage
Create or extend a [Prettier configuration file](https://prettier.io/docs/en/configuration.html) (`prettier.config.js`) and apply the `prettierPresetTailwind` preset.

For example:

```javascript
import { prettierPresets } from "@rainstormy/presets-prettier"
import { prettierPresetTailwind } from "@rainstormy/presets-prettier-tailwind"

export default prettierPresets({
	additionalPresets: [
		// ...other presets...
		prettierPresetTailwind(),
	],
})
```

### In Combination with CSS Declarations
For example:

```javascript
import { prettierPresets } from "@rainstormy/presets-prettier"
import { prettierPresetCss } from "@rainstormy/presets-prettier-css"
import { prettierPresetTailwind } from "@rainstormy/presets-prettier-tailwind"

export default prettierPresets({
	additionalPresets: [
		prettierPresetCss(),
		prettierPresetTailwind(),
	],
})
```
npm package: @rainstormy/presets-typescript
Description: Predefined, opinionated TypeScript configurations suitable for any TypeScript project.
Author: Steffen Diswal
Latest version: 1.1.0

# Opinionated Presets for TypeScript

This package provides predefined,
opinionated [TypeScript](https://www.typescriptlang.org) configurations to be
applied to the [`extends`](https://www.typescriptlang.org/tsconfig#extends)
property in `tsconfig.json`.

## Installation
Install the [`typescript`](https://www.npmjs.com/package/typescript)
and [`@rainstormy/presets-typescript`](https://www.npmjs.com/package/@rainstormy/presets-typescript)
packages with the package manager of your choice:

```shell
npm install --save-dev typescript @rainstormy/presets-typescript
```
```shell
pnpm add --save-dev typescript @rainstormy/presets-typescript
```
```shell
yarn add --dev typescript @rainstormy/presets-typescript
```

## Usage
Create a [`tsconfig.json`](https://www.typescriptlang.org/tsconfig) file and
extend `@rainstormy/presets-typescript/base` to enable type-checking in general.

In addition to this, you can extend some of the following configurations to
refine the TypeScript settings for your project:

| Configuration                                | Description                                               |
|----------------------------------------------|-----------------------------------------------------------|
| `@rainstormy/presets-typescript/es2023`      | Targets browser apps, full-stack apps, and npm libraries. |
| `@rainstormy/presets-typescript/es2023-node` | Targets Node.js apps.                                     |
| `@rainstormy/presets-typescript/dts+js`      | Generates `js` and `d.ts` files.                          |
| `@rainstormy/presets-typescript/dts`         | Generates `d.ts` files only.                              |

You can override the predefined settings by specifying the desired options like
`compilerOptions` and `include` as usual.

For example:

```json
{
  "$schema": "https://json.schemastore.org/tsconfig",
  "extends": [
    "@rainstormy/presets-typescript/base",
    "@rainstormy/presets-typescript/es2023",
    "@rainstormy/presets-typescript/dts+js"
  ],
  "compilerOptions": {
    "baseUrl": "./",
    "incremental": true,
    "noEmitOnError": false,
    "outDir": "dist",
    "sourceMap": true
  },
  "include": ["./src/**/*.ts", "./*.config.js", "./*.config.ts"]
}
```

### Eject from the preset
Copy the relevant parts of
the [preset source files](https://github.com/rainstormy/presets-typescript/tree/main/src)
and insert them directly into the `tsconfig.json` file. Make adjustments as
needed.