A Resource with a mutable value.
API
interface WritableResource<T> extends Resource<T> {
readonly value: WritableSignal<T>;
hasValue(this: T extends undefined ? this : never): this is WritableResource<Exclude<T, undefined>>;
hasValue(): boolean;
set(value: T): void;
update(updater: (value: T) => T): void;
asReadonly(): Resource<T>;
reload(): boolean;
readonly override status: Signal<ResourceStatus>;
readonly override error: Signal<Error | undefined>;
readonly override isLoading: Signal<boolean>;
readonly override snapshot: Signal<ResourceSnapshot<T>>;
}
value
WritableSignal<T>hasValue
this is WritableResource<Exclude<T, undefined>>T extends undefined ? this : never
this is WritableResource<Exclude<T, undefined>>
hasValue
booleanboolean
set
voidConvenience wrapper for value.set.
T
void
update
voidConvenience wrapper for value.update.
(value: T) => T
void
reload
booleanInstructs the resource to re-load any asynchronous dependency it may have.
Note that the resource will not enter its reloading state until the actual backend request is made.
boolean
status
Signal<ResourceStatus>The current status of the Resource, which describes what the resource is currently doing and what can be expected of its value.
error
Signal<Error | undefined>When in the error state, this returns the last known error from the Resource.
isLoading
Signal<boolean>Whether this resource is loading a new value (or reloading the existing one).
snapshot
Signal<ResourceSnapshot<T>>The current state of this resource, represented as a ResourceSnapshot.
Description
A Resource with a mutable value.
Overwriting the value of a resource sets it to the 'local' state.