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

Defined in: [packages/common/src/Resource.ts:675](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L675)

Options for [createSharedResourceByKey](https://evolu.dev/docs/api-reference/common/Resource/functions/createSharedResourceByKey).

## Extends

- `Pick`\<[`SharedResourceOptions`](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions), `"idleDisposeAfter"`\>.[`LookupOption`](https://evolu.dev/docs/api-reference/common/Lookup/interfaces/LookupOption)\<`K`, `L`\>

## Properties

<a id="idledisposeafter"></a>

### idleDisposeAfter?

```ts
readonly optional idleDisposeAfter?: PositiveDuration;
```

Defined in: [packages/common/src/Resource.ts:283](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L283)

Keeps the resource alive briefly after the last lease is released.

This avoids immediate disposal when the resource is expensive to create and
likely to be acquired again soon. A new acquire during this delay cancels
the pending disposal and reuses the current resource.

#### Inherited from

[`SharedResourceOptions`](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions).[`idleDisposeAfter`](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceOptions#idledisposeafter)

---

<a id="lookup"></a>

### lookup?

```ts
readonly optional lookup?: Lookup<K, L>;
```

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

Derives the lookup key used for logical equality.

#### Inherited from

[`LookupOption`](https://evolu.dev/docs/api-reference/common/Lookup/interfaces/LookupOption).[`lookup`](https://evolu.dev/docs/api-reference/common/Lookup/interfaces/LookupOption#lookup)

---

<a id="ondisposed"></a>

### onDisposed?

```ts
readonly optional onDisposed?: (key: K) => void;
```

Defined in: [packages/common/src/Resource.ts:687](https://github.com/evoluhq/evolu/blob/037c390af081e9944d616ff298a729515c5c5ab7/packages/common/src/Resource.ts#L687)

Called with `key` after each current resource for that key is disposed,
including during [SharedResourceByKey](https://evolu.dev/docs/api-reference/common/Resource/interfaces/SharedResourceByKey) disposal. Not called for keys
whose resources were never created.

After ordinary idle disposal, the key is removed before this callback
unless a same-key operation is already in progress. A regular acquire can
then create the next current resource. An acquireCurrent that finds no
resource removes the retained key before returning.