API reference@evolu/commonResource › createSharedResourceByKey

Call Signature

function createSharedResourceByKey<K, T, D>(
  create: (key: K) => Task<T, never, D>,
): Task<SharedResourceByKey<K, T>, never, D>;

Defined in: packages/common/src/Resource.ts:708

Creates SharedResourceByKey.

The create callback returns a Task scoped to one key. The returned Task must not fail, matching createSharedResource.

Create each resource with disposable when its shape supports it. The same disposal-guard recommendation as createSharedResource applies.

The returned Task must not directly or transitively acquire the same logical key or call forEachCurrent on this registry. Same-key acquisition is non-reentrant, and forEachCurrent attempts to acquire every registered key. Different keys remain independent.

Like createSharedResource, dependencies are captured when the registry is created; dependencies provided to later acquire calls do not change what the returned Task observes.

Call Signature

function createSharedResourceByKey<K, T, D, L>(
  create: (key: K) => Task<T, never, D>,
  options: SharedResourceByKeyOptions<K, L>,
): Task<SharedResourceByKey<K, T>, never, D>;

Defined in: packages/common/src/Resource.ts:717

Creates SharedResourceByKey with lookup or lifecycle options.