# FormatParser

Source: /tuil/docs/reference/packages/streaming/api/format-parser
Locale: en

interface exported by @mwillbanks/tuil-streaming.



{/* Generated by tooling/docs/generate-reference.ts. */}

## interface [#interface]

Public interface exported by `@mwillbanks/tuil-streaming`.

```ts
export interface FormatParser {
  readonly id: string;
  readonly mediaTypes: readonly string[];
  readonly extensions?: readonly string[];
  detect(source: string): number;
  parse(source: string, complete: boolean): PartialDocument;
  createSession?(): FormatParserSession;
}
```

## Members [#members]

| Member          | Type                                                     | Required | Description                                                                                    | Related types                                                                         |
| --------------- | -------------------------------------------------------- | -------- | ---------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- |
| `id`            | `string`                                                 | Yes      | The `id` member uses the `string` contract.                                                    | —                                                                                     |
| `mediaTypes`    | `readonly string[]`                                      | Yes      | The `mediaTypes` member uses the `readonly string[]` contract.                                 | —                                                                                     |
| `extensions`    | `readonly string[] \| undefined`                         | No       | The `extensions` member uses the `readonly string[] \| undefined` contract.                    | —                                                                                     |
| `detect`        | `(source: string) => number`                             | Yes      | The `detect` member uses the `(source: string) => number` contract.                            | —                                                                                     |
| `parse`         | `(source: string, complete: boolean) => PartialDocument` | Yes      | The `parse` member uses the `(source: string, complete: boolean) => PartialDocument` contract. | [`PartialDocument`](/tuil/docs/reference/packages/streaming/api/partial-document)          |
| `createSession` | `(() => FormatParserSession) \| undefined`               | No       | The `createSession` member uses the `(() => FormatParserSession) \| undefined` contract.       | [`FormatParserSession`](/tuil/docs/reference/packages/streaming/api/format-parser-session) |

## Parameters [#parameters]

This declaration has no public members.

## Returns [#returns]

This declaration does not return a value.

## Throws [#throws]

No thrown errors are documented for this declaration.

## Related types [#related-types]

* [`FormatParserSession`](/tuil/docs/reference/packages/streaming/api/format-parser-session)
* [`PartialDocument`](/tuil/docs/reference/packages/streaming/api/partial-document)

## Source [#source]

[View the secondary source reference](https://github.com/mwillbanks/tuil/blob/main/packages/streaming/src/index.ts)

## Package [#package]

[@mwillbanks/tuil-streaming](/tuil/docs/reference/packages/streaming)
