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

Defined in: [packages/common/src/Lookup.ts:155](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L155)

`Set`-like collection keyed by a [derived lookup key](https://evolu.dev/docs/api-reference/common/Lookup/type-aliases/Lookup).

`add` preserves the first inserted representative for a logical key. `get`
returns that representative for callers that need stable identity.

## See

[createLookupSet](https://evolu.dev/docs/api-reference/common/Lookup/functions/createLookupSet)

## Extends

- [`Iterable`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Iteration_protocols#the_iterable_protocol)\<`K`\>

## Properties

<a id="iterator"></a>

### \[iterator\]

```ts
readonly [iterator]: () => IterableIterator<K>;
```

Defined in: [packages/common/src/Lookup.ts:168](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L168)

#### Overrides

```ts
Iterable.[iterator]
```

---

<a id="add"></a>

### add

```ts
readonly add: (key: K) => LookupSet<K>;
```

Defined in: [packages/common/src/Lookup.ts:159](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L159)

### clear

```ts
readonly clear: () => void;
```

Defined in: [packages/common/src/Lookup.ts:161](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L161)

### delete

```ts
readonly delete: (key: K) => boolean;
```

Defined in: [packages/common/src/Lookup.ts:160](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L160)

### entries

```ts
readonly entries: () => IterableIterator<readonly [K, K]>;
```

Defined in: [packages/common/src/Lookup.ts:164](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L164)

### forEach

```ts
readonly forEach: (callback: (value: K, key: K, set: LookupSet<K>) => void) => void;
```

Defined in: [packages/common/src/Lookup.ts:165](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L165)

### get

```ts
readonly get: (key: K) => K | undefined;
```

Defined in: [packages/common/src/Lookup.ts:158](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L158)

### has

```ts
readonly has: (key: K) => boolean;
```

Defined in: [packages/common/src/Lookup.ts:157](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L157)

### keys

```ts
readonly keys: () => IterableIterator<K>;
```

Defined in: [packages/common/src/Lookup.ts:162](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L162)

### size

```ts
readonly size: number;
```

Defined in: [packages/common/src/Lookup.ts:156](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L156)

---

<a id="values"></a>

### values

```ts
readonly values: () => IterableIterator<K>;
```

Defined in: [packages/common/src/Lookup.ts:163](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L163)