JSPM

  • Created
  • Published
  • Downloads 173
  • Score
    100M100P100Q81501F
  • License MIT

Yet another customizable Standard for TypeScript.

Package Exports

  • ts-standardx

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

ts-standardx [WIP]

Yet another customizable Standard for TypeScript.

npm Libraries.io dependency status for latest release Renovate enabled

Description

Todo

Install

npm install --save-dev ts-standardx

CLI

Lint using ESLint.

npx ts-standardx

Fix and format using ESLint and Prettier.

npx ts-standardx --fix

Help

ts-standardx: Yet another customizable Standard for TypeScript. (https://github.com/exuanbo/ts-standardx#readme)

usage: ts-standardx <flags> [FILES...]

  If FILES is omitted, all source files (*.js, *.jsx, *.mjs, *.cjs, *.ts)
  in the current working directory will be checked recursively.

  Certain paths dist/, coverage/, files/folders that begin with '.'
  like .git/ and paths in the project's root .gitignore are ignored by default.

Basic:
  --fix          Automatically fix problems
  --verbose      Show rule names for errors (to ignore specific rules)
  -v, --version  Show current version
  -h, --help     Show usage information

Advanced:
  --stdin        Read file text from stdin
  --ext          Specify JavaScript file extensions
  --global       Declare global variable
  --plugin       Use custom eslint plugin
  --env          Use custom eslint environment
  --parser       Use custom js parser (e.g. babel-eslint)

API

// index.d.ts

import { ProvidedOptions, Linter, CLI } from 'standard-engine-ts'

declare const opts: ProvidedOptions

declare const linter: Linter
declare const cli: CLI

export { cli, linter, opts }

Details

This package includes:

  • @typescript-eslint/eslint-plugin
  • @typescript-eslint/parser
  • eslint
  • eslint-config-prettier
  • eslint-config-standard
  • eslint-config-standard-with-typescript
  • eslint-plugin-import
  • eslint-plugin-node
  • eslint-plugin-prettier
  • eslint-plugin-promise
  • eslint-plugin-standard
  • prettier
  • standard-engine-ts
// .eslintrc.js

const { existsSync } = require('fs')
const { join } = require('path')
const rootPath = require('standard-engine-ts').getRootPath()

const getTsconfig = () => {
  const filePath = join(rootPath, 'tsconfig.json')
  return (existsSync(filePath) && filePath) || undefined
}

module.exports = {
  extends: ['standard', 'plugin:prettier/recommended', 'prettier/standard'],
  parser: '@typescript-eslint/parser',
  plugins: ['prettier'],
  rules: {
    'prettier/prettier': ['error', require('./.prettierrc.js')]
  },
  overrides: [
    {
      files: ['**/*.ts'],
      extends: ['standard-with-typescript', 'prettier/@typescript-eslint'],
      parserOptions: {
        project: getTsconfig() || './tsconfig.json'
      }
    }
  ]
}
// .prettierrc.js

module.exports = {
  arrowParens: 'avoid',
  bracketSpacing: true,
  jsxBracketSameLine: true,
  semi: false,
  singleQuote: true,
  tabWidth: 2,
  trailingComma: 'none'
}

Todo

  • Unit testing
  • Detailed Documentation
  • Better intergration with Prettier

License

MIT License © 2020 Exuanbo