# DefaultQueryCompiler (/docs/core/reference/api/classes/DefaultQueryCompiler)



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

Default compiler that validates a query AST and renders Salesforce SOQL.

## Implements [#implements]

* [`QueryCompiler`](/docs/core/reference/api/interfaces/QueryCompiler)

## Constructors [#constructors]

<a id="api-constructor" />

### Constructor [#constructor]

```ts
new DefaultQueryCompiler(schemaMetadata?): DefaultQueryCompiler;
```

Creates a query compiler, optionally using generated schema metadata for validation.

#### Parameters [#parameters]

| Parameter         | Type                                                                                       |
| ----------------- | ------------------------------------------------------------------------------------------ |
| `schemaMetadata?` | [`SalesforceSchemaMetadata`](/docs/core/reference/api/interfaces/SalesforceSchemaMetadata) |

#### Returns [#returns]

`DefaultQueryCompiler`

## Methods [#methods]

<a id="api-compilequery" />

### compileQuery() [#compilequery]

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

Compiles a Kysoql operation tree into SOQL.

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

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

#### Parameters [#parameters-1]

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

#### Returns [#returns-1]

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

#### Implementation of [#implementation-of]

[`QueryCompiler`](/docs/core/reference/api/interfaces/QueryCompiler).[`compileQuery`](/docs/core/reference/api/interfaces/QueryCompiler#compilequery)
