1
0
Fork 0
salty-dog/rules/tsconfig.yml

121 lines
2.9 KiB
YAML

name: salty-dog-tsconfig
rules:
- name: allow-errors
desc: do not suppress errors
level: info
tags:
- tsconfig
- errors
select: '$.compilerOptions'
check:
not:
anyOf:
- required: [suppressExcessPropertyErrors]
- required: [suppressImplicitAnyIndexErrors]
- name: redundant-strict
desc: omit redundant strict mode options
level: info
tags:
- tsconfig
- strict
select: '$.compilerOptions'
filter:
type: object
required: [strict]
properties:
strict:
type: boolean
const: true
check:
not:
anyOf:
- required: [alwaysStrict]
- required: [noImplicitAny]
- required: [noImplicitThis]
- required: [strictBindCallApply]
- required: [strictNullChecks]
- required: [strictFunctionTypes]
- required: [strictPropertyInitialization]
- name: target-lib
desc: ensure the target and lib match
level: info
tags:
- tsconfig
- target
select: '$.compilerOptions'
filter:
type: object
required: [lib, target]
properties:
lib:
type: array
target:
type: string
pattern: "^es([0-9]+|next)$"
check:
allOf:
- type: object
required: [lib, target]
properties:
lib:
type: array
items:
type: string
target:
type: string
- oneOf:
- properties:
lib:
contains:
type: string
const: esnext
target:
type: string
const: esnext
- properties:
lib:
contains:
type: string
const: es2017
target:
type: string
const: es2017
- properties:
lib:
contains:
type: string
const: es2016
target:
type: string
const: es2016
- properties:
lib:
contains:
type: string
enum: [es2015, es6]
target:
type: string
enum: [es2015, es6]
- properties:
lib:
contains:
type: string
const: es5
target:
type: string
const: es5
- properties:
lib:
contains:
type: string
const: es3
target:
type: string
const: es3