diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-01-31 06:02:13 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-01-31 06:02:13 +0800 |
commit | 4d0ff0dce4bdef031f19a2ec8891ae58f98616ee (patch) | |
tree | 94144a4ac1d367c7a20ca0a0f899c1e0308347fa /packages/tslint-config/rules/underscorePrivatesRule.ts | |
parent | 8aac6e46d4f23fe8eee6116aeb9570945dc9df23 (diff) | |
download | dexon-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.ts | 61 |
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; -} |