let es5 = require('eslint-plugin-es5')

let es5disabled = { }
for (let i in es5.configs['no-es2015'].rules) {
  es5disabled[i] = 'off'
}
for (let i in es5.configs['no-es2016'].rules) {
  es5disabled[i] = 'off'
}

module.exports = {
  plugins: [
    'prefer-let'
  ],
  extends: [
    './base.js',
    'plugin:es5/no-es2015',
    'plugin:es5/no-es2016'
  ],
  overrides: [
    {
      files: ['test/*', 'test/**/*', '*.test.js'],
      rules: {
        'prefer-let/prefer-let': 'error',

        ...es5disabled,

        'template-curly-spacing': ['error', 'always'],
        'prefer-arrow-callback': 'error',
        'no-dupe-class-members': 'error',
        'no-this-before-super': 'error',
        'prefer-rest-params': 'error',
        'constructor-super': 'error',
        'object-shorthand': 'error',
        'require-yield': 'error',
        'arrow-spacing': 'error',
        'arrow-parens': ['error', 'as-needed'],
        'no-var': 'error'
      },
      env: {
        es6: true
      }
    }
  ]
}

@@ -432,568 +432,72 @@
     
-rules: %7B%0A        'prefer-let/prefer-let': 'error',%0A%0A        ...es5disabled,%0A%0A        'template-curly-spacing': %5B'error', 'always'%5D,%0A        'prefer-arrow-callback': 'error',%0A        'no-dupe-class-members': 'error',%0A        'no-this-before-super': 'error',%0A        'prefer-rest-params': 'error',%0A        'constructor-super': 'error',%0A        'object-shorthand': 'error',%0A        'require-yield': 'error',%0A        'arrow-spacing': 'error',%0A        'arrow-parens': %5B'error', 'as-needed'%5D,%0A        'no-var': 'error'%0A      %7D,%0A      env: %7B%0A        es6: true%0A      %7D
+extends: %5B%0A        './node.js'%0A      %5D,%0A      rules: es5disabled
 %0A   

Clean up code