[API reference](https://evolu.dev/docs/api-reference) › [@evolu/common](https://evolu.dev/docs/api-reference/common) › [Object](https://evolu.dev/docs/api-reference/common/Object) › objectFromEntries

```ts
function objectFromEntries<K, V>(
  entries: Iterable<readonly [K, V]>,
): ReadonlyRecord<K, V>;
```

Defined in: [packages/common/src/Object.ts:189](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Object.ts#L189)

Creates an object from key-value pairs, preserving branded key types.

The inverse of [objectToEntries](https://evolu.dev/docs/api-reference/common/Object/functions/objectToEntries). Use when you need type-safe
reconstruction of objects with branded keys.

### Example

```ts
import {
  assertEqual,
  assertType,
  objectFromEntries,
  type Brand,
  type ReadonlyRecord,
} from "@evolu/common";

type UserId = string & Brand<"UserId">;
const entries: ReadonlyArray<[UserId, string]> = [["u1" as UserId, "Alice"]];
const users = objectFromEntries(entries);

assertType<ReadonlyRecord<UserId, string>, typeof users>();
assertEqual(users, { u1: "Alice" });
```