GeezerVison is showing github.com — tools: autofixer for lowercase-name-for-primitive · nodejs/node@6187aec
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: test/parallel/test-eslint-lowercase-name-for-primitive.js +15-7Lines changed: 15 additions & 7 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -22,20 +22,28 @@ new RuleTester().run('lowercase-name-for-primitive', rule, { | 22 | 22 | ], | 23 | 23 | invalid: [ | 24 | 24 | { | 25 | | - code: 'new errors.TypeError("ERR_INVALID_ARG_TYPE", "a", "Number")', | 26 | | - errors: [{ message: 'primitive should use lowercase: Number' }] | | 25 | + code: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', ' + | | 26 | + '\'Number\')', | | 27 | + errors: [{ message: 'primitive should use lowercase: Number' }], | | 28 | + output: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', ' + | | 29 | + '\'number\')' | 27 | 30 | }, | 28 | 31 | { | 29 | | - code: 'new errors.TypeError("ERR_INVALID_ARG_TYPE", "a", "STRING")', | 30 | | - errors: [{ message: 'primitive should use lowercase: STRING' }] | | 32 | + code: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', ' + | | 33 | + '\'STRING\')', | | 34 | + errors: [{ message: 'primitive should use lowercase: STRING' }], | | 35 | + output: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', ' + | | 36 | + '\'string\')' | 31 | 37 | }, | 32 | 38 | { | 33 | | - code: 'new errors.TypeError("ERR_INVALID_ARG_TYPE", "a",' + | 34 | | - '["String", "Number"])', | | 39 | + code: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', ' + | | 40 | + '[\'String\', \'Number\']) ', | 35 | 41 | errors: [ | 36 | 42 | { message: 'primitive should use lowercase: String' }, | 37 | 43 | { message: 'primitive should use lowercase: Number' } | 38 | | - ] | | 44 | + ], | | 45 | + output: 'new errors.TypeError(\'ERR_INVALID_ARG_TYPE\', \'a\', ' + | | 46 | + '[\'string\', \'number\']) ' | 39 | 47 | } | 40 | 48 | ] | 41 | 49 | }); |
Collapse file Copy file name to clipboardExpand all lines: tools/eslint-rules/lowercase-name-for-primitive.js +16-5Lines changed: 16 additions & 5 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -22,22 +22,33 @@ module.exports = function(context) { | 22 | 22 |
| 23 | 23 | switch (names.type) { | 24 | 24 | case 'Literal': | 25 | | - checkName(node, names.value); | | 25 | + checkName(names); | 26 | 26 | break; | 27 | 27 | case 'ArrayExpression': | 28 | 28 | names.elements.forEach((name) => { | 29 | | - checkName(node, name.value); | | 29 | + checkName(name); | 30 | 30 | }); | 31 | 31 | break; | 32 | 32 | } | 33 | 33 | } | 34 | 34 |
| 35 | | - function checkName(node, name) { | | 35 | + function checkName(node) { | | 36 | + const name = node.value; | 36 | 37 | const lowercaseName = name.toLowerCase(); | 37 | | - if (primitives.includes(lowercaseName) && !primitives.includes(name)) { | | 38 | + if (name !== lowercaseName && primitives.includes(lowercaseName)) { | 38 | 39 | const msg = `primitive should use lowercase: ${name}`; | 39 | | - context.report(node, msg); | | 40 | + context.report({ | | 41 | + node, | | 42 | + message: msg, | | 43 | + fix: (fixer) => { | | 44 | + return fixer.replaceText( | | 45 | + node, | | 46 | + `'${lowercaseName}'` | | 47 | + ); | | 48 | + } | | 49 | + }); | 40 | 50 | } | | 51 | + | 41 | 52 | } | 42 | 53 |
| 43 | 54 | return { | |
|