UNPKG

@fenge/eslint-plugin-ts

Version:
20 lines 2.83 kB
import { getRuleName } from "../utils.js"; const name = getRuleName(import.meta.url); const rule = { meta: { messages: { default: "Disallow using Map and Set without type arguments.", }, }, create: (context) => { const handle = (node) => context.report({ node, messageId: "default" }); return { // new Set(); "Identifier[name=/^(Set|Map|WeakSet|WeakMap)$/][parent.type='NewExpression'][parent.arguments.length=0][parent.typeArguments=undefined]": handle, // class Foo {foo: Set} "Identifier[name=/^(Set|Map|WeakSet|WeakMap)$/][parent.type!='NewExpression'][parent.typeArguments=undefined]": handle, }; }, }; export const exactMapSetType = { name, rule }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhhY3QtbWFwLXNldC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bGVzL2V4YWN0LW1hcC1zZXQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTFDLE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFDLE1BQU0sSUFBSSxHQUFvQjtJQUM1QixJQUFJLEVBQUU7UUFDSixRQUFRLEVBQUU7WUFDUixPQUFPLEVBQUUsb0RBQW9EO1NBQzlEO0tBQ0Y7SUFDRCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRTtRQUNsQixNQUFNLE1BQU0sR0FBRyxDQUFDLElBQWUsRUFBRSxFQUFFLENBQ2pDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUM7UUFDakQsT0FBTztZQUNMLGFBQWE7WUFDYix3SUFBd0ksRUFDdEksTUFBTTtZQUNSLHVCQUF1QjtZQUN2Qiw4R0FBOEcsRUFDNUcsTUFBTTtTQUNULENBQUM7SUFDSixDQUFDO0NBQ0YsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IGdldFJ1bGVOYW1lIH0gZnJvbSBcIi4uL3V0aWxzLnRzXCI7XG5cbmNvbnN0IG5hbWUgPSBnZXRSdWxlTmFtZShpbXBvcnQubWV0YS51cmwpO1xuY29uc3QgcnVsZTogUnVsZS5SdWxlTW9kdWxlID0ge1xuICBtZXRhOiB7XG4gICAgbWVzc2FnZXM6IHtcbiAgICAgIGRlZmF1bHQ6IFwiRGlzYWxsb3cgdXNpbmcgTWFwIGFuZCBTZXQgd2l0aG91dCB0eXBlIGFyZ3VtZW50cy5cIixcbiAgICB9LFxuICB9LFxuICBjcmVhdGU6IChjb250ZXh0KSA9PiB7XG4gICAgY29uc3QgaGFuZGxlID0gKG5vZGU6IFJ1bGUuTm9kZSkgPT5cbiAgICAgIGNvbnRleHQucmVwb3J0KHsgbm9kZSwgbWVzc2FnZUlkOiBcImRlZmF1bHRcIiB9KTtcbiAgICByZXR1cm4ge1xuICAgICAgLy8gbmV3IFNldCgpO1xuICAgICAgXCJJZGVudGlmaWVyW25hbWU9L14oU2V0fE1hcHxXZWFrU2V0fFdlYWtNYXApJC9dW3BhcmVudC50eXBlPSdOZXdFeHByZXNzaW9uJ11bcGFyZW50LmFyZ3VtZW50cy5sZW5ndGg9MF1bcGFyZW50LnR5cGVBcmd1bWVudHM9dW5kZWZpbmVkXVwiOlxuICAgICAgICBoYW5kbGUsXG4gICAgICAvLyBjbGFzcyBGb28ge2ZvbzogU2V0fVxuICAgICAgXCJJZGVudGlmaWVyW25hbWU9L14oU2V0fE1hcHxXZWFrU2V0fFdlYWtNYXApJC9dW3BhcmVudC50eXBlIT0nTmV3RXhwcmVzc2lvbiddW3BhcmVudC50eXBlQXJndW1lbnRzPXVuZGVmaW5lZF1cIjpcbiAgICAgICAgaGFuZGxlLFxuICAgIH07XG4gIH0sXG59O1xuXG5leHBvcnQgY29uc3QgZXhhY3RNYXBTZXRUeXBlID0geyBuYW1lLCBydWxlIH07XG4iXX0=