Skip to content

Getting Started with Parsee

Parsee parses JavaScript and TypeScript source code and returns structured metadata about all declarations.

What is Parsee?

Parsee analyzes source code using TypeScript's AST (Abstract Syntax Tree) parser and returns structured information about classes, interfaces, functions, variables, types, and more.

ts
import { parseWithTsMorph } from "@briklab/parsee";

const source = `
export class User {
  constructor(public id: string) {}
  getName() { return "User"; }
}
`;

const items = parseWithTsMorph(source, "user.ts", {
  Name: "include",
  Members: "include"
});

console.log(items); // Array of parsed items

Basic Usage

Parsing Source Code

ts
import { parseWithTsMorph } from "@briklab/parsee";

const source = `
export const API_URL = "https://api.example.com";

export function fetchData(url: string) {
  return fetch(url).then(r => r.json());
}

export interface Response {
  status: number;
  data: unknown;
}
`;

const items = parseWithTsMorph(source, "api.ts", {
  Name: "include",
  Type: "include"
});

// items will contain:
// - VariableItem for API_URL
// - FunctionItem for fetchData
// - InterfaceItem for Response

Understanding Parse Results

ts
import { parseWithTsMorph } from "@briklab/parsee";
import type { ParsedItem } from "@briklab/parsee/types/parseditem";

const items = parseWithTsMorph(source, "file.ts", { Name: "include" });

// Access different item types
items.forEach((item: ParsedItem) => {
  if (item.kind === "class") {
    console.log(`Class: ${item.Name}`);
  } else if (item.kind === "function") {
    console.log(`Function: ${item.Name}`);
  } else if (item.kind === "variable") {
    console.log(`Variable: ${item.Name}`);
  }
});

Live Demo

Console
No logs yet.

Parse Options

Control what information is included in the parse results:

ts
const items = parseWithTsMorph(source, "file.ts", {
  Name: "include",           // Include symbol names
  Type: "include",           // Include type information
  Members: "include",        // Include class/interface members
  Decorators: "include",     // Include decorators
  JSDoc: "exclude",          // Exclude JSDoc comments
  Position: "include",       // Include source positions
  TypeParameters: "include"  // Include generic type parameters
});

Supported Item Types

Parsee returns various item types:

  • ClassItem: Class declarations with members
  • InterfaceItem: Interface declarations
  • FunctionItem: Function declarations
  • VariableItem: Variable/const declarations
  • TypeAliasItem: Type alias declarations
  • EnumItem: Enum declarations
  • NamespaceItem: Namespace declarations

Features

  • Deep Analysis: Extract detailed metadata from source
  • Multiple Formats: Parse both JavaScript and TypeScript
  • Flexible Options: Choose what information to include
  • Type Information: Capture type annotations
  • Member Details: Get class and interface members with full information

Next Steps

Learn more about Parsee: