'use strict'

module.exports = {
  extends: ['plugin:flowtype/recommended'],
  plugins: ['eslint-plugin-flowtype'],
  rules: {
    // no trailing comma
    'flowtype/delimiter-dangle': ['error', 'never'],
    // no duplicated key
    'flowtype/no-dupe-keys': 'error',
    // use boolean instead of Boolean
    'flowtype/no-primitive-constructor-types': 'error',
    'flowtype/no-unused-expressions': 'error',
    'flowtype/no-weak-types': [
      'error',
      {
        any: false,
        Object: false
      }
    ],
    // use `,` for object separator
    'flowtype/object-type-delimiter': 'error',
    // use `{| key: type |}` to define exact object type, no extra key can pass through
    'flowtype/require-exact-type': 'error',
    'flowtype/require-valid-file-annotation': ['error', 'never', {annotationStyle: 'line'}],
    'flowtype/semi': ['error', 'never'],
    'flowtype/sort-keys': 'error'
  }
}

@@ -608,88 +608,82 @@
  // 
-use %60%7B%7C key: type %7C%7D%60 to define exact object type, no extra key can pass through
+allow HOC passthrough and merging object type (exact type doesn't support)
 %0A   
@@ -711,29 +711,27 @@
 act-type': '
-error
+off
 ',%0A    'flow

disable flowtype/require-exact-type