Skip to content

songkeys/tsconfig-to-swcconfig

Repository files navigation

tsconfig-to-swcconfig

NPM version NPM downloads

Convert tsconfig to swc config.

Why?

(swc-project/swc#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

npm i tsconfig-to-swcconfig

Usage

Convert config in a tsconfig file

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

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

Advanced options:

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:

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

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

Advanced usage:

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:

npm i -g tsconfig-to-swcconfig

Then run:

tsconfig-to-swcconfig --help
Usage: tsconfig-to-swcconfig [options]
Alias: t2s [options]

Options:
  -f, --filename <filename>  filename to tsconfig (default: "tsconfig.json")
  -c, --cwd <cwd>            cwd (default: process.cwd())
  -o, --output <output>      output file (default: stdout)
  -s, --set <name>=<value>   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:

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

License

MIT