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 itemsBasic 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 ResponseUnderstanding 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:
- parseWithTsMorph Function: Complete API
- ParsedItem Types: Item type definitions
- Parse Options: Configuration options