Sync
Fetch plugin
syncedFetch is a simple wrapper around fetch to reduce boilerplate.
get: The URL to get. If it is an observable or Selector function, it will re-run whenever the value changes.set: The URL to setgetInit: Theinitparameter to pass tofetchwhen gettingsetInit: Theinitparameter to pass tofetchwhen setting. Defaults to{ method: 'POST' }valueType: The function to call on the Response from get. Defaults tojson.onSavedValueType: The function to call on the Response from set. Defaults to thevalueTypeoption orjson.onSaved: Receives{ saved, input, currentValue, props }. Return a value to save back into the observable;savedis the parsed, transformed response from set.
Example:
import { syncedFetch } from '@legendapp/state/sync-plugins/fetch';
import { observable } from '@legendapp/state';
const state$ = observable(syncedFetch({
get: 'https://url.to.get',
set: 'https://url.to.set',
onSaved: ({ saved }) => {
return {
updatedAt: saved.updatedAt
}
}
}))