Version 2.0.0 - update of everything
This commit is contained in:
85 files changed
+13065
-2107
No files matched your search
@@ -0,0 +1,20 @@
|
||||
// Détecte les identifiants référencés sans liaison (ReferenceError potentielle) via @babel/traverse
|
||||
const FE = require("path").resolve(__dirname, "../../../frontend/node_modules") + "/"
|
||||
const parser = require(FE + "@babel/parser")
|
||||
const traverse = require(FE + "@babel/traverse").default
|
||||
const fs = require("fs")
|
||||
const globals = new Set(Object.getOwnPropertyNames(globalThis).concat(["require","module","exports","__dirname","__filename","process","Buffer","console","setTimeout","clearTimeout","setInterval","clearInterval","setImmediate","URL","fetch","AbortController","structuredClone","undefined","arguments"]))
|
||||
let bad = 0
|
||||
for (const file of process.argv.slice(2)) {
|
||||
const ast = parser.parse(fs.readFileSync(file, "utf8"), { sourceType: "script", allowReturnOutsideFunction: true })
|
||||
traverse(ast, {
|
||||
ReferencedIdentifier(p) {
|
||||
const name = p.node.name
|
||||
if (p.scope.hasBinding(name, true) || globals.has(name)) return
|
||||
if (p.parentPath.isMemberExpression({ property: p.node }) && !p.parentPath.node.computed) return
|
||||
bad++
|
||||
console.log(file.split("/").pop() + ":" + p.node.loc.start.line + " " + name)
|
||||
}
|
||||
})
|
||||
}
|
||||
console.log(bad ? bad + " identifiant(s) non lié(s)" : "aucun identifiant non lié")
|
||||
Reference in new issue
Block a user