UNPKG

@woocommerce/data

Version:
69 lines (68 loc) 2.09 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.updateOptions = exports.setIsUpdating = exports.setUpdatingError = exports.setRequestingError = exports.receiveOptions = void 0; /** * External dependencies */ const data_controls_1 = require("@wordpress/data-controls"); /** * Internal dependencies */ const action_types_1 = __importDefault(require("./action-types")); const constants_1 = require("../constants"); function receiveOptions(options) { return { type: action_types_1.default.RECEIVE_OPTIONS, options, }; } exports.receiveOptions = receiveOptions; function setRequestingError(error, name) { return { type: action_types_1.default.SET_REQUESTING_ERROR, error, name, }; } exports.setRequestingError = setRequestingError; function setUpdatingError(error) { return { type: action_types_1.default.SET_UPDATING_ERROR, error, }; } exports.setUpdatingError = setUpdatingError; function setIsUpdating(isUpdating) { return { type: action_types_1.default.SET_IS_UPDATING, isUpdating, }; } exports.setIsUpdating = setIsUpdating; function* updateOptions(data) { yield setIsUpdating(true); yield receiveOptions(data); try { const results = yield (0, data_controls_1.apiFetch)({ path: constants_1.WC_ADMIN_NAMESPACE + '/options', method: 'POST', data, }); yield setIsUpdating(false); if (typeof results !== 'object') { throw new Error(`Invalid update options response from server: ${results}`); } return { success: true, ...results }; } catch (error) { yield setUpdatingError(error); if (typeof error !== 'object') { throw new Error(`Unexpected error: ${error}`); } return { success: false, ...error }; } } exports.updateOptions = updateOptions;