⬅️ Back to Table of Contents
📄 convert.test.ts
📊 Analysis Summary
Metric |
Count |
🔧 Functions |
6 |
📦 Imports |
5 |
📊 Variables & Constants |
17 |
📚 Table of Contents
🛠️ File Location:
📂 packages/typescript-estree/tests/lib/convert.test.ts
📦 Imports
Name |
Source |
TSESTree |
@typescript-eslint/types |
AST_NODE_TYPES |
@typescript-eslint/types |
TSNode |
../../src |
ConverterOptions |
../../src/convert |
Converter |
../../src/convert |
Variables & Constants
Name |
Type |
Kind |
Value |
Exported |
instance |
Converter |
const |
new Converter(ast) |
✗ |
instance |
Converter |
const |
new Converter(ast) |
✗ |
instance |
Converter |
const |
new Converter(ast) |
✗ |
instance |
Converter |
const |
new Converter(ast) |
✗ |
instance |
Converter |
const |
new Converter(ast) |
✗ |
instance |
Converter |
const |
`new Converter(ast, { |
|
errorOnUnknownASTType: true, |
|
|
|
|
})` |
✗ |
|
|
|
instance |
Converter |
const |
`new Converter(ast, { |
|
shouldPreserveNodeMaps: true, |
|
|
|
|
})` |
✗ |
|
|
|
instance |
Converter |
const |
`new Converter(ast, { |
|
shouldPreserveNodeMaps: true, |
|
|
|
|
})` |
✗ |
|
|
|
instance |
Converter |
const |
`new Converter(ast, { |
|
shouldPreserveNodeMaps: true, |
|
|
|
|
})` |
✗ |
|
|
|
instance |
Converter |
const |
`new Converter(ast, { |
|
shouldPreserveNodeMaps: true, |
|
|
|
|
})` |
✗ |
|
|
|
tsNode |
ts.KeywordToken<ts.SyntaxKind.AbstractKeyword> |
const |
`{ |
|
...ts.factory.createToken(ts.SyntaxKind.AbstractKeyword), |
|
|
|
|
end: 10, |
|
|
|
|
pos: 0, |
|
|
|
|
}` |
✗ |
|
|
|
jsDocCode |
readonly ["const x: function(new: number, string);", "const x: function(this: number, string);", "var g: function(number, number): number;"] |
const |
`[ |
|
'const x: function(new: number, string);', |
|
|
|
|
'const x: function(this: number, string);', |
|
|
|
|
'var g: function(number, number): number;', |
|
|
|
|
] as const` |
✗ |
|
|
|
instance |
Converter |
const |
new Converter(ast) |
✗ |
code |
"const;" |
const |
'const;' |
✗ |
instance |
Converter |
const |
new Converter(ast) |
✗ |
instance |
Converter |
const |
`new Converter(ast, { |
|
allowInvalidAST: true, |
|
|
|
|
})` |
✗ |
|
|
|
instance |
Converter |
const |
`new Converter(ast, { |
|
shouldPreserveNodeMaps: true, |
|
|
|
|
...converterOptions, |
|
|
|
|
})` |
✗ |
|
|
|
Functions
convertCode(code: string): ts.SourceFile
Code
function convertCode(code: string): ts.SourceFile {
return ts.createSourceFile(
'text.ts',
code,
ts.ScriptTarget.ESNext,
true,
ts.ScriptKind.TSX,
);
}
- Parameters:
code: string
- Return Type:
ts.SourceFile
- Calls:
ts.createSourceFile
fakeUnknownKind(node: ts.Node): void
Code
function fakeUnknownKind(node: ts.Node): void {
ts.forEachChild(node, fakeUnknownKind);
// @ts-expect-error -- intentionally writing to a readonly field
node.kind = ts.SyntaxKind.UnparsedPrologue;
}
- Parameters:
node: ts.Node
- Return Type:
void
- Calls:
ts.forEachChild
- Internal Comments:
// @ts-expect-error -- intentionally writing to a readonly field (x4)
checkMaps(child: ts.Node | ts.SourceFile): void
Code
function checkMaps(child: ts.Node | ts.SourceFile): void {
child.forEachChild(node => {
if (
node.kind !== ts.SyntaxKind.EndOfFileToken &&
node.kind !== ts.SyntaxKind.JsxAttributes &&
node.kind !== ts.SyntaxKind.VariableDeclaration
) {
expect(node).toBe(
maps.esTreeNodeToTSNodeMap.get(
maps.tsNodeToESTreeNodeMap.get(node as TSNode),
),
);
}
checkMaps(node);
});
}
- Parameters:
child: ts.Node | ts.SourceFile
- Return Type:
void
- Calls:
child.forEachChild
expect(node).toBe
maps.esTreeNodeToTSNodeMap.get
maps.tsNodeToESTreeNodeMap.get
checkMaps
checkMaps(child: ts.Node | ts.SourceFile): void
Code
function checkMaps(child: ts.Node | ts.SourceFile): void {
child.forEachChild(node => {
if (
node.kind !== ts.SyntaxKind.EndOfFileToken &&
node.kind !== ts.SyntaxKind.JsxAttributes
) {
expect(node).toBe(
maps.esTreeNodeToTSNodeMap.get(
maps.tsNodeToESTreeNodeMap.get(node as TSNode),
),
);
}
checkMaps(node);
});
}
- Parameters:
child: ts.Node | ts.SourceFile
- Return Type:
void
- Calls:
child.forEachChild
expect(node).toBe
maps.esTreeNodeToTSNodeMap.get
maps.tsNodeToESTreeNodeMap.get
checkMaps
checkMaps(child: ts.Node | ts.SourceFile): void
Code
function checkMaps(child: ts.Node | ts.SourceFile): void {
child.forEachChild(node => {
if (node.kind !== ts.SyntaxKind.EndOfFileToken) {
expect(ast).toBe(
maps.esTreeNodeToTSNodeMap.get(maps.tsNodeToESTreeNodeMap.get(ast)),
);
}
checkMaps(node);
});
}
- Parameters:
child: ts.Node | ts.SourceFile
- Return Type:
void
- Calls:
child.forEachChild
expect(ast).toBe
maps.esTreeNodeToTSNodeMap.get
maps.tsNodeToESTreeNodeMap.get
checkMaps
makeNodeGetter(code: string, tsToEsNode: (statement: S) => TSNode): (converterOptions?: ConverterOptions) => TNode
Code
<
// Small convenience for testing the nodes:
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
S extends ts.Statement,
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters
TNode extends TSESTree.Node,
>(
code: string,
tsToEsNode: (statement: S) => TSNode,
) =>
(converterOptions?: ConverterOptions): TNode => {
const ast = convertCode(code);
const instance = new Converter(ast, {
shouldPreserveNodeMaps: true,
...converterOptions,
});
instance.convertProgram();
return instance
.getASTMaps()
.tsNodeToESTreeNodeMap.get(tsToEsNode(ast.statements[0] as S));
}
- Parameters:
code: string
tsToEsNode: (statement: S) => TSNode
- Return Type:
(converterOptions?: ConverterOptions) => TNode