aboutsummaryrefslogtreecommitdiffstats
path: root/packages/tslint-config/rules/underscorePrivatesRule.ts
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 /packages/tslint-config/rules/underscorePrivatesRule.ts
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
Diffstat (limited to 'packages/tslint-config/rules/underscorePrivatesRule.ts')
-rw-r--r--packages/tslint-config/rules/underscorePrivatesRule.ts61
1 files changed, 0 insertions, 61 deletions
diff --git a/packages/tslint-config/rules/underscorePrivatesRule.ts b/packages/tslint-config/rules/underscorePrivatesRule.ts
deleted file mode 100644
index 472ea09ff..000000000
--- a/packages/tslint-config/rules/underscorePrivatesRule.ts
+++ /dev/null
@@ -1,61 +0,0 @@
-import * as Lint from 'tslint';
-import * as ts from 'typescript';
-
-const UNDERSCORE = '_';
-
-type RelevantClassMember =
- | ts.MethodDeclaration
- | ts.PropertyDeclaration
- | ts.GetAccessorDeclaration
- | ts.SetAccessorDeclaration;
-
-// 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 apply(sourceFile: ts.SourceFile): Lint.RuleFailure[] {
- return this.applyWithFunction(sourceFile, walk);
- }
-}
-function walk(ctx: Lint.WalkContext<void>): void {
- traverse(ctx.sourceFile);
-
- function traverse(node: ts.Node): void {
- checkNodeForViolations(ctx, node);
- return ts.forEachChild(node, traverse);
- }
-}
-function checkNodeForViolations(ctx: Lint.WalkContext<void>, node: ts.Node): void {
- if (!isRelevantClassMember(node)) {
- return;
- }
- // The declaration might have a computed property name or a numeric name.
- const name = node.name;
- if (!nameIsIdentifier(name)) {
- return;
- }
- if (!nameStartsWithUnderscore(name.text) && memberIsPrivate(node)) {
- ctx.addFailureAtNode(name, Rule.FAILURE_STRING);
- }
-}
-function isRelevantClassMember(node: ts.Node): node is RelevantClassMember {
- switch (node.kind) {
- case ts.SyntaxKind.MethodDeclaration:
- case ts.SyntaxKind.PropertyDeclaration:
- case ts.SyntaxKind.GetAccessor:
- case ts.SyntaxKind.SetAccessor:
- return true;
- default:
- return false;
- }
-}
-function nameStartsWithUnderscore(text: string) {
- return text.charCodeAt(0) === UNDERSCORE.charCodeAt(0);
-}
-function memberIsPrivate(node: ts.Declaration) {
- return Lint.hasModifier(node.modifiers, ts.SyntaxKind.PrivateKeyword);
-}
-function nameIsIdentifier(node: ts.Node): node is ts.Identifier {
- return node.kind === ts.SyntaxKind.Identifier;
-}