[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:179](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L179)

`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:192](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L192)

#### Overrides

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

---

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

### add

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

Defined in: [packages/common/src/Lookup.ts:183](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L183)

### clear

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

Defined in: [packages/common/src/Lookup.ts:185](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L185)

### delete

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

Defined in: [packages/common/src/Lookup.ts:184](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L184)

### entries

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

Defined in: [packages/common/src/Lookup.ts:188](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L188)

### forEach

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

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

### get

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

Defined in: [packages/common/src/Lookup.ts:182](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L182)

### has

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

Defined in: [packages/common/src/Lookup.ts:181](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L181)

### keys

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

Defined in: [packages/common/src/Lookup.ts:186](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L186)

### size

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

Defined in: [packages/common/src/Lookup.ts:180](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L180)

---

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

### values

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

Defined in: [packages/common/src/Lookup.ts:187](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Lookup.ts#L187)