[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:403](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L403)

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?: Duration;
```

Defined in: [packages/common/src/Resource.ts:229](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L229)

Keeps the resource alive briefly after the last release.

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:34](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Lookup.ts#L34)

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:406](https://github.com/evoluhq/evolu/blob/e7144e2bbe9069362b62dec1b64a8aa922b8f1b0/packages/common/src/Resource.ts#L406)

Called after `key`'s current resource is disposed and cleared.