API reference › @evolu/common › Resource › 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.