/
no-deprecated-astro-resolve.ts
41 lines (39 loc) · 1.04 KB
/
no-deprecated-astro-resolve.ts
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
import { READ, ReferenceTracker } from "@eslint-community/eslint-utils"
import { createRule } from "../utils"
import { getSourceCode } from "../utils/compat"
export default createRule("no-deprecated-astro-resolve", {
meta: {
docs: {
description: "disallow using deprecated `Astro.resolve()`",
category: "Possible Errors",
recommended: true,
},
schema: [],
messages: {
deprecated: "'Astro.resolve()' is deprecated.",
},
type: "problem",
},
create(context) {
const sourceCode = getSourceCode(context)
if (!sourceCode.parserServices.isAstro) {
return {}
}
return {
"Program:exit"(node) {
const tracker = new ReferenceTracker(sourceCode.getScope(node))
for (const { node, path } of tracker.iterateGlobalReferences({
Astro: {
resolve: { [READ]: true },
},
})) {
context.report({
node,
messageId: "deprecated",
data: { name: path.join(".") },
})
}
},
}
},
})