Skip to content
This repository was archived by the owner on Mar 25, 2021. It is now read-only.

Commit 9d6d49a

Browse files
rwaskiewiczJosh Goldberg
authored and
Josh Goldberg
committed
Add Exclusion Names for Rule file-name-casing (#4204)
* Add Exclusion Names for Rule file-name-casing - Add exclusion option for one or more files - Add test files * Rename method for checking file exemption * Fix lint errors * address review comments * Post-merge: remove some now unnecessary tests * Ah, corrected new test cases to fail as needed * Lint complaint
1 parent 5d135e8 commit 9d6d49a

File tree

4 files changed

+23
-0
lines changed

4 files changed

+23
-0
lines changed

src/rules/fileNameCasingRule.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@ import { isCamelCased, isKebabCased, isPascalCased, isSnakeCased } from "../util
2525
enum Casing {
2626
CamelCase = "camel-case",
2727
PascalCase = "pascal-case",
28+
Ignored = "ignored",
2829
KebabCase = "kebab-case",
2930
SnakeCase = "snake-case",
3031
}
@@ -49,6 +50,8 @@ function isCorrectCasing(fileName: string, casing: Casing): boolean {
4950
return isCamelCased(fileName);
5051
case Casing.PascalCase:
5152
return isPascalCased(fileName);
53+
case Casing.Ignored:
54+
return true;
5255
case Casing.KebabCase:
5356
return isKebabCased(fileName);
5457
case Casing.SnakeCase:
@@ -142,6 +145,7 @@ export class Rule extends Lint.Rules.AbstractRule {
142145
* \`${Casing.PascalCase}\`: File names must be Pascal-cased: \`FileName.ts\`.
143146
* \`${Casing.KebabCase}\`: File names must be kebab-cased: \`file-name.ts\`.
144147
* \`${Casing.SnakeCase}\`: File names must be snake-cased: \`file_name.ts\`.
148+
* \`${Casing.Ignored}\`: File names are ignored _(useful for the object configuration)_.
145149
146150
Or an object, where the key represents a regular expression that
147151
matches the file name, and the value is the file name rule from
@@ -193,6 +197,13 @@ export class Rule extends Lint.Rules.AbstractRule {
193197
".*": Casing.CamelCase,
194198
},
195199
],
200+
[
201+
true,
202+
{
203+
".ts": Casing.Ignored,
204+
".tsx": Casing.PascalCase,
205+
},
206+
],
196207
],
197208
hasFix: false,
198209
type: "style",
@@ -214,6 +225,8 @@ export class Rule extends Lint.Rules.AbstractRule {
214225
return "camelCase";
215226
case Casing.PascalCase:
216227
return "PascalCase";
228+
case Casing.Ignored:
229+
return "ignored";
217230
case Casing.KebabCase:
218231
return "kebab-case";
219232
case Casing.SnakeCase:
Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
2+
~nil [File name must be PascalCase]

test/rules/file-name-casing/ignore/file.ts.lint

Whitespace-only changes.
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
{
2+
"rules": {
3+
"file-name-casing": [true, {
4+
".ts": "ignore",
5+
".tsx": "pascal-case"
6+
}]
7+
}
8+
}

0 commit comments

Comments
 (0)