UNPKG

vue-rest-hooks

Version:

typescript restfull-api reactive @vue/composition-api

35 lines (34 loc) 1.37 kB
import { ref } from "@vue/composition-api"; export /** * use restfull api request typeof post put delete reactive * * @template TParams * @template TData * @param {RequestType<TParams, TData>} request * @param {MutationParams<TParams, TData>} [params] * @returns {[typeof execute, MutationResult<TData>]} */ var useMutation = function (request, params) { if (params === void 0) { params = {}; } var data = ref(void 0); var loading = ref(false); var error = ref(void 0); var _a = params.variables, variables = _a === void 0 ? {} : _a, update = params.update; var variableState = ref(variables); var execute = function (execParams) { if (execParams === void 0) { execParams = {}; } var _a = execParams.variables, variables = _a === void 0 ? {} : _a, _b = execParams.update, updateFn = _b === void 0 ? update : _b; variableState.value = variables; loading.value = true; return request(variableState.value) .then(function (result) { data.value = result; updateFn === null || updateFn === void 0 ? void 0 : updateFn(result); }) .catch(function (err) { error.value = err; }).finally(function () { loading.value = false; }); }; return [execute, { data: data, loading: loading, error: error }]; };