API Reference
T87s Class
Section titled “T87s Class”Constructor
Section titled “Constructor”new T87s(options: T87sOptions)T87s(adapter, prefix="t87s", default_ttl="30s", default_grace=None)Options:
| Option | Type | Default | Description |
|---|---|---|---|
adapter | StorageAdapter | required | Storage backend |
prefix | string | 't87s' | Key prefix for namespacing |
defaultTtl / default_ttl | string | number | '30s' | Default TTL for queries |
defaultGrace / default_grace | string | number | None | None | Default grace period |
query()
Section titled “query()”t87s.query<TArgs, TResult>( factory: (...args: TArgs) => QueryConfig<TResult>): (...args: TArgs) => Promise<TResult>@t87s.querydef my_query(args...) -> QueryConfig[T]: return QueryConfig(tags=[...], fn=lambda: ...)Creates a cached query function.
QueryConfig:
| Option | Type | Required | Description |
|---|---|---|---|
tags | Tag[] / list[Tag] | required | Cache dependencies |
fn | () => Promise<T> / Callable[[], T] | required | Data fetcher |
ttl | string | number | optional | Time to live |
grace | string | number | false / str | int | None | optional | Grace period |
mutation()
Section titled “mutation()”t87s.mutation<TArgs, TResult>( fn: (...args: TArgs) => Promise<MutationResult<TResult>>): (...args: TArgs) => Promise<TResult>@t87s.mutationdef my_mutation(args...) -> MutationResult[T]: return MutationResult(result=..., invalidates=[...])Creates a mutation that invalidates cache.
MutationResult:
| Field | Type | Required | Description |
|---|---|---|---|
result | T | required | Return value |
invalidates | Tag[] / list[Tag] | required | Tags to invalidate |
exact | boolean / bool | optional | Disable prefix matching |
invalidate()
Section titled “invalidate()”t87s.invalidate(tags: Tag[], exact?: boolean): Promise<void>t87s.invalidate(tags: list[Tag], exact: bool = False) -> NoneManually invalidate tags without a mutation.
clear()
Section titled “clear()”t87s.clear(): Promise<void>t87s.clear() -> NoneClear all cached data.
defineTags() / define_tags()
Section titled “defineTags() / define_tags()”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: Tagdefine_tags(defs: dict[str, Callable[..., tuple[str, ...]]]) -> dict[str, Callable[..., Tag]]Creates tag factories.
tags = define_tags({ "user": lambda id: ("user", id),})
tag = tags["user"]("123") # Type: Tag