capability
Create an available capability supplied directly by the current runtime.
| Package | @vizejs/composable/capability |
| Own the source | vize lib pull composable:capability |
| Runtime exports | availableCapability, unavailableCapability, isCapabilityAvailable, isCapabilityUnavailable |
| Gzip budget | 1024 B |
Usage
import { availableCapability, unavailableCapability, isCapabilityAvailable, isCapabilityUnavailable } from "@vizejs/composable/capability";
Runtime contract
| Utility | Category | Stability | SSR | Hydration | Cleanup | Targets | Host globals | Uses |
|---|---|---|---|---|---|---|---|---|
availableCapability |
capability | experimental | safe | not-applicable | none | web, server, worker, native, desktop, terminal | — | — |
unavailableCapability |
capability | experimental | safe | not-applicable | none | web, server, worker, native, desktop, terminal | — | — |
isCapabilityAvailable |
capability | experimental | safe | not-applicable | none | web, server, worker, native, desktop, terminal | — | — |
isCapabilityUnavailable |
capability | experimental | safe | not-applicable | none | web, server, worker, native, desktop, terminal | — | — |
API
availableCapability
Create an available capability supplied directly by the current runtime. The value and source retain literal types. The helper performs no global access and is safe during server rendering and module evaluation.
function availableCapability<const Value>( value: Value, ): AvailableCapability<Value, "runtime">
availableCapability
Create an available capability with an explicit, literal-preserving source.
function availableCapability<const Value, const Source extends string>( value: Value, source: Source, ): AvailableCapability<Value, Source>
availableCapability
function availableCapability<const Value, const Source extends string>( value: Value, source?: Source, ): AvailableCapability<Value, Source | "runtime">
unavailableCapability
Create an unavailable capability without additional details. The reason retains its string-literal type. Capability absence is returned as data rather than thrown, making unsupported server, worker, native, desktop, and terminal environments deterministic.
function unavailableCapability<const Reason extends string>( reason: Reason, ): UnavailableCapability<Reason, undefined>
unavailableCapability
Create an unavailable capability with typed recovery or diagnostic details. Passing undefined explicitly is distinct at the call boundary and still preserves the exact undefined details type.
function unavailableCapability<const Reason extends string, const Details>( reason: Reason, details: Details, ): UnavailableCapability<Reason, Details>
unavailableCapability
function unavailableCapability<const Reason extends string, const Details>( reason: Reason, details?: Details, ): UnavailableCapability<Reason, Details | undefined>
isCapabilityAvailable
Narrow a capability result to its available branch.
function isCapabilityAvailable<Value, Reason extends string, Details, Source extends string>( result: CapabilityResult<Value, Reason, Details, Source>, ): result is AvailableCapability<Value, Source>
isCapabilityUnavailable
Narrow a capability result to its unavailable branch.
function isCapabilityUnavailable< Value, Reason extends string, Details, Source extends string, >( result: CapabilityResult<Value, Reason, Details, Source>, ): result is UnavailableCapability<Reason, Details>
Types
AvailableCapability
A capability value that is ready for use.
| Member | Type | Description |
|---|---|---|
status |
"available" |
Stable discriminant for serialization and exhaustive matching. |
available |
true |
Boolean discriminant for ergonomic guards in templates and JavaScript. |
value |
Value |
Resolved capability implementation or value. |
source |
Source |
Origin that supplied the value, preserved as a string literal. |
UnavailableCapability
A capability that cannot currently provide a value.
| Member | Type | Description |
|---|---|---|
status |
"unavailable" |
Stable discriminant for serialization and exhaustive matching. |
available |
false |
Boolean discriminant for ergonomic guards in templates and JavaScript. |
reason |
Reason |
Typed, machine-readable explanation of the unavailable state. |
details |
Details |
Structured diagnostic or recovery information supplied by the adapter. |