This repository has been archived by the owner on Aug 18, 2020. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 18
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
cartogram
committed
Aug 5, 2018
1 parent
33927af
commit eab32ae
Showing
9 changed files
with
151 additions
and
8 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Enforce pascal case when naming enums. (prefer-pascal-case-enums) | ||
|
||
Provides consistency when naming [Enums](https://www.typescriptlang.org/docs/handbook/enums.html) within TypeScript code. | ||
|
||
## Rule Details | ||
|
||
This rule enforces all TypeScript Enums to be in pascal case. An error will occur if another capitalization rule is used (such as snake case or lowercase) when naming TypeScript Enums. | ||
|
||
Examples of **incorrect** code for this rule: | ||
|
||
```ts | ||
enum sortorder { | ||
most_recent, | ||
LEAST_RECENT, | ||
newest, | ||
OLDEST | ||
} | ||
``` | ||
|
||
Examples of **correct** code for this rule: | ||
|
||
```ts | ||
enum SortOrder { | ||
MostRecent, | ||
LeastRecent, | ||
Newest, | ||
Oldest | ||
} | ||
``` | ||
|
||
## When Not To Use It | ||
|
||
If you have established coding standards using a different naming convention for TypeScript Enums, you can safely disable this rule. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
# Prefer singular TypeScript enums. (prefer-singular-enums) | ||
|
||
Provides consistency when naming [enums](https://www.typescriptlang.org/docs/handbook/enums.html) within TypeScript code. | ||
|
||
## Rule Details | ||
|
||
This rule enforces all TypeScript enums to be singular. An error will occur if the enum is defined with a pluralized name. | ||
|
||
Examples of **incorrect** code for this rule: | ||
|
||
```ts | ||
enum Pages { | ||
Products, | ||
Orders, | ||
Discounts, | ||
} | ||
``` | ||
|
||
Examples of **correct** code for this rule: | ||
|
||
```ts | ||
enum Page { | ||
Products, | ||
Orders, | ||
Discounts, | ||
} | ||
``` | ||
|
||
## When Not To Use It | ||
|
||
If you have established coding standards using a different naming convention for TypeScript enums, you can safely disable this rule. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,46 @@ | ||
const pascalCase = require('pascal-case'); | ||
|
||
module.exports = { | ||
meta: { | ||
docs: { | ||
description: 'Enforce pascal case when naming enums.', | ||
category: 'Stylistic Issues', | ||
recommended: false, | ||
uri: | ||
'https://github.com/Shopify/eslint-plugin-shopify/blob/master/docs/rules/typescript/prefer-pascal-case-enums.md', | ||
}, | ||
fixable: null, | ||
}, | ||
create(context) { | ||
function report(node) { | ||
const {name} = node; | ||
|
||
context.report({ | ||
node, | ||
message: `Enum '{{name}}' should use pascal case.`, | ||
data: {name}, | ||
}); | ||
} | ||
|
||
return { | ||
Identifier(node) { | ||
if ( | ||
node.parent.type !== 'TSEnumMember' && | ||
node.parent.type !== 'TSEnumDeclaration' | ||
) { | ||
return; | ||
} | ||
|
||
if (isPascalCase(node)) { | ||
return; | ||
} | ||
|
||
report(node); | ||
}, | ||
}; | ||
}, | ||
}; | ||
|
||
function isPascalCase({name}) { | ||
return name === pascalCase(name); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
const pluralize = require('pluralize'); | ||
|
||
module.exports = { | ||
meta: { | ||
docs: { | ||
description: 'Prefer singular TypeScript enums.', | ||
category: 'Stylistic Issues', | ||
recommended: false, | ||
uri: | ||
'https://github.com/Shopify/eslint-plugin-shopify/blob/master/docs/rules/typescript/prefer-singular-enums.md', | ||
}, | ||
fixable: null, | ||
}, | ||
create(context) { | ||
return { | ||
TSEnumDeclaration(node) { | ||
const { | ||
id: {name}, | ||
} = node; | ||
|
||
if (pluralize.isSingular(name)) { | ||
return; | ||
} | ||
|
||
context.report({ | ||
node, | ||
message: `Enum '{{name}}' should be singular.`, | ||
data: {name}, | ||
}); | ||
}, | ||
}; | ||
}, | ||
}; |
2 changes: 1 addition & 1 deletion
2
tests/lib/rules/prefer-pascal-case-enums.js → ...es/typescript/prefer-pascal-case-enums.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
2 changes: 1 addition & 1 deletion
2
tests/lib/rules/prefer-singular-enums.js → ...rules/typescript/prefer-singular-enums.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters