extends: "tslint:recommended" rules: semicolon: [true, "always", "ignore-interfaces"] # Due to VSCode syntax highlighting we're unlikely to do this wrong, and it gets annoying # when trying to construct literal Fn::Sub() arguments. no-invalid-template-strings: false # No preference for quotes (?) quotemark: false # Our props struct currently don't start with "I" interface-name: false # We're not Java max-classes-per-file: false # We have this wrong on all classes, keep it a warning for now member-access: severity: warning # Rule is dumb, complains about aliases for interface definitions interface-over-type-literal: false # File should end with a newline. Why? eofline: false # Way more readable without arrow-parens: false # We're using namespaces. no-namespace: false # The lines with CloudFormation doc links are quite long max-line-length: [true, 150] # Super annoying object-literal-sort-keys: false # Trailing comma gets into a fight with itself when splitting lists over multiple lines trailing-comma: false # We create Constructs for their side effect all the time no-unused-expression: [true, "allow-new"] # Without this rule, _blabla would be disallowed, which is necessary to silence unused variable errors. # Allow Pascal Case for static variables variable-name: [true, "ban-keywords", "check-format", "allow-leading-underscore", "allow-pascal-case"] # Unhandled promises are the source of all kinds of bugs and race conditions... no-floating-promises: ["Promise"] # We require empty interfaces for AWS construct guideline compliance no-empty-interface: false # Cleaner imports no-duplicate-imports: error