Package Exports
- ts-standardx
- ts-standardx/.eslintrc.js
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 (ts-standardx) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Yet another configurable linter for TypeScript and JavaScript.
๐ Features
Todo
๐พ Install
npm install --save-dev ts-standardx
๐ค CLI
$ npx ts-standardx
To enable auto fix and format, use --fix
.
$ npx ts-standardx --fix
To lint text from stdin, use -
or --stdin
.
$ echo "const greet = ( ) => 'hi'" | npx ts-standardx -
output
<text>:1:7
error 'greet' is assigned a value but never used. no-unused-vars
<text>:1:17
error Delete `ยท` prettier/prettier
Run `ts-standardx --fix` to automatically fix some problems.
Add --fix
to output fixed text.
$ echo "const greet = ( ) => 'hi'" | npx ts-standardx - --fix
output
const greet = () => 'hi'
--help
ts-standardx: Yet another configurable linter for TypeScript and JavaScript. (https://github.com/exuanbo/ts-standardx#readme)
Usage: ts-standardx <flags> [FILES...]
If FILES is omitted, all source files (*.ts, *.tsx, *.js, *.jsx, *.mjs, *.cjs)
in the current working directory will be checked recursively.
By default, files/folders that begin with '.' like .eslintrc .cache/ and
paths in .gitignore are automatically ignored.
Basic:
--fix Automatically fix problems
Config:
--env Use custom eslint environment
--ext Specify file extensions
--global Declare global variable
--parser Use custom parser (e.g. babel-eslint)
--plugin Use custom eslint plugin
Input:
--stdin Read file text from stdin
--disable-gitignore Disable use of .gitignore by default
Misc:
-h, --help Show usage information
-v, --version Show current version
โจ๏ธ API
// index.d.ts
import {
ProvidedOptions,
Linter as Linter$1,
CLI as CLI$1
} from 'standard-engine-ts'
declare const options: ProvidedOptions
declare class Linter extends Linter$1 {
constructor(customOptions?: ProvidedOptions)
}
declare class CLI extends CLI$1 {
constructor(customOptions?: ProvidedOptions)
}
export { CLI, Linter, options }
โ๏ธ Configuration
ts-standardx
uses .eslintrc.*
from the current working directory. Note that rules for TypeScript need to be placed in overrides
as example below.
// .eslintrc.js
module.exports = {
overrides: [
{
files: ['**/*.ts', '**/*.tsx'],
rules: {
'@typescript-eslint/no-explicit-any': 'off'
}
}
]
}
Editor extension
Add the default config to extends
to use the official ESLint extension.
// .eslintrc.js
module.exports = {
extends: ['./node_modules/ts-standardx/.eslintrc.js']
}
But wait a second...
"So why can't I use npx eslint .
directly?" Yes, you can :p
๐ Details
This package includes:
- @typescript-eslint/eslint-plugin
- @typescript-eslint/parser
- eslint
- eslint-config-prettier
- eslint-config-standard
- eslint-config-standard-jsx
- eslint-plugin-import
- eslint-plugin-node
- eslint-plugin-prettier
- eslint-plugin-promise
- eslint-plugin-react
- prettier
- standard-engine-ts
eslintrc.ts
import { Linter } from 'eslint'
import { compatRules } from './compatRules'
import { rules } from './rules'
import { isModuleAvailable } from './utils'
const PRETTIER_STANDARD = {
arrowParens: 'avoid',
bracketSpacing: true,
jsxBracketSameLine: true,
semi: false,
singleQuote: true,
tabWidth: 2,
trailingComma: 'none'
}
const eslintrc: Linter.BaseConfig = {
extends: ['standard', 'standard-jsx', 'plugin:prettier/recommended'],
overrides: isModuleAvailable('typescript')
? [
{
files: ['**/*.ts', '**/*.tsx'],
extends: ['plugin:@typescript-eslint/recommended'],
parser: '@typescript-eslint/parser',
parserOptions: {
project: './tsconfig.json'
},
rules: {
...compatRules,
...rules
}
}
]
: undefined,
rules: {
'prettier/prettier': ['error', PRETTIER_STANDARD]
}
}
export default eslintrc
๐ค Why
Todo
๐ Todo
- Document
- Allow specify
parserOptions: { project: './tsconfig.json' }
- Better integrate with Prettier
License
MIT License ยฉ 2021 Exuanbo