Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/songkeys/tsconfig-to-swcconfig

Convert tsconfig to swc config
https://github.com/songkeys/tsconfig-to-swcconfig

Last synced: 7 days ago
JSON representation

Convert tsconfig to swc config

Awesome Lists containing this project

README

        

# tsconfig-to-swcconfig

[![NPM version](https://img.shields.io/npm/v/tsconfig-to-swcconfig.svg?style=flat)](https://npmjs.org/package/tsconfig-to-swcconfig)
[![NPM downloads](https://img.shields.io/npm/dm/tsconfig-to-swcconfig.svg?style=flat)](https://npmjs.org/package/tsconfig-to-swcconfig)

Convert tsconfig to swc config.

> Why?
>
> (https://github.com/swc-project/swc/issues/1348)
>
> `swc` has no plans to support `tsconfig.json`, but it could be useful in some cases. For example, migrating from `tsc` to `swc` in a large project, you can use this tool to convert `tsconfig.json` to `.swcrc`, and then modify the `.swcrc` to make it work.

## Install

```bash
npm i tsconfig-to-swcconfig
```

## Usage

## Convert config in a tsconfig file

```typescript
import { convert } from 'tsconfig-to-swcconfig'

const swcConfig = convert() // will look for tsconfig under the cwd and convert it to swc config
```

Advanced options:

```typescript
import { convert } from 'tsconfig-to-swcconfig'

convert('tsconfig-filename.json', process.cwd(), {
// more swc config to override...
minify: true,
})
```

## Convert tsconfig value

Convert tsconfig value directly:

```typescript
import { convertTsConfig } from 'tsconfig-to-swcconfig'

const swcConfig = convertTsConfig({
module: 'commonjs',
target: 'es2018',
strict: true,
esModuleInterop: true,
})
```

Advanced usage:

```typescript
import { convertTsConfig } from 'tsconfig-to-swcconfig'

const swcConfig = convertTsConfig(
{ target: 'es2018' }, // tsconfig
{ minify: true }, // more swc config to override...
)
```

## CLI

To use the CLI, install globally:

```bash
npm i -g tsconfig-to-swcconfig
```

Then run:

```bash
tsconfig-to-swcconfig --help
```

```bash
Usage: tsconfig-to-swcconfig [options]
Alias: t2s [options]

Options:
-f, --filename filename to tsconfig (default: "tsconfig.json")
-c, --cwd cwd (default: process.cwd())
-o, --output output file (default: stdout)
-s, --set = set additional swcrc options
-h, --help display help for command
```

Instead of installing globally, you can also use `npx` to run the CLI without installing:

```bash
npx tsconfig-to-swcconfig -f tsconfig.json -c /path/to/project -o swc.config.js
```

## License

MIT