Skip to content

API Reference

new T87s(options: T87sOptions)

Options:

OptionTypeDefaultDescription
adapterStorageAdapterrequiredStorage backend
prefixstring't87s'Key prefix for namespacing
defaultTtl / default_ttlstring | number'30s'Default TTL for queries
defaultGrace / default_gracestring | number | NoneNoneDefault grace period
t87s.query<TArgs, TResult>(
factory: (...args: TArgs) => QueryConfig<TResult>
): (...args: TArgs) => Promise<TResult>

Creates a cached query function.

QueryConfig:

OptionTypeRequiredDescription
tagsTag[] / list[Tag]requiredCache dependencies
fn() => Promise<T> / Callable[[], T]requiredData fetcher
ttlstring | numberoptionalTime to live
gracestring | number | false / str | int | NoneoptionalGrace period
t87s.mutation<TArgs, TResult>(
fn: (...args: TArgs) => Promise<MutationResult<TResult>>
): (...args: TArgs) => Promise<TResult>

Creates a mutation that invalidates cache.

MutationResult:

FieldTypeRequiredDescription
resultTrequiredReturn value
invalidatesTag[] / list[Tag]requiredTags to invalidate
exactboolean / booloptionalDisable prefix matching
t87s.invalidate(tags: Tag[], exact?: boolean): Promise<void>

Manually invalidate tags without a mutation.

t87s.clear(): Promise<void>

Clear all cached data.

defineTags<T extends TagDefinitions>(defs: T): TagFactories<T>

Creates typed tag factories.

const tags = defineTags({
user: (id: string) => ['user', id],
});
const tag = tags.user('123'); // Type: Tag