ags
This commit is contained in:
parent
eddf7cecb8
commit
aea798d119
16631 changed files with 1480363 additions and 257 deletions
72
home/ags/node_modules/eslint-plugin-n/lib/util/check-prefer-global.js
generated
vendored
Normal file
72
home/ags/node_modules/eslint-plugin-n/lib/util/check-prefer-global.js
generated
vendored
Normal file
|
|
@ -0,0 +1,72 @@
|
|||
/**
|
||||
* @author Toru Nagashima
|
||||
* See LICENSE file in root directory for full license.
|
||||
*/
|
||||
"use strict"
|
||||
|
||||
const { ReferenceTracker } = require("@eslint-community/eslint-utils")
|
||||
const extendTrackmapWithNodePrefix = require("./extend-trackmap-with-node-prefix")
|
||||
|
||||
/**
|
||||
* Verifier for `prefer-global/*` rules.
|
||||
*/
|
||||
class Verifier {
|
||||
/**
|
||||
* Initialize this instance.
|
||||
* @param {RuleContext} context The rule context to report.
|
||||
* @param {{modules:object,globals:object}} trackMap The track map.
|
||||
*/
|
||||
constructor(context, trackMap) {
|
||||
this.context = context
|
||||
this.trackMap = trackMap
|
||||
this.verify =
|
||||
context.options[0] === "never"
|
||||
? this.verifyToPreferModules
|
||||
: this.verifyToPreferGlobals
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify the code to suggest the use of globals.
|
||||
* @returns {void}
|
||||
*/
|
||||
verifyToPreferGlobals() {
|
||||
const { context, trackMap } = this
|
||||
const sourceCode = context.sourceCode ?? context.getSourceCode() // TODO: just use context.sourceCode when dropping eslint < v9
|
||||
const scope =
|
||||
sourceCode.getScope?.(sourceCode.ast) ?? context.getScope() //TODO: remove context.getScope() when dropping support for ESLint < v9
|
||||
const tracker = new ReferenceTracker(scope, {
|
||||
mode: "legacy",
|
||||
})
|
||||
|
||||
const modules = extendTrackmapWithNodePrefix(trackMap.modules)
|
||||
|
||||
for (const { node } of [
|
||||
...tracker.iterateCjsReferences(modules),
|
||||
...tracker.iterateEsmReferences(modules),
|
||||
]) {
|
||||
context.report({ node, messageId: "preferGlobal" })
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Verify the code to suggest the use of modules.
|
||||
* @returns {void}
|
||||
*/
|
||||
verifyToPreferModules() {
|
||||
const { context, trackMap } = this
|
||||
const sourceCode = context.sourceCode ?? context.getSourceCode() // TODO: just use context.sourceCode when dropping eslint < v9
|
||||
const scope =
|
||||
sourceCode.getScope?.(sourceCode.ast) ?? context.getScope() //TODO: remove context.getScope() when dropping support for ESLint < v9
|
||||
const tracker = new ReferenceTracker(scope)
|
||||
|
||||
for (const { node } of tracker.iterateGlobalReferences(
|
||||
trackMap.globals
|
||||
)) {
|
||||
context.report({ node, messageId: "preferModule" })
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = function checkForPreferGlobal(context, trackMap) {
|
||||
new Verifier(context, trackMap).verify()
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue