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 ​

Recommended to test it in your browser. The test here might not work properly
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: