0
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2025-02-01 12:16:11 -05:00
denoland-deno/tests/unit/__snapshots__/lint_plugin_test.ts.snap
Marvin Hagemeister 3fb8fc1ba7
feat(unstable): refactor js lint plugin AST (#27615)
This PR changes the underlying buffer backed AST format we use for
JavaScript-based linting plugins. It adds support for various new types,
makes traversal code a lot easier and is more polished compared to
previous iterations.

Here is a quick summary (in no particular order):

- Node prop data is separate from traversal, which makes traversal code
so much easier to reason about. Previously, it was interleaved with node
prop data
- spans are in a separate table as well, as they are rarely needed.
- schema is separate from SWC conversion logic, which makes 
- supports recursive plain objects
- supports numbers
- supports bigint
- supports regex
- adds all SWC nodes

Apologies, this is kinda a big PR, but it's worth it imo.

_Marking as draft because I need to update some tests tomorrow._
2025-01-14 13:31:02 +01:00

8608 lines
127 KiB
Text

export const snapshot = {};
snapshot[`Plugin - Program 1`] = `
{
body: [],
range: [
1,
1,
],
sourceType: "script",
type: "Program",
}
`;
snapshot[`Plugin - ImportDeclaration 1`] = `
{
attributes: [],
importKind: "value",
range: [
1,
14,
],
source: {
range: [
8,
13,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [],
type: "ImportDeclaration",
}
`;
snapshot[`Plugin - ImportDeclaration 2`] = `
{
attributes: [],
importKind: "value",
range: [
1,
23,
],
source: {
range: [
17,
22,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
local: {
name: "foo",
optional: false,
range: [
8,
11,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
8,
11,
],
type: "ImportDefaultSpecifier",
},
],
type: "ImportDeclaration",
}
`;
snapshot[`Plugin - ImportDeclaration 3`] = `
{
attributes: [],
importKind: "value",
range: [
1,
28,
],
source: {
range: [
22,
27,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
local: {
name: "foo",
optional: false,
range: [
13,
16,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
8,
16,
],
type: "ImportNamespaceSpecifier",
},
],
type: "ImportDeclaration",
}
`;
snapshot[`Plugin - ImportDeclaration 4`] = `
{
attributes: [],
importKind: "value",
range: [
1,
39,
],
source: {
range: [
33,
38,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
importKind: "value",
imported: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
local: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
10,
13,
],
type: "ImportSpecifier",
},
{
importKind: "value",
imported: {
name: "bar",
optional: false,
range: [
15,
18,
],
type: "Identifier",
typeAnnotation: null,
},
local: {
name: "baz",
optional: false,
range: [
22,
25,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
15,
25,
],
type: "ImportSpecifier",
},
],
type: "ImportDeclaration",
}
`;
snapshot[`Plugin - ImportDeclaration 5`] = `
{
attributes: [
{
key: {
name: "type",
optional: false,
range: [
30,
34,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
30,
42,
],
type: "ImportAttribute",
value: {
range: [
36,
42,
],
raw: '"json"',
type: "Literal",
value: "json",
},
},
],
importKind: "value",
range: [
1,
45,
],
source: {
range: [
17,
22,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
local: {
name: "foo",
optional: false,
range: [
8,
11,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
8,
11,
],
type: "ImportDefaultSpecifier",
},
],
type: "ImportDeclaration",
}
`;
snapshot[`Plugin - ExportNamedDeclaration 1`] = `
{
attributes: [],
range: [
1,
27,
],
source: {
range: [
21,
26,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
exportKind: "value",
exported: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
local: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
10,
13,
],
type: "ExportSpecifier",
},
],
type: "ExportNamedDeclaration",
}
`;
snapshot[`Plugin - ExportNamedDeclaration 2`] = `
{
attributes: [],
range: [
1,
34,
],
source: {
range: [
28,
33,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
exportKind: "value",
exported: {
name: "baz",
optional: false,
range: [
17,
20,
],
type: "Identifier",
typeAnnotation: null,
},
local: {
name: "bar",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
10,
20,
],
type: "ExportSpecifier",
},
],
type: "ExportNamedDeclaration",
}
`;
snapshot[`Plugin - ExportNamedDeclaration 3`] = `
{
attributes: [
{
key: {
name: "type",
optional: false,
range: [
34,
38,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
34,
46,
],
type: "ImportAttribute",
value: {
range: [
40,
46,
],
raw: '"json"',
type: "Literal",
value: "json",
},
},
],
range: [
1,
49,
],
source: {
range: [
21,
26,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
specifiers: [
{
exportKind: "value",
exported: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
local: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
10,
13,
],
type: "ExportSpecifier",
},
],
type: "ExportNamedDeclaration",
}
`;
snapshot[`Plugin - ExportDefaultDeclaration 1`] = `
{
declaration: {
async: false,
body: {
body: [],
range: [
31,
33,
],
type: "BlockStatement",
},
declare: false,
generator: false,
id: {
name: "foo",
optional: false,
range: [
25,
28,
],
type: "Identifier",
typeAnnotation: null,
},
params: [],
range: [
16,
33,
],
returnType: null,
type: "FunctionDeclaration",
typeParameters: null,
},
exportKind: "value",
range: [
1,
33,
],
type: "ExportDefaultDeclaration",
}
`;
snapshot[`Plugin - ExportDefaultDeclaration 2`] = `
{
declaration: {
async: false,
body: {
body: [],
range: [
28,
30,
],
type: "BlockStatement",
},
declare: false,
generator: false,
id: null,
params: [],
range: [
16,
30,
],
returnType: null,
type: "FunctionDeclaration",
typeParameters: null,
},
exportKind: "value",
range: [
1,
30,
],
type: "ExportDefaultDeclaration",
}
`;
snapshot[`Plugin - ExportDefaultDeclaration 3`] = `
{
declaration: {
abstract: false,
body: {
body: [],
range: [
16,
28,
],
type: "ClassBody",
},
declare: false,
id: {
name: "Foo",
optional: false,
range: [
22,
25,
],
type: "Identifier",
typeAnnotation: null,
},
implements: [],
range: [
16,
28,
],
superClass: null,
type: "ClassDeclaration",
},
exportKind: "value",
range: [
1,
28,
],
type: "ExportDefaultDeclaration",
}
`;
snapshot[`Plugin - ExportDefaultDeclaration 4`] = `
{
declaration: {
abstract: false,
body: {
body: [],
range: [
16,
24,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
16,
24,
],
superClass: null,
type: "ClassDeclaration",
},
exportKind: "value",
range: [
1,
24,
],
type: "ExportDefaultDeclaration",
}
`;
snapshot[`Plugin - ExportDefaultDeclaration 5`] = `
{
declaration: {
name: "bar",
optional: false,
range: [
16,
19,
],
type: "Identifier",
typeAnnotation: null,
},
exportKind: "value",
range: [
1,
20,
],
type: "ExportDefaultDeclaration",
}
`;
snapshot[`Plugin - ExportDefaultDeclaration 6`] = `
{
declaration: {
body: {
body: [],
range: [
30,
32,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "Foo",
optional: false,
range: [
26,
29,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
16,
32,
],
type: "TSInterfaceDeclaration",
typeParameters: [],
},
exportKind: "type",
range: [
1,
32,
],
type: "ExportDefaultDeclaration",
}
`;
snapshot[`Plugin - ExportAllDeclaration 1`] = `
{
attributes: [],
exportKind: "value",
exported: null,
range: [
1,
21,
],
source: {
range: [
15,
20,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
type: "ExportAllDeclaration",
}
`;
snapshot[`Plugin - ExportAllDeclaration 2`] = `
{
attributes: [],
exportKind: "value",
exported: {
range: [
22,
27,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
range: [
1,
28,
],
source: {
name: "foo",
optional: false,
range: [
13,
16,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ExportAllDeclaration",
}
`;
snapshot[`Plugin - ExportAllDeclaration 3`] = `
{
attributes: [
{
key: {
name: "type",
optional: false,
range: [
28,
32,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
28,
40,
],
type: "ImportAttribute",
value: {
range: [
34,
40,
],
raw: '"json"',
type: "Literal",
value: "json",
},
},
],
exportKind: "value",
exported: null,
range: [
1,
43,
],
source: {
range: [
15,
20,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
type: "ExportAllDeclaration",
}
`;
snapshot[`Plugin - TSExportAssignment 1`] = `
{
expression: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
14,
],
type: "TSExportAssignment",
}
`;
snapshot[`Plugin - TSNamespaceExportDeclaration 1`] = `
{
id: {
name: "A",
optional: false,
range: [
21,
22,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
23,
],
type: "TSNamespaceExportDeclaration",
}
`;
snapshot[`Plugin - TSImportEqualsDeclaration 1`] = `
{
id: {
name: "a",
optional: false,
range: [
8,
9,
],
type: "Identifier",
typeAnnotation: null,
},
importKind: "value",
moduleReference: {
name: "b",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
13,
],
type: "TSImportEqualsDeclaration",
}
`;
snapshot[`Plugin - TSImportEqualsDeclaration 2`] = `
{
id: {
name: "a",
optional: false,
range: [
8,
9,
],
type: "Identifier",
typeAnnotation: null,
},
importKind: "value",
moduleReference: {
expression: {
range: [
20,
25,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
range: [
12,
26,
],
type: "TSExternalModuleReference",
},
range: [
1,
26,
],
type: "TSImportEqualsDeclaration",
}
`;
snapshot[`Plugin - BlockStatement 1`] = `
{
body: [
{
expression: {
name: "foo",
optional: false,
range: [
3,
6,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
3,
7,
],
type: "ExpressionStatement",
},
],
range: [
1,
9,
],
type: "BlockStatement",
}
`;
snapshot[`Plugin - BreakStatement 1`] = `
{
label: null,
range: [
15,
21,
],
type: "BreakStatement",
}
`;
snapshot[`Plugin - BreakStatement 2`] = `
{
label: {
name: "foo",
optional: false,
range: [
26,
29,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
20,
30,
],
type: "BreakStatement",
}
`;
snapshot[`Plugin - ContinueStatement 1`] = `
{
label: null,
range: [
1,
10,
],
type: "ContinueStatement",
}
`;
snapshot[`Plugin - ContinueStatement 2`] = `
{
label: {
name: "foo",
optional: false,
range: [
10,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
14,
],
type: "ContinueStatement",
}
`;
snapshot[`Plugin - DebuggerStatement 1`] = `
{
range: [
1,
10,
],
type: "DebuggerStatement",
}
`;
snapshot[`Plugin - DoWhileStatement 1`] = `
{
body: {
body: [],
range: [
4,
6,
],
type: "BlockStatement",
},
range: [
1,
19,
],
test: {
name: "foo",
optional: false,
range: [
14,
17,
],
type: "Identifier",
typeAnnotation: null,
},
type: "DoWhileStatement",
}
`;
snapshot[`Plugin - ExpressionStatement 1`] = `
{
expression: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
5,
],
type: "ExpressionStatement",
}
`;
snapshot[`Plugin - ForInStatement 1`] = `
{
body: {
body: [],
range: [
14,
16,
],
type: "BlockStatement",
},
left: {
name: "a",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
16,
],
right: {
name: "b",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ForInStatement",
}
`;
snapshot[`Plugin - ForOfStatement 1`] = `
{
await: false,
body: {
body: [],
range: [
14,
16,
],
type: "BlockStatement",
},
left: {
name: "a",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
16,
],
right: {
name: "b",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ForOfStatement",
}
`;
snapshot[`Plugin - ForOfStatement 2`] = `
{
await: true,
body: {
body: [],
range: [
20,
22,
],
type: "BlockStatement",
},
left: {
name: "a",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
22,
],
right: {
name: "b",
optional: false,
range: [
17,
18,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ForOfStatement",
}
`;
snapshot[`Plugin - ForStatement 1`] = `
{
body: {
body: [],
range: [
10,
12,
],
type: "BlockStatement",
},
init: null,
range: [
1,
12,
],
test: null,
type: "ForStatement",
update: null,
}
`;
snapshot[`Plugin - ForStatement 2`] = `
{
body: {
body: [],
range: [
15,
17,
],
type: "BlockStatement",
},
init: {
name: "a",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
17,
],
test: {
name: "b",
optional: false,
range: [
9,
10,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ForStatement",
update: {
name: "c",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
}
`;
snapshot[`Plugin - IfStatement 1`] = `
{
alternate: null,
consequent: {
body: [],
range: [
10,
12,
],
type: "BlockStatement",
},
range: [
1,
12,
],
test: {
name: "foo",
optional: false,
range: [
5,
8,
],
type: "Identifier",
typeAnnotation: null,
},
type: "IfStatement",
}
`;
snapshot[`Plugin - IfStatement 2`] = `
{
alternate: {
body: [],
range: [
18,
20,
],
type: "BlockStatement",
},
consequent: {
body: [],
range: [
10,
12,
],
type: "BlockStatement",
},
range: [
1,
20,
],
test: {
name: "foo",
optional: false,
range: [
5,
8,
],
type: "Identifier",
typeAnnotation: null,
},
type: "IfStatement",
}
`;
snapshot[`Plugin - LabeledStatement 1`] = `
{
body: {
body: [],
range: [
6,
8,
],
type: "BlockStatement",
},
label: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
8,
],
type: "LabeledStatement",
}
`;
snapshot[`Plugin - ReturnStatement 1`] = `
{
argument: null,
range: [
1,
7,
],
type: "ReturnStatement",
}
`;
snapshot[`Plugin - ReturnStatement 2`] = `
{
argument: {
name: "foo",
optional: false,
range: [
8,
11,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
12,
],
type: "ReturnStatement",
}
`;
snapshot[`Plugin - SwitchStatement 1`] = `
{
cases: [
{
consequent: [],
range: [
22,
31,
],
test: {
name: "foo",
optional: false,
range: [
27,
30,
],
type: "Identifier",
typeAnnotation: null,
},
type: "SwitchCase",
},
{
consequent: [
{
label: null,
range: [
56,
62,
],
type: "BreakStatement",
},
],
range: [
38,
62,
],
test: {
name: "bar",
optional: false,
range: [
43,
46,
],
type: "Identifier",
typeAnnotation: null,
},
type: "SwitchCase",
},
{
consequent: [
{
body: [],
range: [
86,
88,
],
type: "BlockStatement",
},
],
range: [
69,
88,
],
test: null,
type: "SwitchCase",
},
],
discriminant: {
name: "foo",
optional: false,
range: [
9,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
94,
],
type: "SwitchStatement",
}
`;
snapshot[`Plugin - ThrowStatement 1`] = `
{
argument: {
name: "foo",
optional: false,
range: [
7,
10,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
11,
],
type: "ThrowStatement",
}
`;
snapshot[`Plugin - TryStatement 1`] = `
{
block: {
body: [],
range: [
5,
7,
],
type: "BlockStatement",
},
finalizer: null,
handler: {
body: {
body: [],
range: [
14,
16,
],
type: "BlockStatement",
},
param: null,
range: [
8,
16,
],
type: "CatchClause",
},
range: [
1,
16,
],
type: "TryStatement",
}
`;
snapshot[`Plugin - TryStatement 2`] = `
{
block: {
body: [],
range: [
5,
7,
],
type: "BlockStatement",
},
finalizer: null,
handler: {
body: {
body: [],
range: [
18,
20,
],
type: "BlockStatement",
},
param: {
name: "e",
optional: false,
range: [
15,
16,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
8,
20,
],
type: "CatchClause",
},
range: [
1,
20,
],
type: "TryStatement",
}
`;
snapshot[`Plugin - TryStatement 3`] = `
{
block: {
body: [],
range: [
5,
7,
],
type: "BlockStatement",
},
finalizer: {
body: [],
range: [
16,
18,
],
type: "BlockStatement",
},
handler: null,
range: [
1,
18,
],
type: "TryStatement",
}
`;
snapshot[`Plugin - WhileStatement 1`] = `
{
body: {
body: [],
range: [
13,
15,
],
type: "BlockStatement",
},
range: [
1,
15,
],
test: {
name: "foo",
optional: false,
range: [
8,
11,
],
type: "Identifier",
typeAnnotation: null,
},
type: "WhileStatement",
}
`;
snapshot[`Plugin - WithStatement 1`] = `
{
body: {
body: [],
range: [
11,
13,
],
type: "BlockStatement",
},
object: {
elements: [],
range: [
7,
9,
],
type: "ArrayExpression",
},
range: [
1,
13,
],
type: "WithStatement",
}
`;
snapshot[`Plugin - ArrayExpression 1`] = `
{
elements: [
{
elements: [],
range: [
2,
4,
],
type: "ArrayExpression",
},
],
range: [
1,
9,
],
type: "ArrayExpression",
}
`;
snapshot[`Plugin - ArrowFunctionExpression 1`] = `
{
async: false,
body: {
body: [],
range: [
7,
9,
],
type: "BlockStatement",
},
generator: false,
params: [],
range: [
1,
9,
],
returnType: null,
type: "ArrowFunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - ArrowFunctionExpression 2`] = `
{
async: true,
body: {
body: [],
range: [
13,
15,
],
type: "BlockStatement",
},
generator: false,
params: [],
range: [
1,
15,
],
returnType: null,
type: "ArrowFunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - ArrowFunctionExpression 3`] = `
{
async: false,
body: {
body: [],
range: [
34,
36,
],
type: "BlockStatement",
},
generator: false,
params: [
{
name: "a",
optional: false,
range: [
2,
11,
],
type: "Identifier",
typeAnnotation: {
range: [
3,
11,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
5,
11,
],
type: "TSNumberKeyword",
},
},
},
{
argument: {
name: "b",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
13,
24,
],
type: "RestElement",
typeAnnotation: {
range: [
17,
24,
],
type: "TSTypeAnnotation",
typeAnnotation: {
elementType: {
range: [
19,
22,
],
type: "TSAnyKeyword",
},
range: [
19,
24,
],
type: "TSArrayType",
},
},
},
],
range: [
1,
36,
],
returnType: {
range: [
25,
30,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
27,
30,
],
type: "TSAnyKeyword",
},
},
type: "ArrowFunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - AssignmentExpression 1`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "=",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "AssignmentExpression",
}
`;
snapshot[`Plugin - AssignmentExpression 2`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "=",
range: [
1,
12,
],
right: {
left: {
name: "a",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "??=",
range: [
5,
12,
],
right: {
name: "b",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
type: "AssignmentExpression",
},
type: "AssignmentExpression",
}
`;
snapshot[`Plugin - AwaitExpression 1`] = `
{
argument: {
name: "foo",
optional: false,
range: [
7,
10,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
10,
],
type: "AwaitExpression",
}
`;
snapshot[`Plugin - BinaryExpression 1`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: ">",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 2`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: ">=",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 3`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "<",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 4`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "<=",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 5`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "==",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 6`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "===",
range: [
1,
8,
],
right: {
name: "b",
optional: false,
range: [
7,
8,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 7`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "!=",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 8`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "!=",
range: [
1,
8,
],
right: {
name: "b",
optional: false,
range: [
7,
8,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 9`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "<<",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 10`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: ">>",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 11`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: ">>>",
range: [
1,
8,
],
right: {
name: "b",
optional: false,
range: [
7,
8,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 12`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "+",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 13`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "-",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 14`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "*",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 15`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "/",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 16`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "%",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 17`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "|",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 18`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "^",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 19`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "&",
range: [
1,
6,
],
right: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 20`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "in",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - BinaryExpression 21`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "**",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
}
`;
snapshot[`Plugin - CallExpression 1`] = `
{
arguments: [],
callee: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
1,
6,
],
type: "CallExpression",
typeArguments: null,
}
`;
snapshot[`Plugin - CallExpression 2`] = `
{
arguments: [
{
name: "a",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
{
argument: {
name: "b",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
8,
11,
],
type: "SpreadElement",
},
],
callee: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
1,
13,
],
type: "CallExpression",
typeArguments: null,
}
`;
snapshot[`Plugin - CallExpression 3`] = `
{
arguments: [],
callee: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
optional: true,
range: [
1,
8,
],
type: "CallExpression",
typeArguments: null,
}
`;
snapshot[`Plugin - CallExpression 4`] = `
{
arguments: [],
callee: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
1,
9,
],
type: "CallExpression",
typeArguments: {
params: [
{
range: [
5,
6,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
4,
7,
],
type: "TSTypeParameterInstantiation",
},
}
`;
snapshot[`Plugin - ChainExpression 1`] = `
{
expression: {
computed: false,
object: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
optional: true,
property: {
name: "b",
optional: false,
range: [
4,
5,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
5,
],
type: "MemberExpression",
},
range: [
1,
5,
],
type: "ChainExpression",
}
`;
snapshot[`Plugin - ClassExpression 1`] = `
{
abstract: false,
body: {
body: [],
range: [
5,
13,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
13,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 2`] = `
{
abstract: false,
body: {
body: [],
range: [
5,
17,
],
type: "ClassBody",
},
declare: false,
id: {
name: "Foo",
optional: false,
range: [
11,
14,
],
type: "Identifier",
typeAnnotation: null,
},
implements: [],
range: [
5,
17,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 3`] = `
{
abstract: false,
body: {
body: [],
range: [
5,
29,
],
type: "ClassBody",
},
declare: false,
id: {
name: "Foo",
optional: false,
range: [
11,
14,
],
type: "Identifier",
typeAnnotation: null,
},
implements: [],
range: [
5,
29,
],
superClass: {
name: "Bar",
optional: false,
range: [
23,
26,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 4`] = `
{
abstract: false,
body: {
body: [],
range: [
5,
50,
],
type: "ClassBody",
},
declare: false,
id: {
name: "Foo",
optional: false,
range: [
11,
14,
],
type: "Identifier",
typeAnnotation: null,
},
implements: [
{
expression: {
name: "Baz",
optional: false,
range: [
38,
41,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
38,
41,
],
type: "TSClassImplements",
typeArguments: null,
},
{
expression: {
name: "Baz2",
optional: false,
range: [
43,
47,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
43,
47,
],
type: "TSClassImplements",
typeArguments: null,
},
],
range: [
5,
50,
],
superClass: {
name: "Bar",
optional: false,
range: [
23,
26,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 5`] = `
{
abstract: false,
body: {
body: [],
range: [
5,
20,
],
type: "ClassBody",
},
declare: false,
id: {
name: "Foo",
optional: false,
range: [
11,
14,
],
type: "Identifier",
typeAnnotation: null,
},
implements: [],
range: [
5,
20,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 6`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
key: {
name: "foo",
optional: false,
range: [
13,
16,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "method",
optional: false,
override: false,
range: [
13,
21,
],
static: false,
type: "MethodDefinition",
value: {
async: false,
body: {
body: [],
range: [
19,
21,
],
type: "BlockStatement",
},
generator: false,
id: null,
params: [],
range: [
13,
21,
],
returnType: null,
type: "FunctionExpression",
typeParameters: null,
},
},
],
range: [
5,
23,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
23,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 7`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
key: {
name: "foo",
range: [
13,
17,
],
type: "PrivateIdentifier",
},
kind: "method",
optional: false,
override: false,
range: [
13,
22,
],
static: false,
type: "MethodDefinition",
value: {
async: false,
body: {
body: [],
range: [
20,
22,
],
type: "BlockStatement",
},
generator: false,
id: null,
params: [],
range: [
13,
22,
],
returnType: null,
type: "FunctionExpression",
typeParameters: null,
},
},
],
range: [
5,
24,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
24,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 8`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
decorators: [],
key: {
name: "foo",
optional: false,
range: [
13,
16,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
override: false,
range: [
13,
24,
],
readonly: false,
static: false,
type: "PropertyDefinition",
value: null,
},
],
range: [
5,
26,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
26,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 9`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
decorators: [],
key: {
name: "foo",
optional: false,
range: [
13,
16,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
override: false,
range: [
13,
22,
],
readonly: false,
static: false,
type: "PropertyDefinition",
value: {
name: "bar",
optional: false,
range: [
19,
22,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
5,
24,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
24,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 10`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
key: {
name: "constructor",
optional: false,
range: [
13,
24,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "constructor",
optional: false,
override: false,
range: [
13,
47,
],
static: false,
type: "MethodDefinition",
value: {
async: false,
body: {
body: [],
range: [
45,
47,
],
type: "BlockStatement",
},
generator: false,
id: null,
params: [
{
accessibility: undefined,
decorators: [],
override: false,
parameter: {
name: "foo",
optional: false,
range: [
32,
35,
],
type: "Identifier",
typeAnnotation: {
range: [
35,
43,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
37,
43,
],
type: "TSStringKeyword",
},
},
},
range: [
25,
43,
],
readonly: false,
static: false,
type: "TSParameterProperty",
},
],
range: [
13,
47,
],
returnType: null,
type: "FunctionExpression",
typeParameters: null,
},
},
],
range: [
5,
49,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
49,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 11`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
decorators: [],
key: {
name: "foo",
range: [
13,
17,
],
type: "PrivateIdentifier",
},
optional: false,
override: false,
range: [
13,
31,
],
readonly: false,
static: false,
type: "PropertyDefinition",
value: {
name: "bar",
optional: false,
range: [
28,
31,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
5,
33,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
33,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 12`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
decorators: [],
key: {
name: "foo",
optional: false,
range: [
20,
23,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
override: false,
range: [
13,
29,
],
readonly: false,
static: true,
type: "PropertyDefinition",
value: {
name: "bar",
optional: false,
range: [
26,
29,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
5,
31,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
31,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ClassExpression 13`] = `
{
abstract: false,
body: {
body: [
{
accessibility: undefined,
computed: false,
declare: false,
decorators: [],
key: {
name: "foo",
optional: false,
range: [
20,
23,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
override: false,
range: [
13,
24,
],
readonly: false,
static: true,
type: "PropertyDefinition",
value: null,
},
{
body: {
body: [
{
expression: {
left: {
name: "foo",
optional: false,
range: [
34,
37,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "=",
range: [
34,
43,
],
right: {
name: "bar",
optional: false,
range: [
40,
43,
],
type: "Identifier",
typeAnnotation: null,
},
type: "AssignmentExpression",
},
range: [
34,
43,
],
type: "ExpressionStatement",
},
],
range: [
32,
45,
],
type: "BlockStatement",
},
range: [
25,
45,
],
type: "StaticBlock",
},
],
range: [
5,
47,
],
type: "ClassBody",
},
declare: false,
id: null,
implements: [],
range: [
5,
47,
],
superClass: null,
type: "ClassExpression",
}
`;
snapshot[`Plugin - ConditionalExpression 1`] = `
{
alternate: {
name: "c",
optional: false,
range: [
9,
10,
],
type: "Identifier",
typeAnnotation: null,
},
consequent: {
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
10,
],
test: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
type: "ConditionalExpression",
}
`;
snapshot[`Plugin - FunctionExpression 1`] = `
{
async: false,
body: {
body: [],
range: [
17,
19,
],
type: "BlockStatement",
},
generator: false,
id: null,
params: [],
range: [
5,
19,
],
returnType: null,
type: "FunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - FunctionExpression 2`] = `
{
async: false,
body: {
body: [],
range: [
20,
22,
],
type: "BlockStatement",
},
generator: false,
id: {
name: "foo",
optional: false,
range: [
14,
17,
],
type: "Identifier",
typeAnnotation: null,
},
params: [],
range: [
5,
22,
],
returnType: null,
type: "FunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - FunctionExpression 3`] = `
{
async: false,
body: {
body: [],
range: [
45,
47,
],
type: "BlockStatement",
},
generator: false,
id: null,
params: [
{
name: "a",
optional: true,
range: [
15,
16,
],
type: "Identifier",
typeAnnotation: {
range: [
17,
25,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
19,
25,
],
type: "TSNumberKeyword",
},
},
},
{
argument: {
name: "b",
optional: false,
range: [
30,
31,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
27,
38,
],
type: "RestElement",
typeAnnotation: {
range: [
31,
38,
],
type: "TSTypeAnnotation",
typeAnnotation: {
elementType: {
range: [
33,
36,
],
type: "TSAnyKeyword",
},
range: [
33,
38,
],
type: "TSArrayType",
},
},
},
],
range: [
5,
47,
],
returnType: {
range: [
39,
44,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
41,
44,
],
type: "TSAnyKeyword",
},
},
type: "FunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - FunctionExpression 4`] = `
{
async: true,
body: {
body: [],
range: [
24,
26,
],
type: "BlockStatement",
},
generator: true,
id: null,
params: [],
range: [
5,
26,
],
returnType: null,
type: "FunctionExpression",
typeParameters: null,
}
`;
snapshot[`Plugin - Identifier 1`] = `
{
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
}
`;
snapshot[`Plugin - ImportExpression 1`] = `
{
options: {
properties: [
{
computed: false,
key: {
name: "with",
optional: false,
range: [
17,
21,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "init",
method: false,
range: [
17,
39,
],
shorthand: false,
type: "Property",
value: {
properties: [
{
computed: false,
key: {
name: "type",
optional: false,
range: [
25,
29,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "init",
method: false,
range: [
25,
37,
],
shorthand: false,
type: "Property",
value: {
range: [
31,
37,
],
raw: "'json'",
type: "Literal",
value: "json",
},
},
],
range: [
23,
39,
],
type: "ObjectExpression",
},
},
],
range: [
15,
41,
],
type: "ObjectExpression",
},
range: [
1,
42,
],
source: {
range: [
8,
13,
],
raw: "'foo'",
type: "Literal",
value: "foo",
},
type: "ImportExpression",
}
`;
snapshot[`Plugin - LogicalExpression 1`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "&&",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "LogicalExpression",
}
`;
snapshot[`Plugin - LogicalExpression 2`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "||",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "LogicalExpression",
}
`;
snapshot[`Plugin - LogicalExpression 3`] = `
{
left: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "??",
range: [
1,
7,
],
right: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
type: "LogicalExpression",
}
`;
snapshot[`Plugin - MemberExpression 1`] = `
{
computed: false,
object: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
property: {
name: "b",
optional: false,
range: [
3,
4,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
4,
],
type: "MemberExpression",
}
`;
snapshot[`Plugin - MemberExpression 2`] = `
{
computed: true,
object: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
property: {
range: [
3,
6,
],
raw: "'b'",
type: "Literal",
value: "b",
},
range: [
1,
7,
],
type: "MemberExpression",
}
`;
snapshot[`Plugin - MetaProperty 1`] = `
{
property: {
name: "meta",
optional: false,
range: [
1,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
12,
],
type: "MetaProperty",
}
`;
snapshot[`Plugin - NewExpression 1`] = `
{
arguments: [],
callee: {
name: "Foo",
optional: false,
range: [
5,
8,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
10,
],
type: "NewExpression",
typeArguments: null,
}
`;
snapshot[`Plugin - NewExpression 2`] = `
{
arguments: [
{
name: "a",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
{
argument: {
name: "b",
optional: false,
range: [
18,
19,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
15,
18,
],
type: "SpreadElement",
},
],
callee: {
name: "Foo",
optional: false,
range: [
5,
8,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
20,
],
type: "NewExpression",
typeArguments: {
params: [
{
range: [
9,
10,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
9,
10,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
8,
11,
],
type: "TSTypeParameterInstantiation",
},
}
`;
snapshot[`Plugin - ObjectExpression 1`] = `
{
properties: [],
range: [
5,
7,
],
type: "ObjectExpression",
}
`;
snapshot[`Plugin - ObjectExpression 2`] = `
{
properties: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
7,
8,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "init",
method: false,
range: [
7,
8,
],
shorthand: true,
type: "Property",
value: {
name: "a",
optional: false,
range: [
7,
8,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
5,
10,
],
type: "ObjectExpression",
}
`;
snapshot[`Plugin - ObjectExpression 3`] = `
{
properties: [
{
computed: false,
key: {
name: "b",
optional: false,
range: [
7,
8,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "init",
method: false,
range: [
7,
11,
],
shorthand: false,
type: "Property",
value: {
name: "c",
optional: false,
range: [
10,
11,
],
type: "Identifier",
typeAnnotation: null,
},
},
{
computed: true,
key: {
name: "c",
optional: false,
range: [
14,
15,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "init",
method: false,
range: [
13,
19,
],
shorthand: false,
type: "Property",
value: {
name: "d",
optional: false,
range: [
18,
19,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
5,
21,
],
type: "ObjectExpression",
}
`;
snapshot[`Plugin - PrivateIdentifier 1`] = `
{
name: "foo",
range: [
13,
17,
],
type: "PrivateIdentifier",
}
`;
snapshot[`Plugin - SequenceExpression 1`] = `
{
expressions: [
{
name: "a",
optional: false,
range: [
2,
3,
],
type: "Identifier",
typeAnnotation: null,
},
{
name: "b",
optional: false,
range: [
5,
6,
],
type: "Identifier",
typeAnnotation: null,
},
],
range: [
2,
6,
],
type: "SequenceExpression",
}
`;
snapshot[`Plugin - Super 1`] = `
{
range: [
41,
46,
],
type: "Super",
}
`;
snapshot[`Plugin - TaggedTemplateExpression 1`] = `
{
quasi: {
expressions: [
{
name: "bar",
optional: false,
range: [
11,
14,
],
type: "Identifier",
typeAnnotation: null,
},
],
quasis: [
{
cooked: "foo ",
range: [
5,
9,
],
raw: "foo ",
tail: false,
type: "TemplateElement",
},
{
cooked: " baz",
range: [
15,
19,
],
raw: " baz",
tail: true,
type: "TemplateElement",
},
],
range: [
4,
20,
],
type: "TemplateLiteral",
},
range: [
1,
20,
],
tag: {
name: "foo",
optional: false,
range: [
1,
4,
],
type: "Identifier",
typeAnnotation: null,
},
type: "TaggedTemplateExpression",
typeArguments: null,
}
`;
snapshot[`Plugin - TemplateLiteral 1`] = `
{
expressions: [
{
name: "bar",
optional: false,
range: [
8,
11,
],
type: "Identifier",
typeAnnotation: null,
},
],
quasis: [
{
cooked: "foo ",
range: [
2,
6,
],
raw: "foo ",
tail: false,
type: "TemplateElement",
},
{
cooked: " baz",
range: [
12,
16,
],
raw: " baz",
tail: true,
type: "TemplateElement",
},
],
range: [
1,
17,
],
type: "TemplateLiteral",
}
`;
snapshot[`Plugin - ThisExpression 1`] = `
{
range: [
1,
5,
],
type: "ThisExpression",
}
`;
snapshot[`Plugin - TSAsExpression 1`] = `
{
expression: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
7,
],
type: "TSAsExpression",
typeAnnotation: {
range: [
6,
7,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "b",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
},
}
`;
snapshot[`Plugin - TSAsExpression 2`] = `
{
expression: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
11,
],
type: "TSAsExpression",
typeAnnotation: {
range: [
1,
11,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "const",
optional: false,
range: [
1,
11,
],
type: "Identifier",
typeAnnotation: null,
},
},
}
`;
snapshot[`Plugin - TSNonNullExpression 1`] = `
{
expression: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
3,
],
type: "TSNonNullExpression",
}
`;
snapshot[`Plugin - TSSatisfiesExpression 1`] = `
{
expression: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
14,
],
type: "TSSatisfiesExpression",
typeAnnotation: {
range: [
13,
14,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "b",
optional: false,
range: [
13,
14,
],
type: "Identifier",
typeAnnotation: null,
},
},
}
`;
snapshot[`Plugin - UnaryExpression 1`] = `
{
argument: {
name: "a",
optional: false,
range: [
8,
9,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "typeof",
range: [
1,
9,
],
type: "UnaryExpression",
}
`;
snapshot[`Plugin - UnaryExpression 2`] = `
{
argument: {
range: [
6,
7,
],
raw: "0",
type: "Literal",
value: 0,
},
operator: "void",
range: [
1,
7,
],
type: "UnaryExpression",
}
`;
snapshot[`Plugin - UnaryExpression 3`] = `
{
argument: {
name: "a",
optional: false,
range: [
2,
3,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "-",
range: [
1,
3,
],
type: "UnaryExpression",
}
`;
snapshot[`Plugin - UnaryExpression 4`] = `
{
argument: {
name: "a",
optional: false,
range: [
2,
3,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "+",
range: [
1,
3,
],
type: "UnaryExpression",
}
`;
snapshot[`Plugin - UpdateExpression 1`] = `
{
argument: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "++",
prefix: false,
range: [
1,
4,
],
type: "UpdateExpression",
}
`;
snapshot[`Plugin - UpdateExpression 2`] = `
{
argument: {
name: "a",
optional: false,
range: [
3,
4,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "++",
prefix: true,
range: [
1,
4,
],
type: "UpdateExpression",
}
`;
snapshot[`Plugin - UpdateExpression 3`] = `
{
argument: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "--",
prefix: false,
range: [
1,
4,
],
type: "UpdateExpression",
}
`;
snapshot[`Plugin - UpdateExpression 4`] = `
{
argument: {
name: "a",
optional: false,
range: [
3,
4,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "--",
prefix: true,
range: [
1,
4,
],
type: "UpdateExpression",
}
`;
snapshot[`Plugin - YieldExpression 1`] = `
{
argument: {
name: "bar",
optional: false,
range: [
25,
28,
],
type: "Identifier",
typeAnnotation: null,
},
delegate: false,
range: [
19,
28,
],
type: "YieldExpression",
}
`;
snapshot[`Plugin - Literal 1`] = `
{
range: [
1,
2,
],
raw: "1",
type: "Literal",
value: 1,
}
`;
snapshot[`Plugin - Literal 2`] = `
{
range: [
1,
6,
],
raw: "'foo'",
type: "Literal",
value: "foo",
}
`;
snapshot[`Plugin - Literal 3`] = `
{
range: [
1,
6,
],
raw: '"foo"',
type: "Literal",
value: "foo",
}
`;
snapshot[`Plugin - Literal 4`] = `
{
range: [
1,
5,
],
raw: "true",
type: "Literal",
value: true,
}
`;
snapshot[`Plugin - Literal 5`] = `
{
range: [
1,
6,
],
raw: "false",
type: "Literal",
value: false,
}
`;
snapshot[`Plugin - Literal 6`] = `
{
range: [
1,
5,
],
raw: "null",
type: "Literal",
value: null,
}
`;
snapshot[`Plugin - Literal 7`] = `
{
bigint: "1",
range: [
1,
3,
],
raw: "1n",
type: "Literal",
value: 1n,
}
`;
snapshot[`Plugin - Literal 8`] = `
{
range: [
1,
7,
],
raw: "/foo/g",
regex: {
flags: "g",
pattern: "foo",
},
type: "Literal",
value: /foo/g,
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 1`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
8,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
8,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 2`] = `
{
children: [],
closingElement: {
name: {
name: "div",
range: [
8,
11,
],
type: "JSXIdentifier",
},
range: [
6,
12,
],
type: "JSXClosingElement",
},
openingElement: {
attributes: [],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
6,
],
selfClosing: false,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
12,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 3`] = `
{
children: [],
closingElement: {
name: {
name: "div",
range: [
10,
13,
],
type: "JSXIdentifier",
},
range: [
8,
14,
],
type: "JSXClosingElement",
},
openingElement: {
attributes: [
{
name: {
name: "a",
range: [
6,
7,
],
type: "JSXIdentifier",
},
range: [
6,
7,
],
type: "JSXAttribute",
value: null,
},
],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
8,
],
selfClosing: false,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
14,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 4`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [
{
name: {
name: "a",
range: [
6,
7,
],
type: "JSXIdentifier",
},
range: [
6,
11,
],
type: "JSXAttribute",
value: {
range: [
8,
11,
],
raw: '"b"',
type: "Literal",
value: "b",
},
},
],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
14,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
14,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 5`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [
{
name: {
name: "a",
range: [
6,
7,
],
type: "JSXIdentifier",
},
range: [
6,
11,
],
type: "JSXAttribute",
value: {
expression: {
range: [
9,
10,
],
raw: "2",
type: "Literal",
value: 2,
},
range: [
8,
11,
],
type: "JSXExpressionContainer",
},
},
],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
14,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
14,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 6`] = `
{
children: [
{
range: [
6,
9,
],
raw: "foo",
type: "JSXText",
value: "foo",
},
{
expression: {
range: [
10,
11,
],
raw: "2",
type: "Literal",
value: 2,
},
range: [
9,
12,
],
type: "JSXExpressionContainer",
},
],
closingElement: {
name: {
name: "div",
range: [
14,
17,
],
type: "JSXIdentifier",
},
range: [
12,
18,
],
type: "JSXClosingElement",
},
openingElement: {
attributes: [],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
6,
],
selfClosing: false,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
18,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 7`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [],
name: {
object: {
name: "a",
range: [
2,
3,
],
type: "JSXIdentifier",
},
property: {
name: "b",
range: [
4,
5,
],
type: "JSXIdentifier",
},
range: [
2,
5,
],
type: "JSXMemberExpression",
},
range: [
1,
8,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
8,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 8`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [
{
name: {
name: {
name: "b",
range: [
8,
9,
],
type: "JSXIdentifier",
},
namespace: {
name: "a",
range: [
6,
7,
],
type: "JSXIdentifier",
},
range: [
6,
9,
],
type: "JSXNamespacedName",
},
range: [
6,
13,
],
type: "JSXAttribute",
value: {
expression: {
range: [
11,
12,
],
raw: "2",
type: "Literal",
value: 2,
},
range: [
10,
13,
],
type: "JSXExpressionContainer",
},
},
],
name: {
name: "div",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
16,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
16,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 9`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [],
name: {
name: "Foo",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
8,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: null,
},
range: [
1,
8,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXElement + JSXOpeningElement + JSXClosingElement + JSXAttr 10`] = `
{
children: [],
closingElement: null,
openingElement: {
attributes: [],
name: {
name: "Foo",
range: [
2,
5,
],
type: "JSXIdentifier",
},
range: [
1,
11,
],
selfClosing: true,
type: "JSXOpeningElement",
typeArguments: {
params: [
{
range: [
6,
7,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
5,
8,
],
type: "TSTypeParameterInstantiation",
},
},
range: [
1,
11,
],
type: "JSXElement",
}
`;
snapshot[`Plugin - JSXFragment + JSXOpeningFragment + JSXClosingFragment 1`] = `
{
children: [],
closingFragment: {
range: [
3,
6,
],
type: "JSXClosingFragment",
},
openingFragment: {
range: [
1,
3,
],
type: "JSXOpeningFragment",
},
range: [
1,
6,
],
type: "JSXFragment",
}
`;
snapshot[`Plugin - JSXFragment + JSXOpeningFragment + JSXClosingFragment 2`] = `
{
children: [
{
range: [
3,
6,
],
raw: "foo",
type: "JSXText",
value: "foo",
},
{
expression: {
range: [
7,
8,
],
raw: "2",
type: "Literal",
value: 2,
},
range: [
6,
9,
],
type: "JSXExpressionContainer",
},
],
closingFragment: {
range: [
9,
12,
],
type: "JSXClosingFragment",
},
openingFragment: {
range: [
1,
3,
],
type: "JSXOpeningFragment",
},
range: [
1,
12,
],
type: "JSXFragment",
}
`;
snapshot[`Plugin - TSAsExpression 3`] = `
{
expression: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
9,
],
type: "TSAsExpression",
typeAnnotation: {
range: [
6,
9,
],
type: "TSAnyKeyword",
},
}
`;
snapshot[`Plugin - TSAsExpression 4`] = `
{
expression: {
range: [
1,
6,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
range: [
1,
15,
],
type: "TSAsExpression",
typeAnnotation: {
range: [
1,
15,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "const",
optional: false,
range: [
1,
15,
],
type: "Identifier",
typeAnnotation: null,
},
},
}
`;
snapshot[`Plugin - TSEnumDeclaration 1`] = `
{
body: {
members: [],
range: [
1,
12,
],
type: "TSEnumBody",
},
const: false,
declare: false,
id: {
name: "Foo",
optional: false,
range: [
6,
9,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
12,
],
type: "TSEnumDeclaration",
}
`;
snapshot[`Plugin - TSEnumDeclaration 2`] = `
{
body: {
members: [],
range: [
1,
18,
],
type: "TSEnumBody",
},
const: true,
declare: false,
id: {
name: "Foo",
optional: false,
range: [
12,
15,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
18,
],
type: "TSEnumDeclaration",
}
`;
snapshot[`Plugin - TSEnumDeclaration 3`] = `
{
body: {
members: [
{
id: {
name: "A",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
initializer: null,
range: [
12,
13,
],
type: "TSEnumMember",
},
{
id: {
name: "B",
optional: false,
range: [
15,
16,
],
type: "Identifier",
typeAnnotation: null,
},
initializer: null,
range: [
15,
16,
],
type: "TSEnumMember",
},
],
range: [
1,
18,
],
type: "TSEnumBody",
},
const: false,
declare: false,
id: {
name: "Foo",
optional: false,
range: [
6,
9,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
18,
],
type: "TSEnumDeclaration",
}
`;
snapshot[`Plugin - TSEnumDeclaration 4`] = `
{
body: {
members: [
{
id: {
range: [
12,
17,
],
raw: '"a-b"',
type: "Literal",
value: "a-b",
},
initializer: null,
range: [
12,
17,
],
type: "TSEnumMember",
},
],
range: [
1,
19,
],
type: "TSEnumBody",
},
const: false,
declare: false,
id: {
name: "Foo",
optional: false,
range: [
6,
9,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
19,
],
type: "TSEnumDeclaration",
}
`;
snapshot[`Plugin - TSEnumDeclaration 5`] = `
{
body: {
members: [
{
id: {
name: "A",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
initializer: {
range: [
16,
17,
],
raw: "1",
type: "Literal",
value: 1,
},
range: [
12,
17,
],
type: "TSEnumMember",
},
{
id: {
name: "B",
optional: false,
range: [
19,
20,
],
type: "Identifier",
typeAnnotation: null,
},
initializer: {
range: [
23,
24,
],
raw: "2",
type: "Literal",
value: 2,
},
range: [
19,
24,
],
type: "TSEnumMember",
},
{
id: {
name: "C",
optional: false,
range: [
26,
27,
],
type: "Identifier",
typeAnnotation: null,
},
initializer: {
left: {
name: "A",
optional: false,
range: [
30,
31,
],
type: "Identifier",
typeAnnotation: null,
},
operator: "|",
range: [
30,
35,
],
right: {
name: "B",
optional: false,
range: [
34,
35,
],
type: "Identifier",
typeAnnotation: null,
},
type: "BinaryExpression",
},
range: [
26,
35,
],
type: "TSEnumMember",
},
],
range: [
1,
37,
],
type: "TSEnumBody",
},
const: false,
declare: false,
id: {
name: "Foo",
optional: false,
range: [
6,
9,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
37,
],
type: "TSEnumDeclaration",
}
`;
snapshot[`Plugin - TSInterface 1`] = `
{
body: {
body: [],
range: [
13,
15,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
15,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 2`] = `
{
body: {
body: [],
range: [
16,
18,
],
type: "TSInterfaceBody",
},
declare: false,
extends: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
13,
14,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
13,
14,
],
type: "TSTypeParameter",
},
],
range: [
12,
15,
],
type: "TSTypeParameterDeclaration",
},
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
18,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 3`] = `
{
body: {
body: [],
range: [
36,
38,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
38,
],
type: "TSInterface",
typeParameters: [
{
expression: {
name: "Foo",
optional: false,
range: [
21,
24,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
21,
27,
],
type: "TSInterfaceHeritage",
typeArguments: {
params: [
{
range: [
25,
26,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
25,
26,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
24,
27,
],
type: "TSTypeParameterInstantiation",
},
},
{
expression: {
name: "Bar",
optional: false,
range: [
29,
32,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
29,
35,
],
type: "TSInterfaceHeritage",
typeArguments: {
params: [
{
range: [
33,
34,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
33,
34,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
range: [
32,
35,
],
type: "TSTypeParameterInstantiation",
},
},
],
}
`;
snapshot[`Plugin - TSInterface 4`] = `
{
body: {
body: [
{
computed: false,
key: {
name: "foo",
optional: false,
range: [
15,
18,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
15,
24,
],
readonly: false,
static: false,
type: "TSPropertySignature",
typeAnnotation: {
range: [
18,
23,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
20,
23,
],
type: "TSAnyKeyword",
},
},
},
{
computed: false,
key: {
name: "bar",
optional: false,
range: [
25,
28,
],
type: "Identifier",
typeAnnotation: null,
},
optional: true,
range: [
25,
34,
],
readonly: false,
static: false,
type: "TSPropertySignature",
typeAnnotation: {
range: [
29,
34,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
31,
34,
],
type: "TSAnyKeyword",
},
},
},
],
range: [
13,
36,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
36,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 5`] = `
{
body: {
body: [
{
parameters: [
{
name: "key",
optional: false,
range: [
25,
36,
],
type: "Identifier",
typeAnnotation: {
range: [
28,
36,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
30,
36,
],
type: "TSStringKeyword",
},
},
},
],
range: [
15,
42,
],
readonly: true,
type: "TSIndexSignature",
typeAnnotation: {
range: [
37,
42,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
39,
42,
],
type: "TSAnyKeyword",
},
},
},
],
range: [
13,
44,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
44,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 6`] = `
{
body: {
body: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
24,
25,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
15,
30,
],
readonly: true,
static: false,
type: "TSPropertySignature",
typeAnnotation: {
range: [
25,
30,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
27,
30,
],
type: "TSAnyKeyword",
},
},
},
],
range: [
13,
32,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
32,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 7`] = `
{
body: {
body: [
{
params: [
{
name: "a",
optional: false,
range: [
19,
20,
],
type: "Identifier",
typeAnnotation: {
range: [
20,
23,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
22,
23,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
22,
23,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
},
],
range: [
15,
27,
],
returnType: {
range: [
24,
27,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
26,
27,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
26,
27,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
type: "TSCallSignatureDeclaration",
typeAnnotation: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
16,
17,
],
type: "TSTypeParameter",
},
],
range: [
15,
18,
],
type: "TSTypeParameterDeclaration",
},
},
],
range: [
13,
29,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
29,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 8`] = `
{
body: {
body: [
{
params: [
{
name: "a",
optional: false,
range: [
23,
24,
],
type: "Identifier",
typeAnnotation: {
range: [
24,
27,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
26,
27,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
26,
27,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
},
],
range: [
15,
31,
],
returnType: {
range: [
28,
31,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
30,
31,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
30,
31,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
type: "TSConstructSignatureDeclaration",
typeParameters: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
20,
21,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
20,
21,
],
type: "TSTypeParameter",
},
],
range: [
19,
22,
],
type: "TSTypeParameterDeclaration",
},
},
],
range: [
13,
33,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
33,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 9`] = `
{
body: {
body: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
15,
16,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
15,
36,
],
readonly: false,
static: false,
type: "TSPropertySignature",
typeAnnotation: {
range: [
16,
36,
],
type: "TSTypeAnnotation",
typeAnnotation: {
params: [
{
name: "a",
optional: false,
range: [
26,
27,
],
type: "Identifier",
typeAnnotation: {
range: [
27,
30,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
29,
30,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
29,
30,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
},
],
range: [
18,
36,
],
returnType: {
range: [
32,
36,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
35,
36,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
35,
36,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
type: "TSConstructSignatureDeclaration",
typeParameters: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
23,
24,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
23,
24,
],
type: "TSTypeParameter",
},
],
range: [
22,
25,
],
type: "TSTypeParameterDeclaration",
},
},
},
},
],
range: [
13,
38,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
38,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 10`] = `
{
body: {
body: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
19,
20,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "getter",
optional: false,
range: [
15,
30,
],
readonly: false,
returnType: {
range: [
22,
30,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
24,
30,
],
type: "TSStringKeyword",
},
},
static: false,
type: "TSMethodSignature",
},
],
range: [
13,
32,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
32,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 11`] = `
{
body: {
body: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
19,
20,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "setter",
optional: false,
params: [
{
name: "v",
optional: false,
range: [
21,
22,
],
type: "Identifier",
typeAnnotation: {
range: [
22,
30,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
24,
30,
],
type: "TSStringKeyword",
},
},
},
],
range: [
15,
31,
],
readonly: false,
static: false,
type: "TSMethodSignature",
},
],
range: [
13,
33,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
33,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSInterface 12`] = `
{
body: {
body: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
15,
16,
],
type: "Identifier",
typeAnnotation: null,
},
kind: "method",
optional: false,
params: [
{
name: "arg",
optional: true,
range: [
20,
23,
],
type: "Identifier",
typeAnnotation: {
range: [
24,
29,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
26,
29,
],
type: "TSAnyKeyword",
},
},
},
{
argument: {
name: "args",
optional: false,
range: [
34,
38,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
31,
45,
],
type: "RestElement",
typeAnnotation: {
range: [
38,
45,
],
type: "TSTypeAnnotation",
typeAnnotation: {
elementType: {
range: [
40,
43,
],
type: "TSAnyKeyword",
},
range: [
40,
45,
],
type: "TSArrayType",
},
},
},
],
range: [
15,
51,
],
readonly: false,
returnType: {
range: [
46,
51,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
48,
51,
],
type: "TSAnyKeyword",
},
},
static: false,
type: "TSMethodSignature",
typeParameters: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
17,
18,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
17,
18,
],
type: "TSTypeParameter",
},
],
range: [
16,
19,
],
type: "TSTypeParameterDeclaration",
},
},
],
range: [
13,
53,
],
type: "TSInterfaceBody",
},
declare: false,
extends: null,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
53,
],
type: "TSInterface",
typeParameters: [],
}
`;
snapshot[`Plugin - TSSatisfiesExpression 2`] = `
{
expression: {
properties: [],
range: [
11,
13,
],
type: "ObjectExpression",
},
range: [
11,
25,
],
type: "TSSatisfiesExpression",
typeAnnotation: {
range: [
24,
25,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "A",
optional: false,
range: [
24,
25,
],
type: "Identifier",
typeAnnotation: null,
},
},
}
`;
snapshot[`Plugin - TSTypeAliasDeclaration 1`] = `
{
declare: false,
id: {
name: "A",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
13,
],
type: "TSTypeAliasDeclaration",
typeAnnotation: {
range: [
10,
13,
],
type: "TSAnyKeyword",
},
typeParameters: null,
}
`;
snapshot[`Plugin - TSTypeAliasDeclaration 2`] = `
{
declare: false,
id: {
name: "A",
optional: false,
range: [
6,
7,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
16,
],
type: "TSTypeAliasDeclaration",
typeAnnotation: {
range: [
13,
16,
],
type: "TSAnyKeyword",
},
typeParameters: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
8,
9,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
8,
9,
],
type: "TSTypeParameter",
},
],
range: [
7,
10,
],
type: "TSTypeParameterDeclaration",
},
}
`;
snapshot[`Plugin - TSTypeAliasDeclaration 3`] = `
{
declare: true,
id: {
name: "A",
optional: false,
range: [
14,
15,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
24,
],
type: "TSTypeAliasDeclaration",
typeAnnotation: {
range: [
21,
24,
],
type: "TSAnyKeyword",
},
typeParameters: {
params: [
{
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "T",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
16,
17,
],
type: "TSTypeParameter",
},
],
range: [
15,
18,
],
type: "TSTypeParameterDeclaration",
},
}
`;
snapshot[`Plugin - TSNonNullExpression 2`] = `
{
expression: {
name: "a",
optional: false,
range: [
1,
2,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
3,
],
type: "TSNonNullExpression",
}
`;
snapshot[`Plugin - TSUnionType 1`] = `
{
range: [
10,
15,
],
type: "TSUnionType",
types: [
{
range: [
10,
11,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "B",
optional: false,
range: [
10,
11,
],
type: "Identifier",
typeAnnotation: null,
},
},
{
range: [
14,
15,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "C",
optional: false,
range: [
14,
15,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
}
`;
snapshot[`Plugin - TSIntersectionType 1`] = `
{
range: [
10,
15,
],
type: "TSIntersectionType",
types: [
{
range: [
10,
11,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "B",
optional: false,
range: [
10,
11,
],
type: "Identifier",
typeAnnotation: null,
},
},
{
range: [
14,
15,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "C",
optional: false,
range: [
14,
15,
],
type: "Identifier",
typeAnnotation: null,
},
},
],
}
`;
snapshot[`Plugin - TSModuleDeclaration 1`] = `
{
body: {
body: [],
range: [
10,
12,
],
type: "TSModuleBlock",
},
declare: false,
global: false,
id: {
name: "A",
optional: false,
range: [
8,
9,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
12,
],
type: "TSModuleDeclaration",
}
`;
snapshot[`Plugin - TSModuleDeclaration 2`] = `
{
body: {
body: [
{
declaration: {
async: false,
body: null,
declare: false,
generator: false,
id: {
name: "A",
optional: false,
range: [
36,
37,
],
type: "Identifier",
typeAnnotation: null,
},
params: [],
range: [
27,
45,
],
returnType: {
range: [
39,
45,
],
type: "TSTypeAnnotation",
typeAnnotation: {
range: [
41,
45,
],
type: "TSVoidKeyword",
},
},
type: "FunctionDeclaration",
typeParameters: null,
},
range: [
20,
45,
],
type: "ExportNamedDeclaration",
},
],
range: [
18,
47,
],
type: "TSModuleBlock",
},
declare: true,
global: false,
id: {
name: "A",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
47,
],
type: "TSModuleDeclaration",
}
`;
snapshot[`Plugin - TSModuleDeclaration + TSModuleBlock 1`] = `
{
body: {
body: [],
range: [
10,
12,
],
type: "TSModuleBlock",
},
declare: false,
global: false,
id: {
name: "A",
optional: false,
range: [
8,
9,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
12,
],
type: "TSModuleDeclaration",
}
`;
snapshot[`Plugin - TSModuleDeclaration + TSModuleBlock 2`] = `
{
body: {
body: [
{
body: {
body: [],
range: [
27,
29,
],
type: "TSModuleBlock",
},
declare: false,
global: false,
id: {
name: "B",
optional: false,
range: [
25,
26,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
15,
29,
],
type: "TSModuleDeclaration",
},
],
range: [
13,
31,
],
type: "TSModuleBlock",
},
declare: false,
global: false,
id: {
name: "A",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
1,
31,
],
type: "TSModuleDeclaration",
}
`;
snapshot[`Plugin - TSQualifiedName 1`] = `
{
left: {
name: "a",
optional: false,
range: [
10,
11,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
10,
13,
],
right: {
name: "b",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
type: "TSQualifiedName",
}
`;
snapshot[`Plugin - TSTypeLiteral 1`] = `
{
members: [
{
computed: false,
key: {
name: "a",
optional: false,
range: [
12,
13,
],
type: "Identifier",
typeAnnotation: null,
},
optional: false,
range: [
12,
16,
],
readonly: false,
static: false,
type: "TSPropertySignature",
typeAnnotation: {
range: [
13,
16,
],
type: "TSTypeAnnotation",
typeAnnotation: {
literal: {
range: [
15,
16,
],
raw: "1",
type: "Literal",
value: 1,
},
range: [
15,
16,
],
type: "TSLiteralType",
},
},
},
],
range: [
10,
18,
],
type: "TSTypeLiteral",
}
`;
snapshot[`Plugin - TSOptionalType 1`] = `
{
range: [
11,
18,
],
type: "TSOptionalType",
typeAnnotation: {
range: [
11,
17,
],
type: "TSNumberKeyword",
},
}
`;
snapshot[`Plugin - TSRestType 1`] = `
{
range: [
11,
22,
],
type: "TSRestType",
typeAnnotation: {
elementType: {
range: [
14,
20,
],
type: "TSNumberKeyword",
},
range: [
14,
22,
],
type: "TSArrayType",
},
}
`;
snapshot[`Plugin - TSConditionalType 1`] = `
{
checkType: {
range: [
10,
11,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "B",
optional: false,
range: [
10,
11,
],
type: "Identifier",
typeAnnotation: null,
},
},
extendsType: {
range: [
20,
21,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "C",
optional: false,
range: [
20,
21,
],
type: "Identifier",
typeAnnotation: null,
},
},
falseType: {
range: [
33,
39,
],
type: "TSStringKeyword",
},
range: [
10,
39,
],
trueType: {
range: [
24,
30,
],
type: "TSNumberKeyword",
},
type: "TSConditionalType",
}
`;
snapshot[`Plugin - TSInferType 1`] = `
{
range: [
29,
39,
],
type: "TSInferType",
typeParameter: {
const: false,
constraint: null,
default: null,
in: false,
name: {
name: "Item",
optional: false,
range: [
35,
39,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
35,
39,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSTypeOperator 1`] = `
{
operator: "keyof",
range: [
10,
17,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
16,
17,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "B",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
},
}
`;
snapshot[`Plugin - TSTypeOperator 2`] = `
{
operator: "unique",
range: [
21,
34,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
28,
34,
],
type: "TSSymbolKeyword",
},
}
`;
snapshot[`Plugin - TSTypeOperator 3`] = `
{
operator: "readonly",
range: [
10,
21,
],
type: "TSTypeOperator",
typeAnnotation: {
elementTypes: [],
range: [
19,
21,
],
type: "TSTupleType",
},
}
`;
snapshot[`Plugin - TSMappedType 1`] = `
{
nameType: null,
optional: undefined,
range: [
13,
41,
],
readonly: undefined,
type: "TSMappedType",
typeAnnotation: {
range: [
31,
38,
],
type: "TSBooleanKeyword",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
21,
28,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
27,
28,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
27,
28,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
16,
28,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSMappedType 2`] = `
{
nameType: null,
optional: undefined,
range: [
13,
45,
],
readonly: true,
type: "TSMappedType",
typeAnnotation: {
elementTypes: [],
range: [
40,
42,
],
type: "TSTupleType",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
30,
37,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
36,
37,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
36,
37,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
25,
26,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
25,
37,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSMappedType 3`] = `
{
nameType: null,
optional: undefined,
range: [
13,
46,
],
readonly: "-",
type: "TSMappedType",
typeAnnotation: {
elementTypes: [],
range: [
41,
43,
],
type: "TSTupleType",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
31,
38,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
37,
38,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
37,
38,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
26,
27,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
26,
38,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSMappedType 4`] = `
{
nameType: null,
optional: undefined,
range: [
13,
46,
],
readonly: "+",
type: "TSMappedType",
typeAnnotation: {
elementTypes: [],
range: [
41,
43,
],
type: "TSTupleType",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
31,
38,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
37,
38,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
37,
38,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
26,
27,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
26,
38,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSMappedType 5`] = `
{
nameType: null,
optional: true,
range: [
13,
42,
],
readonly: undefined,
type: "TSMappedType",
typeAnnotation: {
range: [
32,
39,
],
type: "TSBooleanKeyword",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
21,
28,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
27,
28,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
27,
28,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
16,
28,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSMappedType 6`] = `
{
nameType: null,
optional: "-",
range: [
13,
43,
],
readonly: undefined,
type: "TSMappedType",
typeAnnotation: {
range: [
33,
40,
],
type: "TSBooleanKeyword",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
21,
28,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
27,
28,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
27,
28,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
16,
28,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSMappedType 7`] = `
{
nameType: null,
optional: "+",
range: [
13,
43,
],
readonly: undefined,
type: "TSMappedType",
typeAnnotation: {
range: [
33,
40,
],
type: "TSBooleanKeyword",
},
typeParameter: {
const: false,
constraint: {
operator: "keyof",
range: [
21,
28,
],
type: "TSTypeOperator",
typeAnnotation: {
range: [
27,
28,
],
type: "TSTypeReference",
typeArguments: null,
typeName: {
name: "T",
optional: false,
range: [
27,
28,
],
type: "Identifier",
typeAnnotation: null,
},
},
},
default: null,
in: false,
name: {
name: "P",
optional: false,
range: [
16,
17,
],
type: "Identifier",
typeAnnotation: null,
},
out: false,
range: [
16,
28,
],
type: "TSTypeParameter",
},
}
`;
snapshot[`Plugin - TSLiteralType 1`] = `
{
literal: {
range: [
10,
14,
],
raw: "true",
type: "Literal",
value: true,
},
range: [
10,
14,
],
type: "TSLiteralType",
}
`;
snapshot[`Plugin - TSLiteralType 2`] = `
{
literal: {
range: [
10,
15,
],
raw: "false",
type: "Literal",
value: false,
},
range: [
10,
15,
],
type: "TSLiteralType",
}
`;
snapshot[`Plugin - TSLiteralType 3`] = `
{
literal: {
range: [
10,
11,
],
raw: "1",
type: "Literal",
value: 1,
},
range: [
10,
11,
],
type: "TSLiteralType",
}
`;
snapshot[`Plugin - TSLiteralType 4`] = `
{
literal: {
range: [
10,
15,
],
raw: '"foo"',
type: "Literal",
value: "foo",
},
range: [
10,
15,
],
type: "TSLiteralType",
}
`;
snapshot[`Plugin - TSTemplateLiteralType 1`] = `
{
quasis: [
{
cooked: "a ",
range: [
11,
13,
],
raw: "a ",
tail: false,
type: "TemplateElement",
},
{
cooked: "",
range: [
22,
22,
],
raw: "",
tail: true,
type: "TemplateElement",
},
],
range: [
10,
23,
],
type: "TSTemplateLiteralType",
types: [
{
range: [
15,
21,
],
type: "TSStringKeyword",
},
],
}
`;
snapshot[`Plugin - TSTupleType + TSArrayType 1`] = `
{
elementTypes: [
{
range: [
11,
17,
],
type: "TSNumberKeyword",
},
],
range: [
10,
18,
],
type: "TSTupleType",
}
`;
snapshot[`Plugin - TSTupleType + TSArrayType 2`] = `
{
elementTypes: [
{
elementType: {
range: [
14,
20,
],
type: "TSNumberKeyword",
},
label: {
name: "x",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
11,
20,
],
type: "TSNamedTupleMember",
},
],
range: [
10,
21,
],
type: "TSTupleType",
}
`;
snapshot[`Plugin - TSTupleType + TSArrayType 3`] = `
{
elementTypes: [
{
elementType: {
range: [
14,
20,
],
type: "TSNumberKeyword",
},
label: {
name: "x",
optional: false,
range: [
11,
12,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
11,
20,
],
type: "TSNamedTupleMember",
},
],
range: [
10,
21,
],
type: "TSTupleType",
}
`;
snapshot[`Plugin - TSTupleType + TSArrayType 4`] = `
{
elementTypes: [
{
elementType: {
elementType: {
range: [
17,
23,
],
type: "TSNumberKeyword",
},
range: [
17,
25,
],
type: "TSArrayType",
},
label: {
argument: {
name: "x",
optional: false,
range: [
14,
15,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
11,
16,
],
type: "RestElement",
typeAnnotation: null,
},
range: [
11,
25,
],
type: "TSNamedTupleMember",
},
],
range: [
10,
26,
],
type: "TSTupleType",
}
`;
snapshot[`Plugin - TSArrayType 1`] = `
{
elementType: {
range: [
10,
16,
],
type: "TSNumberKeyword",
},
range: [
10,
18,
],
type: "TSArrayType",
}
`;
snapshot[`Plugin - TSTypeQuery 1`] = `
{
exprName: {
name: "B",
optional: false,
range: [
17,
18,
],
type: "Identifier",
typeAnnotation: null,
},
range: [
10,
18,
],
type: "TSTypeQuery",
typeArguments: null,
}
`;
snapshot[`Plugin - TS keywords 1`] = `
{
range: [
10,
13,
],
type: "TSAnyKeyword",
}
`;
snapshot[`Plugin - TS keywords 2`] = `
{
range: [
10,
16,
],
type: "TSBigIntKeyword",
}
`;
snapshot[`Plugin - TS keywords 3`] = `
{
range: [
10,
17,
],
type: "TSBooleanKeyword",
}
`;
snapshot[`Plugin - TS keywords 4`] = `
{
range: [
10,
19,
],
type: "TSIntrinsicKeyword",
}
`;
snapshot[`Plugin - TS keywords 5`] = `
{
range: [
10,
15,
],
type: "TSNeverKeyword",
}
`;
snapshot[`Plugin - TS keywords 6`] = `
{
range: [
10,
14,
],
type: "TSNullKeyword",
}
`;
snapshot[`Plugin - TS keywords 7`] = `
{
range: [
10,
16,
],
type: "TSNumberKeyword",
}
`;
snapshot[`Plugin - TS keywords 8`] = `
{
range: [
10,
16,
],
type: "TSObjectKeyword",
}
`;
snapshot[`Plugin - TS keywords 9`] = `
{
range: [
10,
16,
],
type: "TSStringKeyword",
}
`;
snapshot[`Plugin - TS keywords 10`] = `
{
range: [
10,
16,
],
type: "TSSymbolKeyword",
}
`;
snapshot[`Plugin - TS keywords 11`] = `
{
range: [
10,
19,
],
type: "TSUndefinedKeyword",
}
`;
snapshot[`Plugin - TS keywords 12`] = `
{
range: [
10,
17,
],
type: "TSUnknownKeyword",
}
`;
snapshot[`Plugin - TS keywords 13`] = `
{
range: [
10,
14,
],
type: "TSVoidKeyword",
}
`;