eslint-plugin-lingui
Version:
ESLint plugin for Lingui
55 lines (54 loc) • 3.18 kB
TypeScript
import { TSESTree } from '@typescript-eslint/utils';
/**
* Queries for TemplateLiteral in TaggedTemplateExpression expressions:
*
* t`Hello`
* msg`Hello`
* defineMessage`Hello`
*/
export declare const LinguiTaggedTemplateExpressionMessageQuery = ":matches(TaggedTemplateExpression[tag.name=t], TaggedTemplateExpression[tag.name=msg], TaggedTemplateExpression[tag.name=defineMessage]) TemplateLiteral";
/**
* Queries for TemplateLiteral | StringLiteral in CallExpression expressions:
*
* t({message: ``}); t({message: ''})
* msg({message: ``}); msg({message: ''})
* defineMessage({message: ``}); defineMessage({message: ''})
*/
export declare const LinguiCallExpressionMessageQuery = ":matches(CallExpression[callee.name=t], CallExpression[callee.name=msg], CallExpression[callee.name=defineMessage]) :matches(TemplateLiteral, Literal)";
/**
* Queries for the CallExpression node itself, unlike {@link LinguiCallExpressionMessageQuery}
* which matches descendant TemplateLiteral | Literal nodes (the message content).
* This query is needed when inspecting the call's arguments (e.g. checking for an `id` property)
* rather than the message value, and avoids firing multiple times per call.
*
* t({...})
* msg({...})
* defineMessage({...})
*/
export declare const LinguiCallExpressionQuery = ":matches(CallExpression[callee.name=t], CallExpression[callee.name=msg], CallExpression[callee.name=defineMessage])";
/**
* Queries for Trans
*
* <Trans></Trans>
*/
export declare const LinguiTransQuery = "JSXElement[openingElement.name.name=Trans]";
/**
* Queries for plural CallExpression expressions and JSX elements
*
* CallExpression: plural(numBooks, { one: "# book", other: "# books" });
* Component/JSX: <Plural value={messagesCount} one="There's # message in your inbox" other="There are # messages in your inbox" />
*/
export declare const LinguiCallExpressionPluralQuery = "CallExpression[callee.name=plural]";
export declare const LinguiPluralComponentQuery = "JSXElement[openingElement.name.name=Plural]";
export declare function isNativeDOMTag(str: string): boolean;
export declare function isSvgTag(str: string): boolean;
export declare function isAllowedDOMAttr(tag: string, attr: string, attributeNames: string[]): boolean;
export declare function getNearestAncestor<Type>(node: any, type: string): Type | null;
export declare const getText: (node: TSESTree.TemplateLiteral | TSESTree.Literal | TSESTree.JSXText, trimmed?: boolean) => string;
export declare function getIdentifierName(jsxTagNameExpression: TSESTree.JSXTagNameExpression): string;
export declare function isLiteral(node: TSESTree.Node | undefined): node is TSESTree.Literal;
export declare function isTemplateLiteral(node: TSESTree.Node | undefined): node is TSESTree.TemplateLiteral;
export declare function isIdentifier(node: TSESTree.Node | undefined): node is TSESTree.Identifier;
export declare function isMemberExpression(node: TSESTree.Node | undefined): node is TSESTree.MemberExpression;
export declare function isJSXAttribute(node: TSESTree.Node | undefined): node is TSESTree.JSXAttribute;
export declare function buildCalleePath(node: TSESTree.Expression): string;