UNPKG

@cloudcome/utils-uni

Version:
59 lines (58 loc) 2.1 kB
import { isFunction } from "@cloudcome/utils-core/type"; import { useRequest } from "@cloudcome/utils-vue/request"; import { p as parseCloudMethodOutput } from "./_helpers.mjs"; function importCloudObject(objectName, importOptions) { const fallbackErrorMessage = importOptions?.fallbackErrorMessage || "请求失败"; const server = importOptions?._mockServer || uniCloud.importObject(objectName, importOptions); const useCloudMethod = (method, caller, options) => { return useRequest( async (...inputs) => { const methodName = isFunction(method) ? method(...inputs) : method; const request = server[methodName]; const output = await caller(request, ...inputs); return parseCloudMethodOutput(output, fallbackErrorMessage); }, { ...options, onBefore(...inputs) { if (options?.showLoading) uni.showLoading({ title: "", mask: true }); importOptions?.onBefore?.(); options?.onBefore?.(...inputs); }, onSuccess(data, ...inputs) { importOptions?.onSuccess?.(); options?.onSuccess?.(data, ...inputs); }, onError(err, ...inputs) { importOptions?.onError?.(err); options?.onError?.(err, ...inputs); if (options?.showError) { setTimeout(() => { uni.showToast({ title: err.message, icon: "none", duration: 3e3, mask: false }); }); } }, onAfter(...inputs) { if (options?.showLoading) uni.hideLoading(); importOptions?.onAfter?.(); options?.onAfter?.(...inputs); } } ); }; return useCloudMethod; } function useDatabase(caller, options) { const db = options?._mockDatabase || uniCloud.database(); return useRequest(async (...inputs) => { const { result } = await caller(db, ...inputs); if (!result.errCode) return result; throw new Error(result.errMsg || "请求失败"); }, options); } export { importCloudObject, parseCloudMethodOutput, useDatabase }; //# sourceMappingURL=client.mjs.map