Package Exports
- typescript-formatter
- typescript-formatter/lib/formatter
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (typescript-formatter) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
TypeScript Formatter (tsfmt)

A TypeScript code formatter powered by TypeScript Compiler Service.
$ tsfmt
Usage: tsfmt [options] [--] [files...]
Options:
-r, --replace replace .ts file
--verify checking file format
--stdin get formatting content from stdin
--no-tslint don't read a tslint.json
--no-editorconfig don't read a .editorconfig
--no-tsfmt don't read a tsfmt.json
--verbose makes output more verbose
Installation
npm install -g typescript-formatter
Usage
$ cat sample.ts
class Sample {hello(word="world"){return "Hello, "+word;}}
new Sample().hello("TypeScript");
# basic. read file, output to stdout.
$ tsfmt sample.ts
class Sample { hello(word= "world") { return "Hello, " + word; } }
new Sample().hello("TypeScript");
# from stdin. read from stdin, output to stdout.
$ cat sample.ts | tsfmt --stdin
class Sample { hello(word= "world") { return "Hello, " + word; } }
new Sample().hello("TypeScript");
# replace. read file, and replace file.
$ tsfmt -r sample.ts
replaced sample.ts
$ cat sample.ts
class Sample { hello(word= "world") { return "Hello, " + word; } }
new Sample().hello("TypeScript");
# verify. checking file format.
$ tsfmt --verify sample.ts
sample.ts is not formatted
$ echo $?
1
Note
now indentSize
parameter is ignored. it is TypeScript compiler matters.
Read Settings From Files
1st. Read settings from tsfmt.json.
{
"indentSize": 4,
"tabSize": 4,
"newLineCharacter": "\r\n",
"convertTabsToSpaces": true,
"insertSpaceAfterCommaDelimiter": true,
"insertSpaceAfterSemicolonInForStatements": true,
"insertSpaceBeforeAndAfterBinaryOperators": true,
"insertSpaceAfterKeywordsInControlFlowStatements": true,
"insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
"insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
"placeOpenBraceOnNewLineForFunctions": false,
"placeOpenBraceOnNewLineForControlBlocks": false
}
2nd. Read settings from .editorconfig (editorconfig)
# EditorConfig is awesome: http://EditorConfig.org
# top-most EditorConfig file
root = true
# Unix-style newlines with a newline ending every file
[*]
indent_style = tab
tab_width = 2
end_of_line = lf
charset = utf-8
trim_trailing_whitespace = true
insert_final_newline = true
3rd. Read settings from tslint.json (tslint)
{
"rules": {
"indent": [true, 4]
"whitespace": [true,
"check-branch",
"check-operator",
"check-separator"
]
}
}
Read Settings Rules
$ tree -a
.
├── foo
│ ├── bar
│ │ ├── .editorconfig
│ │ └── buzz.ts
│ ├── fuga
│ │ ├── piyo.ts
│ │ └── tsfmt.json
│ └── tsfmt.json
└── tslint.json
3 directories, 6 files
- exec
$ tsfmt -r foo/bar/buzz.ts foo/fuga/piyo.ts
- for foo/bar/buzz.ts, read foo/tsfmt.json and foo/bar/.editorcondig and ./tslint.json
- for foo/fuga/piyo.ts, read foo/fuga/tsfmt.json and ./tslint.json
Change log
See CHANGELOG