Parse TypeScript Source

import { fs as promises } from 'fs';
import typescript from 'typescript';

const source = await fs.readFile('/path/to/a-typescript-file.ts', 'utf8'),
const node = typescript.createSourceFile('name.ts', source, typescript.ScriptTarget.Latest);

The createSourceFile generates an Abstract Syntax Tree (AST) for the given source file.

Each node has the numerical kind property, that represents the type of that node.

Let's go over each child and list their type:

node.forEachChild(child => console.log(typescript.SyntaxKind[child.kind]))
> ImportDeclaration
> ClassDeclaration
> EndOfFileToken