UNPKG

vue-hooks-plus

Version:
80 lines (79 loc) 2.16 kB
"use strict"; const vue = require("vue"); const useRequest = require("../useRequest"); const lodashEs = require("lodash-es"); const _interopDefaultLegacy = (e) => e && typeof e === "object" && "default" in e ? e : { default: e }; const useRequest__default = /* @__PURE__ */ _interopDefaultLegacy(useRequest); function createUseRequestComponent() { const Comp = vue.defineComponent({ name: "UseRequest", props: { service: { type: Function, required: true }, manual: { type: Boolean, default: false }, ready: { type: Object, default: () => ({ ready: false }) }, refreshDeps: { type: Array, default: () => [] }, plugins: { type: Array, default: () => [] }, formatResult: { type: Function, default: void 0 } }, slots: Object, setup(props, { slots }) { const service = vue.computed(() => vue.unref(props.service)); const plugins = vue.computed(() => vue.unref(props.plugins)); const manual = props.manual; const ready = vue.computed(() => props.ready); const refreshDeps = vue.computed(() => props.refreshDeps); const options = { ready, refreshDeps, manual: props.manual, formatResult: props.formatResult }; const result = useRequest__default.default( service.value, options, plugins.value ); vue.watch(refreshDeps, (newVal, oldVal) => { if (lodashEs.isEqual(newVal, oldVal)) return; if (!manual) { result == null ? void 0 : result.refresh(); } }); return () => { if (result.loading.value && slots.loading) { return slots.loading(); } if (result.error.value && slots.error) { return slots.error({ error: result.error.value }); } if (slots.default) { return slots.default(vue.computed(() => result).value); } return null; }; } }); return Comp; } module.exports = createUseRequestComponent;