1 | import { TSESTree } from '../../ts-estree';
|
2 | import * as TSESLint from '../../ts-eslint';
|
3 | /**
|
4 | * Get the proper location of a given function node to report.
|
5 | *
|
6 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getfunctionheadlocation}
|
7 | */
|
8 | declare const getFunctionHeadLocation: (node: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression, sourceCode: TSESLint.SourceCode) => TSESTree.SourceLocation;
|
9 | /**
|
10 | * Get the name and kind of a given function node.
|
11 | *
|
12 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getfunctionnamewithkind}
|
13 | */
|
14 | declare const getFunctionNameWithKind: (node: TSESTree.FunctionDeclaration | TSESTree.FunctionExpression | TSESTree.ArrowFunctionExpression) => string;
|
15 | /**
|
16 | * Get the property name of a given property node.
|
17 | * If the node is a computed property, this tries to compute the property name by the getStringIfConstant function.
|
18 | *
|
19 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getpropertyname}
|
20 | * @returns The property name of the node. If the property name is not constant then it returns `null`.
|
21 | */
|
22 | declare const getPropertyName: (node: TSESTree.MemberExpression | TSESTree.Property | TSESTree.MethodDefinition, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => string | null;
|
23 | /**
|
24 | * Get the value of a given node if it can decide the value statically.
|
25 | * If the 2nd parameter `initialScope` was given, this function tries to resolve identifier references which are in the
|
26 | * given node as much as possible. In the resolving way, it does on the assumption that built-in global objects have
|
27 | * not been modified.
|
28 | * For example, it considers `Symbol.iterator`, ` String.raw``hello`` `, and `Object.freeze({a: 1}).a` as static.
|
29 | *
|
30 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstaticvalue}
|
31 | * @returns The `{ value: any }` shaped object. The `value` property is the static value. If it couldn't compute the
|
32 | * static value of the node, it returns `null`.
|
33 | */
|
34 | declare const getStaticValue: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => {
|
35 | value: unknown;
|
36 | } | null;
|
37 | /**
|
38 | * Get the string value of a given node.
|
39 | * This function is a tiny wrapper of the getStaticValue function.
|
40 | *
|
41 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#getstringifconstant}
|
42 | */
|
43 | declare const getStringIfConstant: (node: TSESTree.Node, initialScope?: import("@typescript-eslint/scope-manager/dist/scope/Scope").Scope | undefined) => string | null;
|
44 | /**
|
45 | * Check whether a given node has any side effect or not.
|
46 | * The side effect means that it may modify a certain variable or object member. This function considers the node which
|
47 | * contains the following types as the node which has side effects:
|
48 | * - `AssignmentExpression`
|
49 | * - `AwaitExpression`
|
50 | * - `CallExpression`
|
51 | * - `ImportExpression`
|
52 | * - `NewExpression`
|
53 | * - `UnaryExpression([operator = "delete"])`
|
54 | * - `UpdateExpression`
|
55 | * - `YieldExpression`
|
56 | * - When `options.considerGetters` is `true`:
|
57 | * - `MemberExpression`
|
58 | * - When `options.considerImplicitTypeConversion` is `true`:
|
59 | * - `BinaryExpression([operator = "==" | "!=" | "<" | "<=" | ">" | ">=" | "<<" | ">>" | ">>>" | "+" | "-" | "*" | "/" | "%" | "|" | "^" | "&" | "in"])`
|
60 | * - `MemberExpression([computed = true])`
|
61 | * - `MethodDefinition([computed = true])`
|
62 | * - `Property([computed = true])`
|
63 | * - `UnaryExpression([operator = "-" | "+" | "!" | "~"])`
|
64 | *
|
65 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#hassideeffect}
|
66 | */
|
67 | declare const hasSideEffect: (node: TSESTree.Node, sourceCode: TSESLint.SourceCode, options?: {
|
68 | considerGetters?: boolean | undefined;
|
69 | considerImplicitTypeConversion?: boolean | undefined;
|
70 | } | undefined) => boolean;
|
71 | /**
|
72 | * Check whether a given node is parenthesized or not.
|
73 | * This function detects it correctly even if it's parenthesized by specific syntax.
|
74 | *
|
75 | * @see {@link https://eslint-utils.mysticatea.dev/api/ast-utils.html#isparenthesized}
|
76 | * @returns `true` if the node is parenthesized.
|
77 | * If `times` was given, it returns `true` only if the node is parenthesized the `times` times.
|
78 | * For example, `isParenthesized(2, node, sourceCode)` returns true for `((foo))`, but not for `(foo)`.
|
79 | */
|
80 | declare const isParenthesized: (node: TSESTree.Node, sourceCode: TSESLint.SourceCode) => boolean;
|
81 | export { getFunctionHeadLocation, getFunctionNameWithKind, getPropertyName, getStaticValue, getStringIfConstant, hasSideEffect, isParenthesized, };
|
82 | //# sourceMappingURL=astUtilities.d.ts.map |
\ | No newline at end of file |