| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 06da8a7 commit b7f81ae
2 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -12,15 +12,36 @@ const ruleTester = new RuleTester({ | |||
| 12 | 12 | const message = "Use const Buffer = require('buffer').Buffer; " + | |
| 13 | 13 | 'at the beginning of this file'; | |
| 14 | 14 | ||
| 15 | + const useStrict = '\'use strict\';\n\n'; | ||
| 16 | + const bufferModule = 'const { Buffer } = require(\'buffer\');\n'; | ||
| 17 | + const mockComment = '// Some Comment\n//\n// Another Comment\n\n'; | ||
| 18 | + const useBuffer = 'Buffer;'; | ||
| 15 | 19 | ruleTester.run('require-buffer', rule, { | |
| 16 | 20 | valid: [ | |
| 17 | 21 | 'foo', | |
| 18 | - 'const Buffer = require("Buffer"); Buffer;' | ||
| 22 | + 'const Buffer = require("Buffer"); Buffer;', | ||
| 23 | + 'const { Buffer } = require(\'buffer\'); Buffer;', | ||
| 19 | 24 | ], | |
| 20 | 25 | invalid: [ | |
| 21 | 26 | { | |
| 22 | - code: 'Buffer;', | ||
| 23 | - errors: [{ message }] | ||
| 24 | - } | ||
| 27 | + code: useBuffer, | ||
| 28 | + errors: [{ message }], | ||
| 29 | + output: bufferModule + useBuffer, | ||
| 30 | + }, | ||
| 31 | + { | ||
| 32 | + code: useStrict + useBuffer, | ||
| 33 | + errors: [{ message }], | ||
| 34 | + output: useStrict + bufferModule + useBuffer, | ||
| 35 | + }, | ||
| 36 | + { | ||
| 37 | + code: mockComment + useBuffer, | ||
| 38 | + errors: [{ message }], | ||
| 39 | + output: mockComment + bufferModule + useBuffer, | ||
| 40 | + }, | ||
| 41 | + { | ||
| 42 | + code: mockComment + useStrict + useBuffer, | ||
| 43 | + errors: [{ message }], | ||
| 44 | + output: mockComment + useStrict + bufferModule + useBuffer, | ||
| 45 | + }, | ||
| 25 | 46 | ] | |
| 26 | 47 | }); | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1,10 +1,26 @@ | |||
| 1 | 1 | 'use strict'; | |
| 2 | + const BUFFER_REQUIRE = 'const { Buffer } = require(\'buffer\');\n'; | ||
| 2 | 3 | ||
| 3 | 4 | module.exports = function(context) { | |
| 5 | + | ||
| 4 | 6 | function flagIt(reference) { | |
| 5 | 7 | const msg = 'Use const Buffer = require(\'buffer\').Buffer; ' + | |
| 6 | 8 | 'at the beginning of this file'; | |
| 7 | - context.report(reference.identifier, msg); | ||
| 9 | + | ||
| 10 | + context.report({ | ||
| 11 | + node: reference.identifier, | ||
| 12 | + message: msg, | ||
| 13 | + fix: (fixer) => { | ||
| 14 | + const sourceCode = context.getSourceCode(); | ||
| 15 | + | ||
| 16 | + const useStrict = /'use strict';\n\n?/g; | ||
| 17 | + const hasUseStrict = !!useStrict.exec(sourceCode.text); | ||
| 18 | + const firstLOC = sourceCode.ast.range[0]; | ||
| 19 | + const rangeNeedle = hasUseStrict ? useStrict.lastIndex : firstLOC; | ||
| 20 | + | ||
| 21 | + return fixer.insertTextBeforeRange([rangeNeedle], BUFFER_REQUIRE); | ||
| 22 | + } | ||
| 23 | + }); | ||
| 8 | 24 | } | |
| 9 | 25 | ||
| 10 | 26 | return { | |
| Back | FazBrowse Home | New Git URL |
0 commit comments