Skip to content

Commit 7bac366

Browse files
author
Josh Goldberg
authored
Added converter for no-document-domain (#1072)
1 parent a142452 commit 7bac366

File tree

3 files changed

+51
-1
lines changed

3 files changed

+51
-1
lines changed

src/converters/lintConfigs/rules/ruleConverters.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,7 @@ import { convertNoCookies } from "./ruleConverters/no-cookies";
167167
import { convertNoDebugger } from "./ruleConverters/no-debugger";
168168
import { convertNoDefaultExport } from "./ruleConverters/no-default-export";
169169
import { convertNoDeleteExpression } from "./ruleConverters/no-delete-expression";
170+
import { convertNoDocumentDomain } from "./ruleConverters/no-document-domain";
170171
import { convertNoDocumentWrite } from "./ruleConverters/no-document-write";
171172
import { convertNoDuplicateImports } from "./ruleConverters/no-duplicate-imports";
172173
import { convertNoDuplicateSuper } from "./ruleConverters/no-duplicate-super";
@@ -194,7 +195,6 @@ import { convertNoMagicNumbers } from "./ruleConverters/no-magic-numbers";
194195
import { convertNoMisusedNew } from "./ruleConverters/no-misused-new";
195196
import { convertNoMultilineString } from "./ruleConverters/no-multiline-string";
196197
import { convertNoNamespace } from "./ruleConverters/no-namespace";
197-
import { convertNonLiteralFsPath } from "./ruleConverters/non-literal-fs-path";
198198
import { convertNoNonNullAssertion } from "./ruleConverters/no-non-null-assertion";
199199
import { convertNoNullKeyword } from "./ruleConverters/no-null-keyword";
200200
import { convertNoObjectLiteralTypeAssertion } from "./ruleConverters/no-object-literal-type-assertion";
@@ -230,6 +230,7 @@ import { convertNoVarKeyword } from "./ruleConverters/no-var-keyword";
230230
import { convertNoVarRequires } from "./ruleConverters/no-var-requires";
231231
import { convertNoVoidExpression } from "./ruleConverters/no-void-expression";
232232
import { convertNoWithStatement } from "./ruleConverters/no-with-statement";
233+
import { convertNonLiteralFsPath } from "./ruleConverters/non-literal-fs-path";
233234
import { convertNonLiteralRequire } from "./ruleConverters/non-literal-require";
234235
import { convertObjectLiteralKeyQuotes } from "./ruleConverters/object-literal-key-quotes";
235236
import { convertObjectLiteralShorthand } from "./ruleConverters/object-literal-shorthand";
@@ -359,6 +360,7 @@ export const ruleConverters = new Map([
359360
["no-debugger", convertNoDebugger],
360361
["no-default-export", convertNoDefaultExport],
361362
["no-delete-expression", convertNoDeleteExpression],
363+
["no-document-domain", convertNoDocumentDomain],
362364
["no-document-write", convertNoDocumentWrite],
363365
["no-duplicate-imports", convertNoDuplicateImports],
364366
["no-duplicate-string", convertNoDuplicateString],
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
import { RuleConverter } from "../ruleConverter";
2+
3+
export const convertNoDocumentDomain: RuleConverter = () => {
4+
return {
5+
rules: [
6+
{
7+
ruleArguments: [
8+
{
9+
message: 'Forbidden write to document.domain.',
10+
selector: 'AssignmentExpression[left.type="MemberExpression"][left.object.name="document"][left.property.name="domain"]',
11+
},
12+
{
13+
message: 'Forbidden write to document.domain.',
14+
selector: 'AssignmentExpression[left.type="MemberExpression"][left.object.type="MemberExpression"][left.object.object.name="window"][left.object.property.name="document"][left.property.name="domain"]',
15+
},
16+
],
17+
ruleName: "no-restricted-syntax",
18+
},
19+
],
20+
};
21+
};
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
import { convertNoDocumentDomain } from "../no-document-domain";
2+
3+
describe(convertNoDocumentDomain, () => {
4+
test("conversion without arguments", () => {
5+
const result = convertNoDocumentDomain({
6+
ruleArguments: [],
7+
});
8+
9+
expect(result).toEqual({
10+
rules: [
11+
{
12+
ruleArguments: [
13+
{
14+
message: 'Forbidden write to document.domain.',
15+
selector: 'AssignmentExpression[left.type="MemberExpression"][left.object.name="document"][left.property.name="domain"]',
16+
},
17+
{
18+
message: 'Forbidden write to document.domain.',
19+
selector: 'AssignmentExpression[left.type="MemberExpression"][left.object.type="MemberExpression"][left.object.object.name="window"][left.object.property.name="document"][left.property.name="domain"]',
20+
},
21+
],
22+
ruleName: "no-restricted-syntax",
23+
},
24+
],
25+
});
26+
});
27+
});

0 commit comments

Comments
 (0)