TypeScript Formatter (tsfmt)
A TypeScript code formatter powered by TypeScript Compiler Service.
$ tsfmt --help Usage: tsfmt [options] [--] [files...] Options: -r, --replace replace .ts file --verify checking file format --baseDir <path> config file lookup from <path> --stdin get formatting content from stdin --no-tsconfig don't read a tsconfig.json --no-tslint don't read a tslint.json --no-editorconfig don't read a .editorconfig --no-vscode don't read a .vscode/settings.json --no-tsfmt don't read a tsfmt.json --useTsconfig <path> using specified config file instead of tsconfig.json --useTslint <path> using specified config file instead of tslint.json --useTsfmt <path> using specified config file instead of tsfmt.json --verbose makes output more verbose
Installation
npm install -g typescript-formatter
Usage
Format or verify specific TypeScript files
$ cat sample.tsclass Sample {hello{return "Hello, "+word;}}new
# basic. read file, output to stdout. $ tsfmt sample.tsclass Sample
# from stdin. read from stdin, output to stdout. $ cat sample.ts | tsfmt --stdinclass Sample
# replace. read file, and replace file. $ tsfmt -r sample.tsreplaced sample.ts$ cat sample.tsclass Sample
# verify. checking file format. $ tsfmt --verify sample.tssample.ts is not formatted$ echo $?1
Reformat all files in a TypeScript project
If no files are specified on the command line but a TypeScript project file (tsconfig.json) exists, the list of files will be read from the project file.
# reads list of files to format from tsconfig.json tsfmt -r
Read Settings From Files
1st. Read settings from tsfmt.json. Below is the example with default values:
2nd. Read settings from tsconfig.json (tsconfig.json)
{ "compilerOptions": { "newLine": "LF" }}
3rd. Read settings from .editorconfig (editorconfig)
# EditorConfig is awesome: http://EditorConfig.org # top-most EditorConfig fileroot = true # Unix-style newlines with a newline ending every file[*]indent_style = tabtab_width = 2end_of_line = lfcharset = utf-8trim_trailing_whitespace = trueinsert_final_newline = true
4th. Read settings from tslint.json (tslint)
5th. Read settings from .vscode/settings.json (VisualStudio Code)
Read Settings Rules
$ tree -a
.
├── .vscode
│ └── settings.json
├── foo
│ ├── bar
│ │ ├── .editorconfig
│ │ └── buzz.ts
│ ├── fuga
│ │ ├── piyo.ts
│ │ └── tsfmt.json
│ └── tsfmt.json
└── tslint.json
4 directories, 7 files
- exec
$ tsfmt -r foo/bar/buzz.ts foo/fuga/piyo.ts
- for foo/bar/buzz.ts, read foo/tsfmt.json and foo/bar/.editorconfig and ./tslint.json and .vscode/settings.json
- for foo/fuga/piyo.ts, read foo/fuga/tsfmt.json and ./tslint.json and .vscode/settings.json
Change Log
See CHANGELOG