33 * Licensed under the MIT License. See License.txt in the project root for license information.
44 *--------------------------------------------------------------------------------------------*/
55
6+ import { AST_NODE_TYPES , TSESTree } from '@typescript-eslint/utils' ;
67import * as eslint from 'eslint' ;
7- import { TSESTree , AST_NODE_TYPES } from '@typescript-eslint/utils ' ;
8+ import * as ESTree from 'estree ' ;
89
9- function isStringLiteral ( node : TSESTree . Node | null | undefined ) : node is TSESTree . StringLiteral {
10+ function isStringLiteral ( node : TSESTree . Node | ESTree . Node | null | undefined ) : node is TSESTree . StringLiteral {
1011 return ! ! node && node . type === AST_NODE_TYPES . Literal && typeof node . value === 'string' ;
1112}
1213
@@ -33,7 +34,7 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
3334 const externalizedStringLiterals = new Map < string , { call : TSESTree . CallExpression ; message : TSESTree . Node } [ ] > ( ) ;
3435 const doubleQuotedStringLiterals = new Set < TSESTree . Node > ( ) ;
3536
36- function collectDoubleQuotedStrings ( node : TSESTree . Literal ) {
37+ function collectDoubleQuotedStrings ( node : ESTree . Literal ) {
3738 if ( isStringLiteral ( node ) && isDoubleQuoted ( node ) ) {
3839 doubleQuotedStringLiterals . add ( node ) ;
3940 }
@@ -42,7 +43,7 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
4243 function visitLocalizeCall ( node : TSESTree . CallExpression ) {
4344
4445 // localize(key, message)
45- const [ keyNode , messageNode ] = ( < TSESTree . CallExpression > node ) . arguments ;
46+ const [ keyNode , messageNode ] = node . arguments ;
4647
4748 // (1)
4849 // extract key so that it can be checked later
@@ -81,8 +82,7 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
8182 context . report ( {
8283 loc : messageNode . loc ,
8384 messageId : 'badMessage' ,
84- // eslint-disable-next-line local/code-no-any-casts
85- data : { message : context . getSourceCode ( ) . getText ( < any > node ) }
85+ data : { message : context . getSourceCode ( ) . getText ( node as ESTree . Node ) }
8686 } ) ;
8787 }
8888 }
@@ -129,8 +129,7 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
129129 // report all invalid duplicates (same key, different message)
130130 if ( values . length > 1 ) {
131131 for ( let i = 1 ; i < values . length ; i ++ ) {
132- // eslint-disable-next-line local/code-no-any-casts
133- if ( context . getSourceCode ( ) . getText ( < any > values [ i - 1 ] . message ) !== context . getSourceCode ( ) . getText ( < any > values [ i ] . message ) ) {
132+ if ( context . getSourceCode ( ) . getText ( values [ i - 1 ] . message as ESTree . Node ) !== context . getSourceCode ( ) . getText ( values [ i ] . message as ESTree . Node ) ) {
134133 context . report ( { loc : values [ i ] . call . loc , messageId : 'duplicateKey' , data : { key } } ) ;
135134 }
136135 }
@@ -139,23 +138,23 @@ export = new class NoUnexternalizedStrings implements eslint.Rule.RuleModule {
139138 }
140139
141140 return {
142- [ 'Literal' ] : ( node : any ) => collectDoubleQuotedStrings ( node ) ,
143- [ 'ExpressionStatement[directive] Literal:exit' ] : ( node : any ) => doubleQuotedStringLiterals . delete ( node ) ,
141+ [ 'Literal' ] : ( node : ESTree . Literal ) => collectDoubleQuotedStrings ( node ) ,
142+ [ 'ExpressionStatement[directive] Literal:exit' ] : ( node : TSESTree . Literal ) => doubleQuotedStringLiterals . delete ( node ) ,
144143
145144 // localize(...)
146- [ 'CallExpression[callee.type="MemberExpression"][callee.object.name="nls"][callee.property.name="localize"]:exit' ] : ( node : any ) => visitLocalizeCall ( node ) ,
145+ [ 'CallExpression[callee.type="MemberExpression"][callee.object.name="nls"][callee.property.name="localize"]:exit' ] : ( node : TSESTree . CallExpression ) => visitLocalizeCall ( node ) ,
147146
148147 // localize2(...)
149- [ 'CallExpression[callee.type="MemberExpression"][callee.object.name="nls"][callee.property.name="localize2"]:exit' ] : ( node : any ) => visitLocalizeCall ( node ) ,
148+ [ 'CallExpression[callee.type="MemberExpression"][callee.object.name="nls"][callee.property.name="localize2"]:exit' ] : ( node : TSESTree . CallExpression ) => visitLocalizeCall ( node ) ,
150149
151150 // vscode.l10n.t(...)
152- [ 'CallExpression[callee.type="MemberExpression"][callee.object.property.name="l10n"][callee.property.name="t"]:exit' ] : ( node : any ) => visitL10NCall ( node ) ,
151+ [ 'CallExpression[callee.type="MemberExpression"][callee.object.property.name="l10n"][callee.property.name="t"]:exit' ] : ( node : TSESTree . CallExpression ) => visitL10NCall ( node ) ,
153152
154153 // l10n.t(...)
155- [ 'CallExpression[callee.object.name="l10n"][callee.property.name="t"]:exit' ] : ( node : any ) => visitL10NCall ( node ) ,
154+ [ 'CallExpression[callee.object.name="l10n"][callee.property.name="t"]:exit' ] : ( node : TSESTree . CallExpression ) => visitL10NCall ( node ) ,
156155
157- [ 'CallExpression[callee.name="localize"][arguments.length>=2]:exit' ] : ( node : any ) => visitLocalizeCall ( node ) ,
158- [ 'CallExpression[callee.name="localize2"][arguments.length>=2]:exit' ] : ( node : any ) => visitLocalizeCall ( node ) ,
156+ [ 'CallExpression[callee.name="localize"][arguments.length>=2]:exit' ] : ( node : TSESTree . CallExpression ) => visitLocalizeCall ( node ) ,
157+ [ 'CallExpression[callee.name="localize2"][arguments.length>=2]:exit' ] : ( node : TSESTree . CallExpression ) => visitLocalizeCall ( node ) ,
159158 [ 'Program:exit' ] : reportBadStringsAndBadKeys ,
160159 } ;
161160 }
0 commit comments