react-redux-query
Version:
React hooks and functions for SWR-style data fetching, backed by Redux
60 lines (59 loc) • 1.99 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.updateQueryState = exports.update = exports.save = void 0;
/**
* Action stores fetcher data. key is usually unique per URL path, and should probably be similar to URL path.
*
* @param payload - Payload object
* @param payload.key - Key in query branch at which to save data
* @param payload.data - Data object
*
* @returns Redux action object
*/
function save(payload) {
return {
type: 'REACT_REDUX_QUERY_SAVE_DATA',
payload: payload,
};
}
exports.save = save;
/**
* Like save, but takes an updater function, which receives the data at key and must return updated data, undefined, or
* null.
*
* - If updater returns undefined, don't modify data at key
* - If updater returns null, remove query state at key from query branch
*
* @param payload - Payload object
* @param payload.key - Key in query branch at which to save data
* @param payload.updater - Function that receives data at key and must return updated data, undefined, or null
* @param payload.newData - If this is passed, updater receives this as second argument
*
* @returns Redux action object
*/
function update(payload) {
return {
type: 'REACT_REDUX_QUERY_UPDATE_DATA',
payload: payload,
};
}
exports.update = update;
/**
* Action updates query state. key is usually unique per URL path, and should probably be similar to URL path.
*
* This is meant for internal use; query state contains query metadata that client code should probably not update.
*
* @param payload - Payload object
* @param payload.key - Key in query branch at which to save query state
* @param payload.state - Query state object
* @param payload.options - Update options
*
* @returns Redux action object
*/
function updateQueryState(payload) {
return {
type: 'REACT_REDUX_QUERY_UPDATE_QUERY_STATE',
payload: payload,
};
}
exports.updateQueryState = updateQueryState;