@fenge/eslint-plugin 0.4.2 → 0.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -1
- package/dist/rules/no-empty-condition.d.ts +6 -0
- package/dist/rules/no-empty-condition.d.ts.map +1 -0
- package/dist/rules/no-empty-condition.js +34 -0
- package/dist/rules/no-restricted-loops.d.ts.map +1 -1
- package/dist/rules/no-restricted-loops.js +4 -4
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { callArgumentsLength } from "./rules/call-arguments-length.ts";
|
|
2
2
|
import { consistentHashbangAndFilename } from "./rules/consistent-hashbang-and-filename.ts";
|
|
3
|
+
import { noEmptyCondition } from "./rules/no-empty-condition.ts";
|
|
3
4
|
import { noInstanceofBuiltin } from "./rules/no-instanceof-builtin.ts";
|
|
4
5
|
import { noNestedClass } from "./rules/no-nested-class.ts";
|
|
5
6
|
import { noNestedFunction } from "./rules/no-nested-function.ts";
|
|
@@ -10,6 +11,7 @@ import { noUnnecessaryTemplateString } from "./rules/no-unnecessary-template-str
|
|
|
10
11
|
export declare const rules: {
|
|
11
12
|
[callArgumentsLength.name]: import("eslint").Rule.RuleModule;
|
|
12
13
|
[consistentHashbangAndFilename.name]: import("eslint").Rule.RuleModule;
|
|
14
|
+
[noEmptyCondition.name]: import("eslint").Rule.RuleModule;
|
|
13
15
|
[noInstanceofBuiltin.name]: import("eslint").Rule.RuleModule;
|
|
14
16
|
[noNestedClass.name]: import("eslint").Rule.RuleModule;
|
|
15
17
|
[noNestedFunction.name]: import("eslint").Rule.RuleModule;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAExF,eAAO,MAAM,KAAK;IAChB,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,6BAA6B,CAAC,IAAI,CAAC,mCAAoC;IACxE,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,aAAa,CAAC,IAAI,CAAC,mCAAoB;IACxC,CAAC,gBAAgB,CAAC,IAAI,CAAC,mCAAuB;IAC9C,CAAC,iBAAiB,CAAC,IAAI,CAAC,mCAAwB;IAChD,CAAC,uBAAuB,CAAC,IAAI,CAAC,mCAA8B;IAC5D,CAAC,sBAAsB,CAAC,IAAI,CAAC,mCAA6B;IAC1D,CAAC,2BAA2B,CAAC,IAAI,CAAC,mCAAkC;CACrE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,6CAA6C,CAAC;AAC5F,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,iBAAiB,EAAE,MAAM,gCAAgC,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,wCAAwC,CAAC;AACjF,OAAO,EAAE,sBAAsB,EAAE,MAAM,sCAAsC,CAAC;AAC9E,OAAO,EAAE,2BAA2B,EAAE,MAAM,2CAA2C,CAAC;AAExF,eAAO,MAAM,KAAK;IAChB,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,6BAA6B,CAAC,IAAI,CAAC,mCAAoC;IACxE,CAAC,gBAAgB,CAAC,IAAI,CAAC,mCAAuB;IAC9C,CAAC,mBAAmB,CAAC,IAAI,CAAC,mCAA0B;IACpD,CAAC,aAAa,CAAC,IAAI,CAAC,mCAAoB;IACxC,CAAC,gBAAgB,CAAC,IAAI,CAAC,mCAAuB;IAC9C,CAAC,iBAAiB,CAAC,IAAI,CAAC,mCAAwB;IAChD,CAAC,uBAAuB,CAAC,IAAI,CAAC,mCAA8B;IAC5D,CAAC,sBAAsB,CAAC,IAAI,CAAC,mCAA6B;IAC1D,CAAC,2BAA2B,CAAC,IAAI,CAAC,mCAAkC;CACrE,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { callArgumentsLength } from "./rules/call-arguments-length.js";
|
|
2
2
|
import { consistentHashbangAndFilename } from "./rules/consistent-hashbang-and-filename.js";
|
|
3
|
+
import { noEmptyCondition } from "./rules/no-empty-condition.js";
|
|
3
4
|
import { noInstanceofBuiltin } from "./rules/no-instanceof-builtin.js";
|
|
4
5
|
import { noNestedClass } from "./rules/no-nested-class.js";
|
|
5
6
|
import { noNestedFunction } from "./rules/no-nested-function.js";
|
|
@@ -10,6 +11,7 @@ import { noUnnecessaryTemplateString } from "./rules/no-unnecessary-template-str
|
|
|
10
11
|
export const rules = {
|
|
11
12
|
[callArgumentsLength.name]: callArgumentsLength.rule,
|
|
12
13
|
[consistentHashbangAndFilename.name]: consistentHashbangAndFilename.rule,
|
|
14
|
+
[noEmptyCondition.name]: noEmptyCondition.rule,
|
|
13
15
|
[noInstanceofBuiltin.name]: noInstanceofBuiltin.rule,
|
|
14
16
|
[noNestedClass.name]: noNestedClass.rule,
|
|
15
17
|
[noNestedFunction.name]: noNestedFunction.rule,
|
|
@@ -18,4 +20,4 @@ export const rules = {
|
|
|
18
20
|
[noTripleSlashDirective.name]: noTripleSlashDirective.rule,
|
|
19
21
|
[noUnnecessaryTemplateString.name]: noUnnecessaryTemplateString.rule,
|
|
20
22
|
};
|
|
21
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sNkNBQTZDLENBQUM7QUFDNUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDakUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDdkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQzNELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLDJDQUEyQyxDQUFDO0FBRXhGLE1BQU0sQ0FBQyxNQUFNLEtBQUssR0FBRztJQUNuQixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLElBQUk7SUFDcEQsQ0FBQyw2QkFBNkIsQ0FBQyxJQUFJLENBQUMsRUFBRSw2QkFBNkIsQ0FBQyxJQUFJO0lBQ3hFLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsSUFBSTtJQUM5QyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxFQUFFLG1CQUFtQixDQUFDLElBQUk7SUFDcEQsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLEVBQUUsYUFBYSxDQUFDLElBQUk7SUFDeEMsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxnQkFBZ0IsQ0FBQyxJQUFJO0lBQzlDLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLEVBQUUsaUJBQWlCLENBQUMsSUFBSTtJQUNoRCxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxFQUFFLHVCQUF1QixDQUFDLElBQUk7SUFDNUQsQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxzQkFBc0IsQ0FBQyxJQUFJO0lBQzFELENBQUMsMkJBQTJCLENBQUMsSUFBSSxDQUFDLEVBQUUsMkJBQTJCLENBQUMsSUFBSTtDQUNyRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY2FsbEFyZ3VtZW50c0xlbmd0aCB9IGZyb20gXCIuL3J1bGVzL2NhbGwtYXJndW1lbnRzLWxlbmd0aC50c1wiO1xuaW1wb3J0IHsgY29uc2lzdGVudEhhc2hiYW5nQW5kRmlsZW5hbWUgfSBmcm9tIFwiLi9ydWxlcy9jb25zaXN0ZW50LWhhc2hiYW5nLWFuZC1maWxlbmFtZS50c1wiO1xuaW1wb3J0IHsgbm9FbXB0eUNvbmRpdGlvbiB9IGZyb20gXCIuL3J1bGVzL25vLWVtcHR5LWNvbmRpdGlvbi50c1wiO1xuaW1wb3J0IHsgbm9JbnN0YW5jZW9mQnVpbHRpbiB9IGZyb20gXCIuL3J1bGVzL25vLWluc3RhbmNlb2YtYnVpbHRpbi50c1wiO1xuaW1wb3J0IHsgbm9OZXN0ZWRDbGFzcyB9IGZyb20gXCIuL3J1bGVzL25vLW5lc3RlZC1jbGFzcy50c1wiO1xuaW1wb3J0IHsgbm9OZXN0ZWRGdW5jdGlvbiB9IGZyb20gXCIuL3J1bGVzL25vLW5lc3RlZC1mdW5jdGlvbi50c1wiO1xuaW1wb3J0IHsgbm9SZXN0cmljdGVkTG9vcHMgfSBmcm9tIFwiLi9ydWxlcy9uby1yZXN0cmljdGVkLWxvb3BzLnRzXCI7XG5pbXBvcnQgeyBub1RvcExldmVsQXJyb3dGdW5jdGlvbiB9IGZyb20gXCIuL3J1bGVzL25vLXRvcC1sZXZlbC1hcnJvdy1mdW5jdGlvbi50c1wiO1xuaW1wb3J0IHsgbm9UcmlwbGVTbGFzaERpcmVjdGl2ZSB9IGZyb20gXCIuL3J1bGVzL25vLXRyaXBsZS1zbGFzaC1kaXJlY3RpdmUudHNcIjtcbmltcG9ydCB7IG5vVW5uZWNlc3NhcnlUZW1wbGF0ZVN0cmluZyB9IGZyb20gXCIuL3J1bGVzL25vLXVubmVjZXNzYXJ5LXRlbXBsYXRlLXN0cmluZy50c1wiO1xuXG5leHBvcnQgY29uc3QgcnVsZXMgPSB7XG4gIFtjYWxsQXJndW1lbnRzTGVuZ3RoLm5hbWVdOiBjYWxsQXJndW1lbnRzTGVuZ3RoLnJ1bGUsXG4gIFtjb25zaXN0ZW50SGFzaGJhbmdBbmRGaWxlbmFtZS5uYW1lXTogY29uc2lzdGVudEhhc2hiYW5nQW5kRmlsZW5hbWUucnVsZSxcbiAgW25vRW1wdHlDb25kaXRpb24ubmFtZV06IG5vRW1wdHlDb25kaXRpb24ucnVsZSxcbiAgW25vSW5zdGFuY2VvZkJ1aWx0aW4ubmFtZV06IG5vSW5zdGFuY2VvZkJ1aWx0aW4ucnVsZSxcbiAgW25vTmVzdGVkQ2xhc3MubmFtZV06IG5vTmVzdGVkQ2xhc3MucnVsZSxcbiAgW25vTmVzdGVkRnVuY3Rpb24ubmFtZV06IG5vTmVzdGVkRnVuY3Rpb24ucnVsZSxcbiAgW25vUmVzdHJpY3RlZExvb3BzLm5hbWVdOiBub1Jlc3RyaWN0ZWRMb29wcy5ydWxlLFxuICBbbm9Ub3BMZXZlbEFycm93RnVuY3Rpb24ubmFtZV06IG5vVG9wTGV2ZWxBcnJvd0Z1bmN0aW9uLnJ1bGUsXG4gIFtub1RyaXBsZVNsYXNoRGlyZWN0aXZlLm5hbWVdOiBub1RyaXBsZVNsYXNoRGlyZWN0aXZlLnJ1bGUsXG4gIFtub1VubmVjZXNzYXJ5VGVtcGxhdGVTdHJpbmcubmFtZV06IG5vVW5uZWNlc3NhcnlUZW1wbGF0ZVN0cmluZy5ydWxlLFxufTtcbiJdfQ==
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"no-empty-condition.d.ts","sourceRoot":"","sources":["../../src/rules/no-empty-condition.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA0CnC,eAAO,MAAM,gBAAgB;;;CAAiB,CAAC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { getDocUrl, getRuleName } from "../utils.js";
|
|
2
|
+
const name = getRuleName(import.meta.url);
|
|
3
|
+
const rule = {
|
|
4
|
+
meta: {
|
|
5
|
+
docs: {
|
|
6
|
+
url: getDocUrl(name),
|
|
7
|
+
description: "Disallow empty or falsy condition expression in for loops.",
|
|
8
|
+
},
|
|
9
|
+
messages: {
|
|
10
|
+
[`${name}/error`]: "The condition (second part) of the for loop should not be empty or falsy.",
|
|
11
|
+
},
|
|
12
|
+
},
|
|
13
|
+
create: (context) => ({
|
|
14
|
+
ForStatement: (node) => {
|
|
15
|
+
const { test } = node;
|
|
16
|
+
if (!test) {
|
|
17
|
+
context.report({ node, messageId: `${name}/error` });
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const isFalsyLiteral = test.type === "Literal" &&
|
|
21
|
+
(test.value === "" ||
|
|
22
|
+
test.value === 0 ||
|
|
23
|
+
test.value === false ||
|
|
24
|
+
test.value === null ||
|
|
25
|
+
test.value === undefined);
|
|
26
|
+
const isUndefinedIdentifier = test.type === "Identifier" && test.name === "undefined";
|
|
27
|
+
if (isFalsyLiteral || isUndefinedIdentifier) {
|
|
28
|
+
context.report({ node, messageId: `${name}/error` });
|
|
29
|
+
}
|
|
30
|
+
},
|
|
31
|
+
}),
|
|
32
|
+
};
|
|
33
|
+
export const noEmptyCondition = { name, rule };
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tZW1wdHktY29uZGl0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3J1bGVzL25vLWVtcHR5LWNvbmRpdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUVyRCxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUMxQyxNQUFNLElBQUksR0FBb0I7SUFDNUIsSUFBSSxFQUFFO1FBQ0osSUFBSSxFQUFFO1lBQ0osR0FBRyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDcEIsV0FBVyxFQUFFLDREQUE0RDtTQUMxRTtRQUNELFFBQVEsRUFBRTtZQUNSLENBQUMsR0FBRyxJQUFJLFFBQVEsQ0FBQyxFQUNmLDJFQUEyRTtTQUM5RTtLQUNGO0lBQ0QsTUFBTSxFQUFFLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3BCLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3JCLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUM7WUFFdEIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO2dCQUNyRCxPQUFPO1lBQ1QsQ0FBQztZQUVELE1BQU0sY0FBYyxHQUNsQixJQUFJLENBQUMsSUFBSSxLQUFLLFNBQVM7Z0JBQ3ZCLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxFQUFFO29CQUNoQixJQUFJLENBQUMsS0FBSyxLQUFLLENBQUM7b0JBQ2hCLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSztvQkFDcEIsSUFBSSxDQUFDLEtBQUssS0FBSyxJQUFJO29CQUNuQixJQUFJLENBQUMsS0FBSyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBRTlCLE1BQU0scUJBQXFCLEdBQ3pCLElBQUksQ0FBQyxJQUFJLEtBQUssWUFBWSxJQUFJLElBQUksQ0FBQyxJQUFJLEtBQUssV0FBVyxDQUFDO1lBRTFELElBQUksY0FBYyxJQUFJLHFCQUFxQixFQUFFLENBQUM7Z0JBQzVDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLEdBQUcsSUFBSSxRQUFRLEVBQUUsQ0FBQyxDQUFDO1lBQ3ZELENBQUM7UUFDSCxDQUFDO0tBQ0YsQ0FBQztDQUNILENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IGdldERvY1VybCwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vdXRpbHMudHNcIjtcblxuY29uc3QgbmFtZSA9IGdldFJ1bGVOYW1lKGltcG9ydC5tZXRhLnVybCk7XG5jb25zdCBydWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGdldERvY1VybChuYW1lKSxcbiAgICAgIGRlc2NyaXB0aW9uOiBcIkRpc2FsbG93IGVtcHR5IG9yIGZhbHN5IGNvbmRpdGlvbiBleHByZXNzaW9uIGluIGZvciBsb29wcy5cIixcbiAgICB9LFxuICAgIG1lc3NhZ2VzOiB7XG4gICAgICBbYCR7bmFtZX0vZXJyb3JgXTpcbiAgICAgICAgXCJUaGUgY29uZGl0aW9uIChzZWNvbmQgcGFydCkgb2YgdGhlIGZvciBsb29wIHNob3VsZCBub3QgYmUgZW1wdHkgb3IgZmFsc3kuXCIsXG4gICAgfSxcbiAgfSxcbiAgY3JlYXRlOiAoY29udGV4dCkgPT4gKHtcbiAgICBGb3JTdGF0ZW1lbnQ6IChub2RlKSA9PiB7XG4gICAgICBjb25zdCB7IHRlc3QgfSA9IG5vZGU7XG5cbiAgICAgIGlmICghdGVzdCkge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2VJZDogYCR7bmFtZX0vZXJyb3JgIH0pO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGlzRmFsc3lMaXRlcmFsID1cbiAgICAgICAgdGVzdC50eXBlID09PSBcIkxpdGVyYWxcIiAmJlxuICAgICAgICAodGVzdC52YWx1ZSA9PT0gXCJcIiB8fFxuICAgICAgICAgIHRlc3QudmFsdWUgPT09IDAgfHxcbiAgICAgICAgICB0ZXN0LnZhbHVlID09PSBmYWxzZSB8fFxuICAgICAgICAgIHRlc3QudmFsdWUgPT09IG51bGwgfHxcbiAgICAgICAgICB0ZXN0LnZhbHVlID09PSB1bmRlZmluZWQpO1xuXG4gICAgICBjb25zdCBpc1VuZGVmaW5lZElkZW50aWZpZXIgPVxuICAgICAgICB0ZXN0LnR5cGUgPT09IFwiSWRlbnRpZmllclwiICYmIHRlc3QubmFtZSA9PT0gXCJ1bmRlZmluZWRcIjtcblxuICAgICAgaWYgKGlzRmFsc3lMaXRlcmFsIHx8IGlzVW5kZWZpbmVkSWRlbnRpZmllcikge1xuICAgICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2VJZDogYCR7bmFtZX0vZXJyb3JgIH0pO1xuICAgICAgfVxuICAgIH0sXG4gIH0pLFxufTtcblxuZXhwb3J0IGNvbnN0IG5vRW1wdHlDb25kaXRpb24gPSB7IG5hbWUsIHJ1bGUgfTtcbiJdfQ==
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"no-restricted-loops.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-loops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"no-restricted-loops.d.ts","sourceRoot":"","sources":["../../src/rules/no-restricted-loops.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AA6BnC,eAAO,MAAM,iBAAiB;;;CAAiB,CAAC"}
|
|
@@ -8,17 +8,17 @@ const rule = {
|
|
|
8
8
|
meta: {
|
|
9
9
|
docs: {
|
|
10
10
|
url: getDocUrl(name),
|
|
11
|
-
description: "Only allow `while` and `for-of` loops. `for
|
|
11
|
+
description: "Only allow `while`, `for` and `for-of` loops. `for-in`, `do-while` and `for-await-of` loops are disallowed.",
|
|
12
12
|
},
|
|
13
13
|
messages: {
|
|
14
|
-
[`${name}/error`]: "Only allow `while` and `for-of` loops. `for
|
|
14
|
+
[`${name}/error`]: "Only allow `while`, `for` and `for-of` loops. `for-in`, `do-while` and `for-await-of` loops are disallowed.",
|
|
15
15
|
},
|
|
16
16
|
},
|
|
17
17
|
create: (context) => ({
|
|
18
|
-
":matches(
|
|
18
|
+
":matches(ForInStatement, DoWhileStatement, ForOfStatement[await=true])": (node) => {
|
|
19
19
|
context.report({ node, messageId: `${name}/error` });
|
|
20
20
|
},
|
|
21
21
|
}),
|
|
22
22
|
};
|
|
23
23
|
export const noRestrictedLoops = { name, rule };
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
24
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm8tcmVzdHJpY3RlZC1sb29wcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9ydWxlcy9uby1yZXN0cmljdGVkLWxvb3BzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRXJELE1BQU0sSUFBSSxHQUFHLFdBQVcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0FBQzFDOzs7R0FHRztBQUNILE1BQU0sSUFBSSxHQUFvQjtJQUM1QixJQUFJLEVBQUU7UUFDSixJQUFJLEVBQUU7WUFDSixHQUFHLEVBQUUsU0FBUyxDQUFDLElBQUksQ0FBQztZQUNwQixXQUFXLEVBQ1QsNkdBQTZHO1NBQ2hIO1FBQ0QsUUFBUSxFQUFFO1lBQ1IsQ0FBQyxHQUFHLElBQUksUUFBUSxDQUFDLEVBQ2YsNkdBQTZHO1NBQ2hIO0tBQ0Y7SUFDRCxNQUFNLEVBQUUsQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDcEIsd0VBQXdFLEVBQUUsQ0FDeEUsSUFBZSxFQUNmLEVBQUU7WUFDRixPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLElBQUksUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN2RCxDQUFDO0tBQ0YsQ0FBQztDQUNILENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgUnVsZSB9IGZyb20gXCJlc2xpbnRcIjtcbmltcG9ydCB7IGdldERvY1VybCwgZ2V0UnVsZU5hbWUgfSBmcm9tIFwiLi4vdXRpbHMudHNcIjtcblxuY29uc3QgbmFtZSA9IGdldFJ1bGVOYW1lKGltcG9ydC5tZXRhLnVybCk7XG4vKipcbiAqIE9ubHkgYWxsb3cgYHdoaWxlYCBhbmQgYGZvci1vZmAgbG9vcHMuIGBmb3JgLCBgZm9yLWluYCwgYGRvLXdoaWxlYCBhbmQgYGZvci1hd2FpdC1vZmAgbG9vcHMgYXJlIGRpc2FsbG93ZWQuXG4gKiBWaXNpdCBodHRwczovL2dpdGh1Yi5jb20vc2luZHJlc29yaHVzL2VzbGludC1wbHVnaW4tdW5pY29ybi9pc3N1ZXMvMjQ1MyBmb3IgbW9yZSBkZXRhaWxzLlxuICovXG5jb25zdCBydWxlOiBSdWxlLlJ1bGVNb2R1bGUgPSB7XG4gIG1ldGE6IHtcbiAgICBkb2NzOiB7XG4gICAgICB1cmw6IGdldERvY1VybChuYW1lKSxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIk9ubHkgYWxsb3cgYHdoaWxlYCwgYGZvcmAgYW5kIGBmb3Itb2ZgIGxvb3BzLiBgZm9yLWluYCwgYGRvLXdoaWxlYCBhbmQgYGZvci1hd2FpdC1vZmAgbG9vcHMgYXJlIGRpc2FsbG93ZWQuXCIsXG4gICAgfSxcbiAgICBtZXNzYWdlczoge1xuICAgICAgW2Ake25hbWV9L2Vycm9yYF06XG4gICAgICAgIFwiT25seSBhbGxvdyBgd2hpbGVgLCBgZm9yYCBhbmQgYGZvci1vZmAgbG9vcHMuIGBmb3ItaW5gLCBgZG8td2hpbGVgIGFuZCBgZm9yLWF3YWl0LW9mYCBsb29wcyBhcmUgZGlzYWxsb3dlZC5cIixcbiAgICB9LFxuICB9LFxuICBjcmVhdGU6IChjb250ZXh0KSA9PiAoe1xuICAgIFwiOm1hdGNoZXMoRm9ySW5TdGF0ZW1lbnQsIERvV2hpbGVTdGF0ZW1lbnQsIEZvck9mU3RhdGVtZW50W2F3YWl0PXRydWVdKVwiOiAoXG4gICAgICBub2RlOiBSdWxlLk5vZGUsXG4gICAgKSA9PiB7XG4gICAgICBjb250ZXh0LnJlcG9ydCh7IG5vZGUsIG1lc3NhZ2VJZDogYCR7bmFtZX0vZXJyb3JgIH0pO1xuICAgIH0sXG4gIH0pLFxufTtcblxuZXhwb3J0IGNvbnN0IG5vUmVzdHJpY3RlZExvb3BzID0geyBuYW1lLCBydWxlIH07XG4iXX0=
|