# Function: runQuery()

```ts
function runQuery<T, C, I>(source, given): Promise<QueryResult<T, Readonly<Record<string, 
  | number
| readonly QueryRecord<unknown, Readonly<Record<string, number | readonly QueryRecord<unknown, Readonly<Record<string, number | readonly QueryRecord<unknown, Readonly<Record<string, number | readonly QueryRecord<unknown, Readonly<Record<string, number | readonly QueryRecord<unknown, Readonly<Record<string, number | readonly QueryRecord<unknown, Re..., Readonly<Record<string, unknown>>>[]>>, Readonly<Record<string, unknown>>>>;
```

Defined in: [packages/core/src/query/engine.ts:51](https://github.com/leifriksheim/minca/blob/main/core/src/query/engine.ts#L51)

Runs a query against a space.

## Type Parameters

| Type Parameter | Default type |
| ------ | ------ |
| <a id="type-parameter-t"></a> `T` | `unknown` |
| <a id="type-parameter-c"></a> `C` *extends* [`CollectionRef`](https://minca.dev/api/core/type-aliases/CollectionRef.md) | [`CollectionRef`](https://minca.dev/api/core/type-aliases/CollectionRef.md) |
| <a id="type-parameter-i"></a> `I` *extends* \| `Readonly`\<`Record`\<`string`, [`Include`](https://minca.dev/api/core/interfaces/Include.md)\>\> \| `undefined` | \| `Readonly`\<`Record`\<`string`, [`Include`](https://minca.dev/api/core/interfaces/Include.md)\>\> \| `undefined` |

## Parameters

| Parameter | Type |
| ------ | ------ |
| `source` | [`QuerySource`](https://minca.dev/api/core/interfaces/QuerySource.md) |
| `given` | [`Query`](https://minca.dev/api/core/interfaces/Query.md)\<`C`, `I`\> |

## Returns

`Promise`\<[`QueryResult`](https://minca.dev/api/core/interfaces/QueryResult.md)\<`T`, `Readonly`\<`Record`\<`string`, 
  \| `number`
  \| readonly [`QueryRecord`](https://minca.dev/api/core/interfaces/QueryRecord.md)\<`unknown`, Readonly\<Record\<string, number \| readonly QueryRecord\<unknown, Readonly\<Record\<string, number \| readonly QueryRecord\<unknown, Readonly\<Record\<string, number \| readonly QueryRecord\<unknown, Readonly\<Record\<string, number \| readonly QueryRecord\<unknown, Readonly\<Record\<string, number \| readonly QueryRecord\<unknown, Re..., `Readonly`\<`Record`\<`string`, `unknown`\>\>\>[]\>\>, `Readonly`\<`Record`\<`string`, `unknown`\>\>\>\>

## Throws

When the query is malformed — with a message saying what to fix
