laconic-deploy/docs-readme.md
Ian Cameron Lyles 71fac7ffa2
chore(ui): Full type documentation (#10)
* Adds typedoc for docs consolidation

* chore: add UI types

* fix: remove latent docs
2025-02-27 17:07:33 -08:00

2.3 KiB

Snowball Tools API Documentation

This documentation is automatically generated using TypeDoc from TSDoc comments in the codebase.

Packages

The monorepo contains the following packages:

  • frontend: The frontend web application
  • backend: The backend API server
  • gql-client: GraphQL client library
  • deployer: Deployment utilities

How to Use This Documentation

The documentation is organized by packages and modules. You can navigate through the sidebar to explore the different parts of the codebase.

Contributing to Documentation

To contribute to the documentation:

  1. Add TSDoc comments to your code using the JSDoc syntax
  2. Run yarn docs to generate the documentation
  3. Preview the documentation in the docs directory

TSDoc Comment Examples

Function Documentation

/**
 * Calculates the sum of two numbers.
 * 
 * @param a - The first number
 * @param b - The second number
 * @returns The sum of a and b
 * 
 * @example
 * ```ts
 * const result = add(1, 2);
 * console.log(result); // 3
 * ```
 */
function add(a: number, b: number): number {
  return a + b;
}

Class Documentation

/**
 * Represents a user in the system.
 * 
 * @remarks
 * This class is used throughout the application to represent user data.
 * 
 * @example
 * ```ts
 * const user = new User('John', 'Doe');
 * console.log(user.fullName); // "John Doe"
 * ```
 */
class User {
  /**
   * Creates a new User instance.
   * 
   * @param firstName - The user's first name
   * @param lastName - The user's last name
   */
  constructor(
    /** The user's first name */
    public firstName: string,
    /** The user's last name */
    public lastName: string
  ) {}

  /**
   * Gets the user's full name.
   */
  get fullName(): string {
    return `${this.firstName} ${this.lastName}`;
  }
}

Interface Documentation

/**
 * Configuration options for the application.
 * 
 * @public
 */
interface AppConfig {
  /**
   * The port number the server should listen on.
   * @default 3000
   */
  port: number;
  
  /**
   * The host the server should bind to.
   * @default "localhost"
   */
  host: string;
  
  /**
   * Whether to enable debug mode.
   * @default false
   */
  debug?: boolean;
}