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: # from https://www.typescriptlang.org/docs/handbook/compiler-options.html - 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: $data: "2/target" target: type: string enum: [esnext, es2017, es2016, es5, es3]