forked from cerc-io/snowballtools-base
114 lines
2.3 KiB
Markdown
114 lines
2.3 KiB
Markdown
# Snowball Tools API Documentation
|
|
|
|
This documentation is automatically generated using [TypeDoc](https://typedoc.org/) 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
|
|
|
|
```typescript
|
|
/**
|
|
* 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
|
|
|
|
```typescript
|
|
/**
|
|
* 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
|
|
|
|
```typescript
|
|
/**
|
|
* 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;
|
|
}
|
|
``` |