# DocumentService

URL: https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/documentservice/

Defined in: [relay-sdks/ts/src/document-service.ts:40](https://github.com/caprids/relay-sdks/blob/main/ts/src/document-service.ts#L40)

Serves a state-shaped track whose document the application replaces, such as the media timeline. Create one with
[createDocumentService](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/functions/createdocumentservice/).

## Extends

- [`CatalogService`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/)

## Properties

### document

```ts
readonly document: Uint8Array<ArrayBufferLike> | undefined;
```

Defined in: [relay-sdks/ts/src/document-service.ts:44](https://github.com/caprids/relay-sdks/blob/main/ts/src/document-service.ts#L44)

The latest document, or `undefined` before the first.

***

### failures

```ts
readonly failures: number;
```

Defined in: [relay-sdks/ts/src/document-service.ts:33](https://github.com/caprids/relay-sdks/blob/main/ts/src/document-service.ts#L33)

Writes that failed while the track stayed open, each followed by a retry or by lost demand.

#### Inherited from

[`CatalogService`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/).[`failures`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/#failures)

***

### sends

```ts
readonly sends: number;
```

Defined in: [relay-sdks/ts/src/document-service.ts:31](https://github.com/caprids/relay-sdks/blob/main/ts/src/document-service.ts#L31)

Documents the transport accepted.

#### Inherited from

[`CatalogService`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/).[`sends`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/#sends)

## Methods

### serve()

```ts
serve(options?): Promise<void>;
```

Defined in: [relay-sdks/ts/src/document-service.ts:29](https://github.com/caprids/relay-sdks/blob/main/ts/src/document-service.ts#L29)

Run until the signal aborts or the track ends. Resolves when the track ends without a write having failed. Rejects
with the `RelayError` that ended the track when a write exposed it, so a retired catalog cannot go unnoticed.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `options?` | [`ServeOptions`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/serveoptions/) |

#### Returns

`Promise`\<`void`\>

#### Inherited from

[`CatalogService`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/).[`serve`](https://www.caprid.com/docs/reference/typescript/caprid/relay/media/interfaces/catalogservice/#serve)

***

### update()

```ts
update(document): void;
```

Defined in: [relay-sdks/ts/src/document-service.ts:42](https://github.com/caprids/relay-sdks/blob/main/ts/src/document-service.ts#L42)

Replace the document, and send it if the relay is subscribed. Returns at once.

#### Parameters

| Parameter | Type |
| ------ | ------ |
| `document` | `ArrayBufferView` |

#### Returns

`void`
