# QueryCompiler (/docs/core/reference/api/interfaces/QueryCompiler)



[@kysoql/core](/docs/core/reference/api) / QueryCompiler

Compiler contract for turning a SelectQueryNode into executable SOQL.

## Methods [#methods]

<a id="api-compilequery" />

### compileQuery() [#compilequery]

```ts
compileQuery<O>(query, context?): CompiledQuery<O>;
```

Compiles an operation tree into SOQL while preserving its output type.

#### Type Parameters [#type-parameters]

| Type Parameter | Default type |
| -------------- | ------------ |
| `O`            | `unknown`    |

#### Parameters [#parameters]

| Parameter  | Type                                                                             |
| ---------- | -------------------------------------------------------------------------------- |
| `query`    | [`SelectQueryNode`](/docs/core/reference/api/type-aliases/SelectQueryNode)       |
| `context?` | [`QueryCompileContext`](/docs/core/reference/api/interfaces/QueryCompileContext) |

#### Returns [#returns]

[`CompiledQuery`](/docs/core/reference/api/interfaces/CompiledQuery)\<`O`>
