@cloudcome/utils-uni 1.32.0 → 1.33.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/client.cjs +1 -2
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.ts +4 -4
- package/dist/client.mjs +1 -2
- package/dist/client.mjs.map +1 -1
- package/dist/cloud/types.d.ts +2 -2
- package/dist/cloud.cjs +1 -1
- package/dist/cloud.mjs +1 -1
- package/dist/database.cjs +1 -1
- package/dist/database.mjs +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +1 -1
package/dist/client.cjs
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require__helpers = require("./_helpers.cjs");
|
|
3
|
-
let _cloudcome_utils_core_type = require("@cloudcome/utils-core/type");
|
|
4
3
|
let _cloudcome_utils_vue_request = require("@cloudcome/utils-vue/request");
|
|
5
4
|
//#region src/client.ts
|
|
6
5
|
/**
|
|
@@ -34,7 +33,7 @@ function importCloudObject(objectName, importOptions) {
|
|
|
34
33
|
*/
|
|
35
34
|
const useCloudMethod = (method, caller, options) => {
|
|
36
35
|
return (0, _cloudcome_utils_vue_request.useRequest)(async (...inputs) => {
|
|
37
|
-
const request = server[
|
|
36
|
+
const request = server[method];
|
|
38
37
|
return require__helpers.parseCloudMethodOutput(await caller(request, ...inputs), fallbackErrorMessage);
|
|
39
38
|
}, {
|
|
40
39
|
...options,
|
package/dist/client.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.cjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"client.cjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { AnyArray, AnyFunction } from '@cloudcome/utils-core/types';\nimport {\n type UseRequestOptions,\n type UseRequestOutput,\n type UseRequestOutputFilled,\n useRequest,\n} from '@cloudcome/utils-vue/request';\nimport type { CloudMethodOutput, UniError } from '@/cloud';\nimport type { ClientDatabaseOutput } from '@/database';\nimport { parseCloudMethodOutput } from './_helpers';\n\ntype _ImportObject = UniCloudNamespace.UniCloud['importObject'];\ntype _ImportObjectArgs = Parameters<_ImportObject>;\ntype _ImportObjectOptions = _ImportObjectArgs[1];\n\nexport type CreateUseCloudObjectOptions = _ImportObjectOptions & {\n /**\n * 模拟云对象,用于单元测试\n * @private\n */\n // biome-ignore lint/suspicious/noExplicitAny: 单测使用 any\n _mockServer?: any;\n\n /**\n * 回退错误信息\n * @default '请求失败'\n */\n fallbackErrorMessage?: string;\n\n /**\n * 请求开始前的回调函数\n */\n onBefore?: () => unknown;\n\n /**\n * 请求成功后的回调函数\n */\n onSuccess?: () => unknown;\n\n /**\n * 请求失败时的回调函数\n * @param err 错误信息\n */\n onError?: (err: UniError) => unknown;\n\n /**\n * 请求完成后的回调函数(无论成功或失败都会执行)\n */\n onAfter?: () => unknown;\n\n /**\n * 显示加载状态的回调函数,当配置了 showLoading 为 true 时会调用\n */\n onShowLoading?: () => unknown;\n\n /**\n * 隐藏加载状态的回调函数,当配置了 showLoading 为 true 时会调用\n */\n onHideLoading?: () => unknown;\n\n /**\n * 显示错误信息的回调函数,当配置了 showError 为 true 时会调用\n * @param err 错误信息\n */\n onShowError?: (err: UniError) => unknown;\n};\n\n/**\n * 云对象请求函数类型定义\n * @template F 云对象方法函数类型\n * @param input 云对象方法的参数数组\n * @returns 返回云对象方法执行结果的Promise\n */\nexport type CloudObjectRequest = <F extends AnyFunction>(\n ...input: Parameters<F>\n) => Promise<CloudMethodOutput<ReturnType<F>>>;\n\n/**\n * 用于调用云对象方法的配置选项类型定义\n * @template I 输入参数类型数组\n * @template O 输出结果类型\n */\nexport type UseCloudMethodOptions<I extends AnyArray, O> = Omit<\n UseRequestOptions<I, O>,\n 'onError'\n> & {\n /**\n * 请求发生错误时的回调函数\n * @param err 错误信息\n * @param inputs 请求输入参数\n */\n onError?: (err: UniError, ...inputs: I) => unknown;\n\n /**\n * 是否显示加载状态\n * @default false\n */\n showLoading?: boolean;\n\n /**\n * 是否显示错误信息\n * @default false\n */\n showError?: boolean;\n};\n\n/**\n * 用于调用云对象方法的hook函数类型定义\n * @template I 输入参数类型数组\n * @template O 输出结果类型\n */\nexport type UseCloudMethod<Api extends Record<string, AnyFunction>> = {\n /**\n * 重载签名:当提供 placeholder 选项时,返回包含初始值的输出类型\n * @param method 云对象方法名\n * @param caller 调用云对象方法的函数\n * @param options 包含 placeholder 的请求配置选项\n * @returns 返回包含初始值的请求输出\n */\n <K extends keyof Api, I extends AnyArray, O>(\n method: K,\n caller: (request: Api[K], ...inputs: I) => Promise<CloudMethodOutput<O>>,\n options: Omit<UseCloudMethodOptions<I, O>, 'placeholder'> & {\n placeholder: () => O;\n },\n ): UseRequestOutputFilled<I, O>;\n\n /**\n * 重载签名:当不提供 placeholder 选项时,返回普通输出类型\n * @param method 云对象方法名\n * @param caller 调用云对象方法的函数\n * @param options 可选的请求配置选项\n * @returns 返回普通的请求输出\n */\n <K extends keyof Api, I extends AnyArray, O>(\n method: K,\n caller: (request: Api[K], ...inputs: I) => Promise<CloudMethodOutput<O>>,\n options?: UseCloudMethodOptions<I, O>,\n ): UseRequestOutput<I, O>;\n};\n\n/**\n * 导入云对象并创建一个用于调用云对象的hook\n * @param objectName 云对象名称\n * @param importOptions 配置选项,包含模拟服务器、回退错误信息等\n * @returns 返回一个可用于调用云对象方法的hook函数\n */\nexport function importCloudObject<Api extends Record<string, AnyFunction>>(\n objectName: _ImportObjectArgs[0],\n importOptions?: CreateUseCloudObjectOptions,\n) {\n const fallbackErrorMessage =\n importOptions?.fallbackErrorMessage || '请求失败';\n const server =\n importOptions?._mockServer ||\n uniCloud.importObject(objectName, importOptions);\n const onShowLoading =\n importOptions?.onShowLoading ||\n (() => uni.showLoading({ title: '', mask: true }));\n const onHideLoading =\n importOptions?.onHideLoading || (() => uni.hideLoading());\n const onShowError =\n importOptions?.onShowError ||\n ((err) =>\n uni.showToast({\n title: err.message,\n icon: 'none',\n duration: 3000,\n mask: false,\n }));\n\n /**\n * 用于调用云对象方法的hook函数\n * @template I 输入参数类型\n * @template O 输出结果类型\n * @param method 云对象方法名\n * @param caller 调用云对象的函数\n * @param options 配置选项,包含请求相关的配置\n * @returns 返回一个请求hook,用于处理云对象调用\n */\n const useCloudMethod: UseCloudMethod<Api> = (method, caller, options) => {\n // 使用请求hook处理云对象调用\n return useRequest(\n async (...inputs) => {\n const request = server[method];\n const output = await caller(request, ...inputs);\n return parseCloudMethodOutput(output, fallbackErrorMessage);\n },\n {\n ...options,\n async onBefore(...inputs) {\n if (options?.showLoading) onShowLoading();\n\n await importOptions?.onBefore?.();\n await options?.onBefore?.(...inputs);\n },\n async onSuccess(data, ...inputs) {\n await importOptions?.onSuccess?.();\n await options?.onSuccess?.(data, ...inputs);\n },\n async onError(err, ...inputs) {\n await importOptions?.onError?.(err as UniError);\n await options?.onError?.(err as UniError, ...inputs);\n\n if (options?.showError) {\n // 加延迟是尽量保证在 loading 隐藏后再显示错误信息\n setTimeout(() => {\n onShowError(err as UniError);\n });\n }\n },\n async onAfter(...inputs) {\n if (options?.showLoading) onHideLoading();\n\n await importOptions?.onAfter?.();\n await options?.onAfter?.(...inputs);\n },\n },\n );\n };\n\n return useCloudMethod;\n}\n\nexport type UseDatabaseOptions<I extends AnyArray, O> = UseRequestOptions<\n I,\n O\n> & {\n /**\n * 模拟数据库,用于单元测试\n */\n // biome-ignore lint/suspicious/noExplicitAny: 单测使用 any\n _mockDatabase?: any;\n};\n\n/**\n * 创建一个用于调用云数据库的hook\n * @param caller 调用云数据库的函数,接收数据库实例和输入参数,返回Promise\n * @param options 配置选项\n * @returns 返回一个请求hook,用于处理云数据库调用\n */\nexport function useDatabase<I extends AnyArray, O>(\n caller: (\n db: UniCloud.Database,\n ...inputs: I\n ) => Promise<ClientDatabaseOutput<O>>,\n options: Omit<UseDatabaseOptions<I, O>, 'placeholder'> & {\n placeholder: () => O;\n },\n): UseRequestOutputFilled<I, O>;\nexport function useDatabase<I extends AnyArray, O>(\n caller: (\n db: UniCloud.Database,\n ...inputs: I\n ) => Promise<ClientDatabaseOutput<O>>,\n options?: UseDatabaseOptions<I, O>,\n): UseRequestOutput<I, O>;\nexport function useDatabase<I extends AnyArray, O>(\n caller: (\n db: UniCloud.Database,\n ...inputs: I\n ) => Promise<ClientDatabaseOutput<O>>,\n options?: UseDatabaseOptions<I, O>,\n): UseRequestOutput<I, O> {\n // 获取数据库实例,优先使用模拟数据库(用于测试),否则使用uniCloud数据库\n const db = options?._mockDatabase || uniCloud.database();\n return useRequest(async (...inputs: I) => {\n const { result } = await caller(db, ...inputs);\n if (!result.errCode) return result;\n throw new Error(result.errMsg || '请求失败');\n }, options);\n}\n\nexport { parseCloudMethodOutput } from './_helpers';\nexport type { UniError } from './_types';\n"],"mappings":";;;;;;;;;;AAmJA,SAAgB,kBACd,YACA,eACA;CACA,MAAM,uBACJ,eAAe,wBAAwB;CACzC,MAAM,SACJ,eAAe,eACf,SAAS,aAAa,YAAY,cAAc;CAClD,MAAM,gBACJ,eAAe,wBACR,IAAI,YAAY;EAAE,OAAO;EAAI,MAAM;EAAM,CAAC;CACnD,MAAM,gBACJ,eAAe,wBAAwB,IAAI,aAAa;CAC1D,MAAM,cACJ,eAAe,iBACb,QACA,IAAI,UAAU;EACZ,OAAO,IAAI;EACX,MAAM;EACN,UAAU;EACV,MAAM;EACP,CAAC;;;;;;;;;;CAWN,MAAM,kBAAuC,QAAQ,QAAQ,YAAY;EAEvE,QAAA,GAAA,6BAAA,YACE,OAAO,GAAG,WAAW;GACnB,MAAM,UAAU,OAAO;GAEvB,OAAO,iBAAA,uBAAuB,MADT,OAAO,SAAS,GAAG,OAAO,EACT,qBAAqB;KAE7D;GACE,GAAG;GACH,MAAM,SAAS,GAAG,QAAQ;IACxB,IAAI,SAAS,aAAa,eAAe;IAEzC,MAAM,eAAe,YAAY;IACjC,MAAM,SAAS,WAAW,GAAG,OAAO;;GAEtC,MAAM,UAAU,MAAM,GAAG,QAAQ;IAC/B,MAAM,eAAe,aAAa;IAClC,MAAM,SAAS,YAAY,MAAM,GAAG,OAAO;;GAE7C,MAAM,QAAQ,KAAK,GAAG,QAAQ;IAC5B,MAAM,eAAe,UAAU,IAAgB;IAC/C,MAAM,SAAS,UAAU,KAAiB,GAAG,OAAO;IAEpD,IAAI,SAAS,WAEX,iBAAiB;KACf,YAAY,IAAgB;MAC5B;;GAGN,MAAM,QAAQ,GAAG,QAAQ;IACvB,IAAI,SAAS,aAAa,eAAe;IAEzC,MAAM,eAAe,WAAW;IAChC,MAAM,SAAS,UAAU,GAAG,OAAO;;GAEtC,CACF;;CAGH,OAAO;;AAoCT,SAAgB,YACd,QAIA,SACwB;CAExB,MAAM,KAAK,SAAS,iBAAiB,SAAS,UAAU;CACxD,QAAA,GAAA,6BAAA,YAAkB,OAAO,GAAG,WAAc;EACxC,MAAM,EAAE,WAAW,MAAM,OAAO,IAAI,GAAG,OAAO;EAC9C,IAAI,CAAC,OAAO,SAAS,OAAO;EAC5B,MAAM,IAAI,MAAM,OAAO,UAAU,OAAO;IACvC,QAAQ"}
|
package/dist/client.d.ts
CHANGED
|
@@ -82,7 +82,7 @@ export type UseCloudMethodOptions<I extends AnyArray, O> = Omit<UseRequestOption
|
|
|
82
82
|
* @template I 输入参数类型数组
|
|
83
83
|
* @template O 输出结果类型
|
|
84
84
|
*/
|
|
85
|
-
export type UseCloudMethod = {
|
|
85
|
+
export type UseCloudMethod<Api extends Record<string, AnyFunction>> = {
|
|
86
86
|
/**
|
|
87
87
|
* 重载签名:当提供 placeholder 选项时,返回包含初始值的输出类型
|
|
88
88
|
* @param method 云对象方法名
|
|
@@ -90,7 +90,7 @@ export type UseCloudMethod = {
|
|
|
90
90
|
* @param options 包含 placeholder 的请求配置选项
|
|
91
91
|
* @returns 返回包含初始值的请求输出
|
|
92
92
|
*/
|
|
93
|
-
<I extends AnyArray, O>(method:
|
|
93
|
+
<K extends keyof Api, I extends AnyArray, O>(method: K, caller: (request: Api[K], ...inputs: I) => Promise<CloudMethodOutput<O>>, options: Omit<UseCloudMethodOptions<I, O>, 'placeholder'> & {
|
|
94
94
|
placeholder: () => O;
|
|
95
95
|
}): UseRequestOutputFilled<I, O>;
|
|
96
96
|
/**
|
|
@@ -100,7 +100,7 @@ export type UseCloudMethod = {
|
|
|
100
100
|
* @param options 可选的请求配置选项
|
|
101
101
|
* @returns 返回普通的请求输出
|
|
102
102
|
*/
|
|
103
|
-
<I extends AnyArray, O>(method:
|
|
103
|
+
<K extends keyof Api, I extends AnyArray, O>(method: K, caller: (request: Api[K], ...inputs: I) => Promise<CloudMethodOutput<O>>, options?: UseCloudMethodOptions<I, O>): UseRequestOutput<I, O>;
|
|
104
104
|
};
|
|
105
105
|
/**
|
|
106
106
|
* 导入云对象并创建一个用于调用云对象的hook
|
|
@@ -108,7 +108,7 @@ export type UseCloudMethod = {
|
|
|
108
108
|
* @param importOptions 配置选项,包含模拟服务器、回退错误信息等
|
|
109
109
|
* @returns 返回一个可用于调用云对象方法的hook函数
|
|
110
110
|
*/
|
|
111
|
-
export declare function importCloudObject(objectName: _ImportObjectArgs[0], importOptions?: CreateUseCloudObjectOptions): UseCloudMethod
|
|
111
|
+
export declare function importCloudObject<Api extends Record<string, AnyFunction>>(objectName: _ImportObjectArgs[0], importOptions?: CreateUseCloudObjectOptions): UseCloudMethod<Api>;
|
|
112
112
|
export type UseDatabaseOptions<I extends AnyArray, O> = UseRequestOptions<I, O> & {
|
|
113
113
|
/**
|
|
114
114
|
* 模拟数据库,用于单元测试
|
package/dist/client.mjs
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { t as parseCloudMethodOutput } from "./_helpers.mjs";
|
|
2
|
-
import { isFunction } from "@cloudcome/utils-core/type";
|
|
3
2
|
import { useRequest } from "@cloudcome/utils-vue/request";
|
|
4
3
|
//#region src/client.ts
|
|
5
4
|
/**
|
|
@@ -33,7 +32,7 @@ function importCloudObject(objectName, importOptions) {
|
|
|
33
32
|
*/
|
|
34
33
|
const useCloudMethod = (method, caller, options) => {
|
|
35
34
|
return useRequest(async (...inputs) => {
|
|
36
|
-
const request = server[
|
|
35
|
+
const request = server[method];
|
|
37
36
|
return parseCloudMethodOutput(await caller(request, ...inputs), fallbackErrorMessage);
|
|
38
37
|
}, {
|
|
39
38
|
...options,
|
package/dist/client.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import
|
|
1
|
+
{"version":3,"file":"client.mjs","names":[],"sources":["../src/client.ts"],"sourcesContent":["import type { AnyArray, AnyFunction } from '@cloudcome/utils-core/types';\nimport {\n type UseRequestOptions,\n type UseRequestOutput,\n type UseRequestOutputFilled,\n useRequest,\n} from '@cloudcome/utils-vue/request';\nimport type { CloudMethodOutput, UniError } from '@/cloud';\nimport type { ClientDatabaseOutput } from '@/database';\nimport { parseCloudMethodOutput } from './_helpers';\n\ntype _ImportObject = UniCloudNamespace.UniCloud['importObject'];\ntype _ImportObjectArgs = Parameters<_ImportObject>;\ntype _ImportObjectOptions = _ImportObjectArgs[1];\n\nexport type CreateUseCloudObjectOptions = _ImportObjectOptions & {\n /**\n * 模拟云对象,用于单元测试\n * @private\n */\n // biome-ignore lint/suspicious/noExplicitAny: 单测使用 any\n _mockServer?: any;\n\n /**\n * 回退错误信息\n * @default '请求失败'\n */\n fallbackErrorMessage?: string;\n\n /**\n * 请求开始前的回调函数\n */\n onBefore?: () => unknown;\n\n /**\n * 请求成功后的回调函数\n */\n onSuccess?: () => unknown;\n\n /**\n * 请求失败时的回调函数\n * @param err 错误信息\n */\n onError?: (err: UniError) => unknown;\n\n /**\n * 请求完成后的回调函数(无论成功或失败都会执行)\n */\n onAfter?: () => unknown;\n\n /**\n * 显示加载状态的回调函数,当配置了 showLoading 为 true 时会调用\n */\n onShowLoading?: () => unknown;\n\n /**\n * 隐藏加载状态的回调函数,当配置了 showLoading 为 true 时会调用\n */\n onHideLoading?: () => unknown;\n\n /**\n * 显示错误信息的回调函数,当配置了 showError 为 true 时会调用\n * @param err 错误信息\n */\n onShowError?: (err: UniError) => unknown;\n};\n\n/**\n * 云对象请求函数类型定义\n * @template F 云对象方法函数类型\n * @param input 云对象方法的参数数组\n * @returns 返回云对象方法执行结果的Promise\n */\nexport type CloudObjectRequest = <F extends AnyFunction>(\n ...input: Parameters<F>\n) => Promise<CloudMethodOutput<ReturnType<F>>>;\n\n/**\n * 用于调用云对象方法的配置选项类型定义\n * @template I 输入参数类型数组\n * @template O 输出结果类型\n */\nexport type UseCloudMethodOptions<I extends AnyArray, O> = Omit<\n UseRequestOptions<I, O>,\n 'onError'\n> & {\n /**\n * 请求发生错误时的回调函数\n * @param err 错误信息\n * @param inputs 请求输入参数\n */\n onError?: (err: UniError, ...inputs: I) => unknown;\n\n /**\n * 是否显示加载状态\n * @default false\n */\n showLoading?: boolean;\n\n /**\n * 是否显示错误信息\n * @default false\n */\n showError?: boolean;\n};\n\n/**\n * 用于调用云对象方法的hook函数类型定义\n * @template I 输入参数类型数组\n * @template O 输出结果类型\n */\nexport type UseCloudMethod<Api extends Record<string, AnyFunction>> = {\n /**\n * 重载签名:当提供 placeholder 选项时,返回包含初始值的输出类型\n * @param method 云对象方法名\n * @param caller 调用云对象方法的函数\n * @param options 包含 placeholder 的请求配置选项\n * @returns 返回包含初始值的请求输出\n */\n <K extends keyof Api, I extends AnyArray, O>(\n method: K,\n caller: (request: Api[K], ...inputs: I) => Promise<CloudMethodOutput<O>>,\n options: Omit<UseCloudMethodOptions<I, O>, 'placeholder'> & {\n placeholder: () => O;\n },\n ): UseRequestOutputFilled<I, O>;\n\n /**\n * 重载签名:当不提供 placeholder 选项时,返回普通输出类型\n * @param method 云对象方法名\n * @param caller 调用云对象方法的函数\n * @param options 可选的请求配置选项\n * @returns 返回普通的请求输出\n */\n <K extends keyof Api, I extends AnyArray, O>(\n method: K,\n caller: (request: Api[K], ...inputs: I) => Promise<CloudMethodOutput<O>>,\n options?: UseCloudMethodOptions<I, O>,\n ): UseRequestOutput<I, O>;\n};\n\n/**\n * 导入云对象并创建一个用于调用云对象的hook\n * @param objectName 云对象名称\n * @param importOptions 配置选项,包含模拟服务器、回退错误信息等\n * @returns 返回一个可用于调用云对象方法的hook函数\n */\nexport function importCloudObject<Api extends Record<string, AnyFunction>>(\n objectName: _ImportObjectArgs[0],\n importOptions?: CreateUseCloudObjectOptions,\n) {\n const fallbackErrorMessage =\n importOptions?.fallbackErrorMessage || '请求失败';\n const server =\n importOptions?._mockServer ||\n uniCloud.importObject(objectName, importOptions);\n const onShowLoading =\n importOptions?.onShowLoading ||\n (() => uni.showLoading({ title: '', mask: true }));\n const onHideLoading =\n importOptions?.onHideLoading || (() => uni.hideLoading());\n const onShowError =\n importOptions?.onShowError ||\n ((err) =>\n uni.showToast({\n title: err.message,\n icon: 'none',\n duration: 3000,\n mask: false,\n }));\n\n /**\n * 用于调用云对象方法的hook函数\n * @template I 输入参数类型\n * @template O 输出结果类型\n * @param method 云对象方法名\n * @param caller 调用云对象的函数\n * @param options 配置选项,包含请求相关的配置\n * @returns 返回一个请求hook,用于处理云对象调用\n */\n const useCloudMethod: UseCloudMethod<Api> = (method, caller, options) => {\n // 使用请求hook处理云对象调用\n return useRequest(\n async (...inputs) => {\n const request = server[method];\n const output = await caller(request, ...inputs);\n return parseCloudMethodOutput(output, fallbackErrorMessage);\n },\n {\n ...options,\n async onBefore(...inputs) {\n if (options?.showLoading) onShowLoading();\n\n await importOptions?.onBefore?.();\n await options?.onBefore?.(...inputs);\n },\n async onSuccess(data, ...inputs) {\n await importOptions?.onSuccess?.();\n await options?.onSuccess?.(data, ...inputs);\n },\n async onError(err, ...inputs) {\n await importOptions?.onError?.(err as UniError);\n await options?.onError?.(err as UniError, ...inputs);\n\n if (options?.showError) {\n // 加延迟是尽量保证在 loading 隐藏后再显示错误信息\n setTimeout(() => {\n onShowError(err as UniError);\n });\n }\n },\n async onAfter(...inputs) {\n if (options?.showLoading) onHideLoading();\n\n await importOptions?.onAfter?.();\n await options?.onAfter?.(...inputs);\n },\n },\n );\n };\n\n return useCloudMethod;\n}\n\nexport type UseDatabaseOptions<I extends AnyArray, O> = UseRequestOptions<\n I,\n O\n> & {\n /**\n * 模拟数据库,用于单元测试\n */\n // biome-ignore lint/suspicious/noExplicitAny: 单测使用 any\n _mockDatabase?: any;\n};\n\n/**\n * 创建一个用于调用云数据库的hook\n * @param caller 调用云数据库的函数,接收数据库实例和输入参数,返回Promise\n * @param options 配置选项\n * @returns 返回一个请求hook,用于处理云数据库调用\n */\nexport function useDatabase<I extends AnyArray, O>(\n caller: (\n db: UniCloud.Database,\n ...inputs: I\n ) => Promise<ClientDatabaseOutput<O>>,\n options: Omit<UseDatabaseOptions<I, O>, 'placeholder'> & {\n placeholder: () => O;\n },\n): UseRequestOutputFilled<I, O>;\nexport function useDatabase<I extends AnyArray, O>(\n caller: (\n db: UniCloud.Database,\n ...inputs: I\n ) => Promise<ClientDatabaseOutput<O>>,\n options?: UseDatabaseOptions<I, O>,\n): UseRequestOutput<I, O>;\nexport function useDatabase<I extends AnyArray, O>(\n caller: (\n db: UniCloud.Database,\n ...inputs: I\n ) => Promise<ClientDatabaseOutput<O>>,\n options?: UseDatabaseOptions<I, O>,\n): UseRequestOutput<I, O> {\n // 获取数据库实例,优先使用模拟数据库(用于测试),否则使用uniCloud数据库\n const db = options?._mockDatabase || uniCloud.database();\n return useRequest(async (...inputs: I) => {\n const { result } = await caller(db, ...inputs);\n if (!result.errCode) return result;\n throw new Error(result.errMsg || '请求失败');\n }, options);\n}\n\nexport { parseCloudMethodOutput } from './_helpers';\nexport type { UniError } from './_types';\n"],"mappings":";;;;;;;;;AAmJA,SAAgB,kBACd,YACA,eACA;CACA,MAAM,uBACJ,eAAe,wBAAwB;CACzC,MAAM,SACJ,eAAe,eACf,SAAS,aAAa,YAAY,cAAc;CAClD,MAAM,gBACJ,eAAe,wBACR,IAAI,YAAY;EAAE,OAAO;EAAI,MAAM;EAAM,CAAC;CACnD,MAAM,gBACJ,eAAe,wBAAwB,IAAI,aAAa;CAC1D,MAAM,cACJ,eAAe,iBACb,QACA,IAAI,UAAU;EACZ,OAAO,IAAI;EACX,MAAM;EACN,UAAU;EACV,MAAM;EACP,CAAC;;;;;;;;;;CAWN,MAAM,kBAAuC,QAAQ,QAAQ,YAAY;EAEvE,OAAO,WACL,OAAO,GAAG,WAAW;GACnB,MAAM,UAAU,OAAO;GAEvB,OAAO,uBAAuB,MADT,OAAO,SAAS,GAAG,OAAO,EACT,qBAAqB;KAE7D;GACE,GAAG;GACH,MAAM,SAAS,GAAG,QAAQ;IACxB,IAAI,SAAS,aAAa,eAAe;IAEzC,MAAM,eAAe,YAAY;IACjC,MAAM,SAAS,WAAW,GAAG,OAAO;;GAEtC,MAAM,UAAU,MAAM,GAAG,QAAQ;IAC/B,MAAM,eAAe,aAAa;IAClC,MAAM,SAAS,YAAY,MAAM,GAAG,OAAO;;GAE7C,MAAM,QAAQ,KAAK,GAAG,QAAQ;IAC5B,MAAM,eAAe,UAAU,IAAgB;IAC/C,MAAM,SAAS,UAAU,KAAiB,GAAG,OAAO;IAEpD,IAAI,SAAS,WAEX,iBAAiB;KACf,YAAY,IAAgB;MAC5B;;GAGN,MAAM,QAAQ,GAAG,QAAQ;IACvB,IAAI,SAAS,aAAa,eAAe;IAEzC,MAAM,eAAe,WAAW;IAChC,MAAM,SAAS,UAAU,GAAG,OAAO;;GAEtC,CACF;;CAGH,OAAO;;AAoCT,SAAgB,YACd,QAIA,SACwB;CAExB,MAAM,KAAK,SAAS,iBAAiB,SAAS,UAAU;CACxD,OAAO,WAAW,OAAO,GAAG,WAAc;EACxC,MAAM,EAAE,WAAW,MAAM,OAAO,IAAI,GAAG,OAAO;EAC9C,IAAI,CAAC,OAAO,SAAS,OAAO;EAC5B,MAAM,IAAI,MAAM,OAAO,UAAU,OAAO;IACvC,QAAQ"}
|
package/dist/cloud/types.d.ts
CHANGED
|
@@ -168,7 +168,7 @@ export type ExtractCloudMethodInput<T> = T extends CloudMethod<infer I, unknown>
|
|
|
168
168
|
*/
|
|
169
169
|
export type ExtractCloudMethodData<T> = T extends CloudMethod<unknown, infer O> ? O : never;
|
|
170
170
|
/**
|
|
171
|
-
*
|
|
171
|
+
* 提取云对象方法请求签名类型
|
|
172
172
|
* 用于从 UniCloudExpose<I, O> 中提取函数签名 (input: I) => O
|
|
173
173
|
*/
|
|
174
|
-
export type
|
|
174
|
+
export type ExtractCloudMethodRequest<T> = T extends CloudMethod<infer I, infer O> ? (input: I) => Promise<CloudMethodOutput<O>> : never;
|
package/dist/cloud.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require__helpers = require("./_helpers.cjs");
|
|
3
|
-
let _cloudcome_utils_core_type = require("@cloudcome/utils-core/type");
|
|
4
3
|
let _cloudcome_utils_core_error = require("@cloudcome/utils-core/error");
|
|
5
4
|
let _cloudcome_utils_core_object = require("@cloudcome/utils-core/object");
|
|
6
5
|
let _cloudcome_utils_core_try = require("@cloudcome/utils-core/try");
|
|
6
|
+
let _cloudcome_utils_core_type = require("@cloudcome/utils-core/type");
|
|
7
7
|
let _cloudcome_utils_core_version = require("@cloudcome/utils-core/version");
|
|
8
8
|
let _cloudcome_utils_core_qs = require("@cloudcome/utils-core/qs");
|
|
9
9
|
//#region src/cloud/error.ts
|
package/dist/cloud.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as parseCloudMethodOutput } from "./_helpers.mjs";
|
|
2
|
-
import { isFunction } from "@cloudcome/utils-core/type";
|
|
3
2
|
import { errorAssign, errorNormalize } from "@cloudcome/utils-core/error";
|
|
4
3
|
import { objectDefaults, objectOmit } from "@cloudcome/utils-core/object";
|
|
5
4
|
import { tryFlatten } from "@cloudcome/utils-core/try";
|
|
5
|
+
import { isFunction } from "@cloudcome/utils-core/type";
|
|
6
6
|
import { versionCompare } from "@cloudcome/utils-core/version";
|
|
7
7
|
import { qsStringify } from "@cloudcome/utils-core/qs";
|
|
8
8
|
//#region src/cloud/error.ts
|
package/dist/database.cjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
2
2
|
const require__helpers = require("./_helpers.cjs");
|
|
3
3
|
const require_cloud = require("./cloud.cjs");
|
|
4
|
-
let _cloudcome_utils_core_type = require("@cloudcome/utils-core/type");
|
|
5
4
|
let _cloudcome_utils_core_object = require("@cloudcome/utils-core/object");
|
|
6
5
|
let _cloudcome_utils_core_try = require("@cloudcome/utils-core/try");
|
|
6
|
+
let _cloudcome_utils_core_type = require("@cloudcome/utils-core/type");
|
|
7
7
|
//#region src/database/_command.class.ts
|
|
8
8
|
var DbBaseCommand = class {
|
|
9
9
|
_isQuery = false;
|
package/dist/database.mjs
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { n as parseDatabaseOutput } from "./_helpers.mjs";
|
|
2
2
|
import { createCloudObjectError } from "./cloud.mjs";
|
|
3
|
-
import { isFunction, isNumber, isObject, isString } from "@cloudcome/utils-core/type";
|
|
4
3
|
import { objectEach, objectFilter, objectMap, objectOmit } from "@cloudcome/utils-core/object";
|
|
5
4
|
import { tryFlatten } from "@cloudcome/utils-core/try";
|
|
5
|
+
import { isFunction, isNumber, isObject, isString } from "@cloudcome/utils-core/type";
|
|
6
6
|
//#region src/database/_command.class.ts
|
|
7
7
|
var DbBaseCommand = class {
|
|
8
8
|
_isQuery = false;
|
package/dist/index.cjs
CHANGED
package/dist/index.mjs
CHANGED