# TritonBuilder

## Overview

The `TritonBuilder` class implements a builder pattern for creating structured log entries in LWC and Aura components. It provides a fluent interface for setting various log attributes and metadata.

## Log Level Methods

### level(level)

* **Description**: Sets the log level
* **Parameters**:
  * `level`: `{string}` Log level from LEVEL enum
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().level(LEVEL.INFO);
```

### category(category)

* **Description**: Sets the log category
* **Parameters**:
  * `category`: `{string}` Log category from CATEGORY enum
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().category(CATEGORY.LWC);
```

### type(type)

* **Description**: Sets the log type
* **Parameters**:
  * `type`: `{string}` Log type from TYPE enum
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().type(TYPE.FRONTEND);
```

### area(area)

* **Description**: Sets the functional area
* **Parameters**:
  * `area`: `{string}` Log area from AREA enum
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().area(AREA.COMMUNITY);
```

## Content Methods

### summary(summary)

* **Description**: Sets the log summary message
* **Parameters**:
  * `summary`: `{string}` Brief description of the log entry
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().summary('Operation completed successfully');
```

### details(details)

* **Description**: Sets detailed log information
* **Parameters**:
  * `details`: `{string}` Detailed description or additional context
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().details('Detailed operation information...');
```

## Error Handling

### exception(error)

* **Description**: Sets error information from a JavaScript Error object
* **Parameters**:
  * `error`: `{Error|Object}` Error object to process
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().exception(new Error('Operation failed'));
```

### componentDetails(stack)

* **Description**: Extracts and sets component details from stack trace
* **Parameters**:
  * `stack`: `{string}` Stack trace to process
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().componentDetails(new Error().stack);
```

## Metadata Methods

### transactionId(transactionId)

* **Description**: Sets the transaction ID for log correlation
* **Parameters**:
  * `transactionId`: `{string}` Transaction identifier
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().transactionId('transaction-123');
```

### componentInfo(componentInfo)

* **Description**: Sets component information
* **Parameters**:
  * `componentInfo`: `{Object}` Component metadata object
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().componentInfo({
    name: 'myComponent',
    function: 'handleClick'
});
```

### duration(duration)

* **Description**: Sets execution duration
* **Parameters**:
  * `duration`: `{number}` Duration in milliseconds
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().duration(150);
```

### timestamp(timestamp)

* **Description**: Sets log creation timestamp
* **Parameters**:
  * `timestamp`: `{number}` Unix timestamp
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().timestamp(Date.now());
```

### userId(userId)

* **Description**: Sets the user ID associated with the log
* **Parameters**:
  * `userId`: `{string}` Salesforce user ID
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().userId('005xx000001234AAA');
```

### relatedObjects(objectIds)

* **Description**: Sets related object IDs
* **Parameters**:
  * `objectIds`: `{string|string[]}` Single ID or array of Salesforce object IDs
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().relatedObjects(['001xx000003DGb2AAG', '001xx000003DGb3AAG']);
```

### runtimeInfo(info)

* **Description**: Sets runtime environment information
* **Parameters**:
  * `info`: `{Object}` Runtime environment details
* **Returns**: `{TritonBuilder}` Builder instance for chaining
* **Example**:

```javascript
triton.makeBuilder().runtimeInfo({
    userAgent: navigator.userAgent,
    viewport: { width: window.innerWidth, height: window.innerHeight }
});
```

## Build Method

### build()

* **Description**: Constructs the final log object from all set properties
* **Returns**: `{Object}` Complete log object ready for persistence
* **Example**:

```javascript
const logEntry = triton.makeBuilder()
    .level(LEVEL.INFO)
    .type(TYPE.FRONTEND)
    .summary('User action completed')
    .build();
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://triton.pharos.ai/pharos-triton/methods-reference/lwc/tritonbuilder.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
