-
-
Notifications
You must be signed in to change notification settings - Fork 2.8k
/
Copy patheslint.js
46 lines (38 loc) · 1.27 KB
/
eslint.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
'use strict';
function getSourceCode(context) {
return context.getSourceCode ? context.getSourceCode() : context.sourceCode;
}
function getAncestors(context, node) {
const sourceCode = getSourceCode(context);
return sourceCode.getAncestors ? sourceCode.getAncestors(node) : context.getAncestors();
}
function getScope(context, node) {
const sourceCode = getSourceCode(context);
if (sourceCode.getScope && node) {
return sourceCode.getScope(node);
}
return context.getScope();
}
function markVariableAsUsed(name, node, context) {
const sourceCode = getSourceCode(context);
return sourceCode.markVariableAsUsed
? sourceCode.markVariableAsUsed(name, node)
: context.markVariableAsUsed(name);
}
function getFirstTokens(context, node, count) {
const sourceCode = getSourceCode(context);
return sourceCode.getFirstTokens ? sourceCode.getFirstTokens(node, count) : context.getFirstTokens(node, count);
}
function getText(context) {
const sourceCode = getSourceCode(context);
const args = Array.prototype.slice.call(arguments, 1);
return sourceCode.getText ? sourceCode.getText.apply(sourceCode, args) : context.getSource.apply(context, args);
}
module.exports = {
getAncestors,
getFirstTokens,
getScope,
getSourceCode,
getText,
markVariableAsUsed,
};