GithubHelp home page GithubHelp logo

jimmywarting / ts-standard Goto Github PK

View Code? Open in Web Editor NEW

This project forked from standard/ts-standard

0.0 2.0 0.0 283 KB

Typescript style guide, linter, and formatter using StandardJS

Home Page: https://www.npmjs.com/package/ts-standard

License: MIT License

JavaScript 0.06% TypeScript 99.74% Shell 0.20%

ts-standard's Introduction

Tests Coverage Status npm npm License TS-Standard - Typescript Standard Style Guide Dependabot badge

ts-standard

TypeScript Style Guide, with linter and automatic code fixer based on StandardJS

๐Ÿ’พ Install

npm install ts-standard

โŒจ๏ธ Basic Usage

ts-standard

Enable auto code fixing

ts-standard --fix

Note: A tsconfig.json or similar project file is required. See TSConfig section below for more details

๐Ÿ“œ Help

ts-standard - Standard for Typescript! (https://github.com/standard/ts-standard)

Usage:
    ts-standard <flags> [FILES...]
    If FILES is omitted, all JavaScript/Typescript source files (*.js, *.jsx, *.mjs, *.cjs, *.ts)
    in the current working directory are checked, recursively.
    Certain paths (node_modules/, coverage/, vendor/, *.min.js, bundle.js, and
    files/folders that begin with '.' like .git/) are automatically ignored.
    Paths in a project's root .gitignore file are also automatically ignored.
Flags:
        --fix           Automatically fix problems
    -p, --project       Specify ts-config location (default: ./tsconfig.eslint.json or ./tsconfig.json)
        --version       Show current version
    -h, --help          Show usage information
Flags (advanced):
        --stdin         Read file text from stdin
        --globals       Declare global variable
        --plugins       Use custom eslint plugin
        --envs          Use custom eslint environment
        --parser        Use custom ts/js parser (default: @typescript-eslint/parser)
        --report        Use a built-in eslint reporter or custom eslint reporter (default: standard)
 --ext, --extensions    List of files extensions to lint by default (default: js,jsx,ts,tsx,mjs,cjs)

๐Ÿงฌ TSConfig: Linting with Type Information

By default ts-standard will search the current working director (cwd) for the following in order

  1. tsconfig.eslint.json
  2. tsconfig.json

You can also manually configure the location of the tsconfig file by either passing the path to the --project flag or adding a ts-standard configuration property to your package.json file.

{
  "ts-standard": {
    "project": "path/to/tsconfig.json"
  }
}

Its possible to specify multiple projects using an array as in the underlying parser.

๐Ÿ—‘ Ignoring files and folders

You can ignore files and folders by either providing specific files/globs of the files you want linted to ts-standard when running the command or you can add an ignore property to your package.json ts-standard configuration settings.

{
  "ts-standard": {
    "ignore": [
      "dist",
      "src/**/*.js"
    ]
  }
}

๐ŸŽ› Package.json Options

{
  "ts-standard": {
    "ignore": [""],             // files/folders/globs to ignore
    "noDefaultIgnore": false,   // disable ignoring default locations (e.g. node_modules, .git, etc...)
    "globals": [""],            // global variables to define (e.g. $, jquery, etc...)
    "plugins": [""],            // Extra eslint plugins to use
    "envs": [""],               // eslint environments to use (e.g. node, browser, etc...)
    "parser": "",               // a different eslint parser to use (e.g. babel, etc...)
    "cwd": "",                  // the root working directory where the project file is located
    "eslint": "",               // path to a custom eslint linter
    "files": [""],              // files/folders/globs to include in the linting
    "project": "", or [""]      // relative path to `tsconfig.json` file
    "fix": false,               // auto fix any lint errors found that are fixable
    "report": "",               // an eslint formatter to output the lint results as (e.g. standard, stylish, json, etc...)
    "extensions": "",           // a list of file extensions to lint by default (e.g. js,jsx,ts,tsx,mjs,cjs)
  }
}

๐Ÿšซ Please change X rule

This project has no control over the rules implemented, as such this project cannot change any of the rules that have been configured. If you want to discuss the rules, please visit the rules configuration repo eslint-config-standard-with-typescript.

๐Ÿง™ Why

This utility was designed to be the standard equivalent for typescript. Underneath the hood, this utility uses the same standard-engine and combines that engine with the official eslint-config-standard-with-typescript ruleset.

You can also choose to just use eslint with the eslint-config-standard-with-typescript shareable config instead and achieve the same results as this project. But ts-standard saves you from having to manually install all the extra dependencies and may reduce configuration overhead.

๐ŸŽ‰ Special Thanks

Special thanks to standard for inspiration and some shared code and to eslint-config-standard-with-typescript for creating a typescript specific standard.

๐Ÿ“‹ Contributing Guide

I welcome all pull requests. Please make sure you add appropriate test cases for any features added. Before opening a PR please make sure to run the following scripts:

  • npm run lint checks for code errors and format according to ts-standard
  • npm test make sure all tests pass
  • npm run coverage make sure the coverage has not decreased from current master

ts-standard's People

Contributors

dependabot-preview[bot] avatar dependabot[bot] avatar greenkeeper[bot] avatar linusu avatar luisenmarroquin avatar mcfedr avatar theoludwig avatar toddbluhm avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.