eslint-plugin-next-route-params
Version:
eslint rule to enforce correct route parameters for Next.js
25 lines (24 loc) • 1.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.findReferencedType = findReferencedType;
const utils_1 = require("@typescript-eslint/utils");
function findReferencedType(typeReference, { ruleContext }) {
if (typeReference.typeName.type !== utils_1.AST_NODE_TYPES.Identifier) {
ruleContext.report({
loc: typeReference.loc,
messageId: "issue:isNoLiteral",
});
return null;
}
const nameOfReferencedType = typeReference.typeName.name;
const node = ruleContext.sourceCode.scopeManager?.variables?.find(({ name, isTypeVariable }) => name === nameOfReferencedType && isTypeVariable)?.defs[0]?.node;
if (node?.type !== utils_1.AST_NODE_TYPES.TSTypeAliasDeclaration ||
node.typeAnnotation.type !== utils_1.AST_NODE_TYPES.TSTypeLiteral) {
ruleContext.report({
loc: typeReference.loc,
messageId: "issue:isNoLiteral",
});
return null;
}
return node.typeAnnotation;
}