@furystack/repository
Version:
Repository implementation for FuryStack
24 lines • 1.17 kB
TypeScript
import type { WithOptionalId } from '@furystack/core';
import type { Injector } from '@furystack/inject';
import type { DataSet } from './data-set.js';
import type { DataSetToken } from './define-data-set.js';
/**
* Resolves the {@link DataSet} for `token` on `injector`. The preferred
* write gateway for application code — `furystack/no-direct-store-token`
* forbids resolving the underlying `StoreToken` directly. For server-side
* or background work, wrap `injector` with `useSystemIdentityContext` from
* `@furystack/core` to obtain an elevated identity before calling this.
*
* @example
* ```ts
* await usingAsync(
* useSystemIdentityContext({ injector, username: 'background-job' }),
* async (systemInjector) => {
* const dataSet = getDataSetFor(systemInjector, UserDataSet)
* await dataSet.add(systemInjector, { username: 'alice', roles: [] })
* },
* )
* ```
*/
export declare const getDataSetFor: <T, TPrimaryKey extends keyof T, TWritableData = WithOptionalId<T, TPrimaryKey>>(injector: Injector, token: DataSetToken<T, TPrimaryKey, TWritableData>) => DataSet<T, TPrimaryKey, TWritableData>;
//# sourceMappingURL=helpers.d.ts.map