Share your code. npm Orgs help your team discover, share, and reuse code. Create a free org »

    typescript-formatterpublic

    TypeScript Formatter (tsfmt)

    npm Build Status Dependency Status npm GitHub stars

    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'read a tslint.json
        --no-editorconfig     don't read a .editorconfig
        --no-vscode           don'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.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

    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:

    {
      "baseIndentSize": 0,
      "indentSize": 4,
      "tabSize": 4,
      "indentStyle": 2,
      "newLineCharacter": "\r\n",
      "convertTabsToSpaces": true,
      "insertSpaceAfterCommaDelimiter": true,
      "insertSpaceAfterSemicolonInForStatements": true,
      "insertSpaceBeforeAndAfterBinaryOperators": true,
      "insertSpaceAfterConstructor": false,
      "insertSpaceAfterKeywordsInControlFlowStatements": true,
      "insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
      "insertSpaceAfterOpeningAndBeforeClosingNonemptyBraces": true,
      "insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
      "insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false,
      "insertSpaceAfterTypeAssertion": false,
      "insertSpaceBeforeFunctionParenthesis": false,
      "placeOpenBraceOnNewLineForFunctions": false,
      "placeOpenBraceOnNewLineForControlBlocks": false,
      "insertSpaceBeforeTypeAnnotation": true
    }

    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 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

    4th. Read settings from tslint.json (tslint)

    {
      "rules": {
        "indent": [true, 4],
        "whitespace": [true,
          "check-branch",
          "check-operator",
          "check-separator",
          "check-typecast"
        ]
      }
    }

    5th. Read settings from .vscode/settings.json (VisualStudio Code)

    {
      // Place your settings in this file to overwrite default and user settings.
      "typescript.format.enable": true,
      "typescript.format.insertSpaceAfterCommaDelimiter": true,
      "typescript.format.insertSpaceAfterSemicolonInForStatements": true,
      "typescript.format.insertSpaceBeforeAndAfterBinaryOperators": true,
      "typescript.format.insertSpaceAfterKeywordsInControlFlowStatements": true,
      "typescript.format.insertSpaceAfterFunctionKeywordForAnonymousFunctions": false,
      "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyParenthesis": false,
      "typescript.format.insertSpaceAfterOpeningAndBeforeClosingNonemptyBrackets": false,
      "typescript.format.insertSpaceAfterOpeningAndBeforeClosingTemplateStringBraces": false,
      "typescript.format.insertSpaceAfterOpeningAndBeforeClosingJsxExpressionBraces": false,
      "typescript.format.placeOpenBraceOnNewLineForFunctions": false,
      "typescript.format.placeOpenBraceOnNewLineForControlBlocks": false
    }

    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
    
    1. exec $ tsfmt -r foo/bar/buzz.ts foo/fuga/piyo.ts
    2. for foo/bar/buzz.ts, read foo/tsfmt.json and foo/bar/.editorconfig and ./tslint.json and .vscode/settings.json
    3. for foo/fuga/piyo.ts, read foo/fuga/tsfmt.json and ./tslint.json and .vscode/settings.json

    Change Log

    See CHANGELOG

    Keywords

    install

    npm i typescript-formatter

    Downloadslast 7 days

    41,359

    version

    7.2.0

    license

    MIT

    repository

    github.com

    last publish

    collaborators

    • avatar