aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2018-01-31 06:02:13 +0800
committerBrandon Millman <brandon.millman@gmail.com>2018-01-31 06:02:13 +0800
commit4d0ff0dce4bdef031f19a2ec8891ae58f98616ee (patch)
tree94144a4ac1d367c7a20ca0a0f899c1e0308347fa
parent8aac6e46d4f23fe8eee6116aeb9570945dc9df23 (diff)
downloaddexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.tar
dexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.tar.gz
dexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.tar.bz2
dexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.tar.lz
dexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.tar.xz
dexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.tar.zst
dexon-sol-tools-4d0ff0dce4bdef031f19a2ec8891ae58f98616ee.zip
Add protected keyword to underscore lint rule
-rw-r--r--packages/tslint-config/CHANGELOG.md5
-rw-r--r--packages/tslint-config/rules/underscorePrivateAndProtectedRule.ts (renamed from packages/tslint-config/rules/underscorePrivatesRule.ts)4
-rw-r--r--packages/tslint-config/tslint.json2
3 files changed, 8 insertions, 3 deletions
diff --git a/packages/tslint-config/CHANGELOG.md b/packages/tslint-config/CHANGELOG.md
index 1d56bca5b..dac4051ea 100644
--- a/packages/tslint-config/CHANGELOG.md
+++ b/packages/tslint-config/CHANGELOG.md
@@ -1,5 +1,10 @@
# CHANGELOG
+## v0.5.0 - _TBD, 2018_
+
+ * Modified custom 'underscore-privates' rule, changing it to 'underscore-private-protected' requiring underscores to be prepended to private variable names
+ * Because our tools can be used in both a TS and JS environment, we want to make the private methods of any public facing interface show up at the bottom of auto-complete lists. Additionally, we wanted to remain consistent with respect to our usage of underscores in order to enforce this rule with a linter rule, rather then manual code reviews.
+
## v0.4.0 - _December 28, 2017_
* Added custom 'underscore-privates' rule, requiring underscores to be prepended to private variable names
diff --git a/packages/tslint-config/rules/underscorePrivatesRule.ts b/packages/tslint-config/rules/underscorePrivateAndProtectedRule.ts
index 472ea09ff..2f05b0c18 100644
--- a/packages/tslint-config/rules/underscorePrivatesRule.ts
+++ b/packages/tslint-config/rules/underscorePrivateAndProtectedRule.ts
@@ -12,7 +12,7 @@ type RelevantClassMember =
// Copied from: https://github.com/DanielRosenwasser/underscore-privates-tslint-rule
// The version on github is not published on npm
export class Rule extends Lint.Rules.AbstractRule {
- public static FAILURE_STRING = 'private members must be prefixed with an underscore';
+ public static FAILURE_STRING = 'private and protected members must be prefixed with an underscore';
public apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
return this.applyWithFunction(sourceFile, walk);
@@ -54,7 +54,7 @@ function nameStartsWithUnderscore(text: string) {
return text.charCodeAt(0) === UNDERSCORE.charCodeAt(0);
}
function memberIsPrivate(node: ts.Declaration) {
- return Lint.hasModifier(node.modifiers, ts.SyntaxKind.PrivateKeyword);
+ return Lint.hasModifier(node.modifiers, ts.SyntaxKind.PrivateKeyword, ts.SyntaxKind.ProtectedKeyword);
}
function nameIsIdentifier(node: ts.Node): node is ts.Identifier {
return node.kind === ts.SyntaxKind.Identifier;
diff --git a/packages/tslint-config/tslint.json b/packages/tslint-config/tslint.json
index 44a8517dc..3266b022f 100644
--- a/packages/tslint-config/tslint.json
+++ b/packages/tslint-config/tslint.json
@@ -73,7 +73,7 @@
],
"space-within-parens": false,
"type-literal-delimiter": true,
- "underscore-privates": true,
+ "underscore-private-and-protected": true,
"variable-name": [true, "ban-keywords", "allow-pascal-case"],
"whitespace": [
true,