Browse Source
- Move to manageble private package - Ensure '.vue' rules are used via override - Add support for TypeScript - Update AP config to install correctlymaster
8 changed files with 137 additions and 30 deletions
@ -1,13 +1,12 @@ |
|||
"use strict"; |
|||
|
|||
const ts = require( "eslint-config-pegjs/overrides/typescript" )( __dirname ); |
|||
const vue = require( "eslint-config-pegjs/overrides/vue" ); |
|||
|
|||
module.exports = { |
|||
|
|||
"extends": "futagozaryuu/node-v6", |
|||
"extends": "pegjs", |
|||
"overrides": [ ts, vue ], |
|||
"root": true, |
|||
"rules": { |
|||
|
|||
"no-eval": 0, |
|||
|
|||
}, |
|||
|
|||
}; |
|||
|
@ -1,21 +0,0 @@ |
|||
"use strict"; |
|||
|
|||
module.exports = { |
|||
|
|||
"extends": "plugin:vue/recommended", |
|||
|
|||
"parserOptions": { |
|||
|
|||
// plugin:vue/recommended set's this to "module" for some reason...
|
|||
"sourceType": "script" |
|||
|
|||
}, |
|||
|
|||
"rules": { |
|||
|
|||
"vue/html-indent": [ "error", 4 ], |
|||
"vue/singleline-html-element-content-newline": 0, |
|||
|
|||
}, |
|||
|
|||
}; |
@ -0,0 +1,13 @@ |
|||
"use strict"; |
|||
|
|||
module.exports = { |
|||
|
|||
"extends": "futagozaryuu/node-v6", |
|||
"rules": { |
|||
|
|||
"no-duplicate-imports": [ "error", { "includeExports": false } ], |
|||
"no-eval": 0, |
|||
|
|||
}, |
|||
|
|||
}; |
@ -0,0 +1,81 @@ |
|||
"use strict"; |
|||
|
|||
const path = require( "path" ); |
|||
|
|||
const config = { |
|||
...require( "eslint-config-futagozaryuu/stylistic-issues" ).rules, |
|||
...require( "eslint-config-futagozaryuu/variables" ).rules, |
|||
...require( "eslint-config-futagozaryuu/es2015" ).rules, |
|||
}; |
|||
|
|||
function ts( cwd ) { |
|||
|
|||
const ts = require( "@typescript-eslint/eslint-plugin/dist/configs/base.json" ); |
|||
ts.files = [ "*.ts" ]; |
|||
ts.parserOptions = { |
|||
|
|||
"project": path.join( cwd, "tsconfig.json" ), |
|||
"sourceType": "module", |
|||
|
|||
}; |
|||
ts.rules = { |
|||
|
|||
...require( "@typescript-eslint/eslint-plugin/dist/configs/recommended.json" ).rules, |
|||
...require( "@typescript-eslint/eslint-plugin/dist/configs/eslint-recommended" ).default.overrides[ 0 ].rules, |
|||
|
|||
"strict": "off", |
|||
"node/no-unsupported-features/es-syntax": "off", |
|||
|
|||
"@typescript-eslint/ban-types": "off", |
|||
"@typescript-eslint/camelcase": "off", |
|||
"@typescript-eslint/explicit-member-accessibility": "off", |
|||
"@typescript-eslint/indent": config.indent, |
|||
"@typescript-eslint/interface-name-prefix": "off", |
|||
"@typescript-eslint/member-delimiter-style": [ "error", { |
|||
"multiline": { |
|||
"delimiter": "semi", |
|||
"requireLast": true, |
|||
}, |
|||
"singleline": { |
|||
"delimiter": "semi", |
|||
"requireLast": true, |
|||
}, |
|||
} ], |
|||
"@typescript-eslint/member-naming": [ "warn", { |
|||
"private": "^_", |
|||
} ], |
|||
"@typescript-eslint/member-ordering": "off", |
|||
"@typescript-eslint/no-array-constructor": config[ "no-array-constructor" ], |
|||
"@typescript-eslint/no-empty-interface": "warn", |
|||
"@typescript-eslint/no-explicit-any": "off", |
|||
"@typescript-eslint/no-extraneous-class": [ "error", { |
|||
"constructorOnly": true, |
|||
"allowEmpty": false, |
|||
"staticOnly": false, |
|||
} ], |
|||
"@typescript-eslint/no-for-in-array": "error", |
|||
"@typescript-eslint/no-inferrable-types": "off", |
|||
"@typescript-eslint/no-namespace": "off", |
|||
"@typescript-eslint/no-type-alias": "off", |
|||
"@typescript-eslint/no-unnecessary-type-assertion": "error", |
|||
"no-unused-vars": "off", |
|||
"@typescript-eslint/no-unused-vars": "off", |
|||
"no-use-before-define": "off", |
|||
"@typescript-eslint/no-use-before-define": config[ "no-use-before-define" ], |
|||
"no-useless-constructor": "off", |
|||
"@typescript-eslint/no-useless-constructor": config[ "no-useless-constructor" ], |
|||
"@typescript-eslint/promise-function-async": "off", |
|||
"@typescript-eslint/restrict-plus-operands": "error", |
|||
"@typescript-eslint/type-annotation-spacing": "error", |
|||
"@typescript-eslint/prefer-interface": "off", |
|||
"@typescript-eslint/explicit-function-return-type": [ "error", { |
|||
allowExpressions: true, |
|||
} ], |
|||
|
|||
}; |
|||
|
|||
return ts; |
|||
|
|||
} |
|||
|
|||
module.exports = ts; |
@ -0,0 +1,18 @@ |
|||
"use strict"; |
|||
|
|||
const vue = require( "eslint-plugin-vue/lib/configs/base" ); |
|||
|
|||
vue.files = [ "*.vue" ]; |
|||
|
|||
Object.assign( vue.rules, { |
|||
|
|||
...require( "eslint-plugin-vue/lib/configs/essential" ).rules, |
|||
...require( "eslint-plugin-vue/lib/configs/strongly-recommended" ).rules, |
|||
...require( "eslint-plugin-vue/lib/configs/recommended" ).rules, |
|||
|
|||
"vue/html-indent": [ "error", 4 ], |
|||
"vue/singleline-html-element-content-newline": 0, |
|||
|
|||
} ); |
|||
|
|||
module.exports = vue; |
@ -0,0 +1,16 @@ |
|||
{ |
|||
"name": "eslint-config-pegjs", |
|||
"version": "2.3.0", |
|||
"private": true, |
|||
"main": "javascript.js", |
|||
"dependencies": { |
|||
"@typescript-eslint/eslint-plugin": "1.9.1-alpha.26", |
|||
"@typescript-eslint/parser": "1.9.1-alpha.26", |
|||
"eslint-config-futagozaryuu": "5.8.0", |
|||
"eslint-plugin-vue": "5.2.2", |
|||
"typescript": "3.5.1" |
|||
}, |
|||
"engines": { |
|||
"node": ">= 6" |
|||
} |
|||
} |
Loading…
Reference in new issue