@cloudcome/utils-uni 1.33.0 → 1.35.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.
Files changed (43) hide show
  1. package/README.md +71 -72
  2. package/dist/_helpers.cjs.map +1 -1
  3. package/dist/_helpers.mjs.map +1 -1
  4. package/dist/{app.d.ts → client/app.d.ts} +13 -0
  5. package/dist/client/async.d.ts +25 -0
  6. package/dist/client/message.d.ts +35 -0
  7. package/dist/client/request.d.ts +128 -0
  8. package/dist/client/ui.d.ts +26 -0
  9. package/dist/client.cjs +376 -1
  10. package/dist/client.cjs.map +1 -1
  11. package/dist/client.d.ts +6 -127
  12. package/dist/client.mjs +363 -2
  13. package/dist/client.mjs.map +1 -1
  14. package/dist/cloud/types.d.ts +2 -2
  15. package/dist/cloud.cjs +1 -1
  16. package/dist/cloud.cjs.map +1 -1
  17. package/dist/cloud.mjs +1 -1
  18. package/dist/cloud.mjs.map +1 -1
  19. package/dist/database/_db.class.d.ts +5 -4
  20. package/dist/database/types.d.ts +1 -1
  21. package/dist/database.cjs +41 -31
  22. package/dist/database.cjs.map +1 -1
  23. package/dist/database.mjs +41 -31
  24. package/dist/database.mjs.map +1 -1
  25. package/dist/index.cjs +1 -1
  26. package/dist/index.mjs +1 -1
  27. package/dist/weixin/notice.d.ts +79 -0
  28. package/dist/weixin/token.d.ts +49 -0
  29. package/dist/weixin.cjs +132 -0
  30. package/dist/weixin.cjs.map +1 -0
  31. package/dist/weixin.d.ts +2 -0
  32. package/dist/weixin.mjs +130 -0
  33. package/dist/weixin.mjs.map +1 -0
  34. package/package.json +14 -22
  35. package/dist/app.cjs +0 -44
  36. package/dist/app.cjs.map +0 -1
  37. package/dist/app.mjs +0 -43
  38. package/dist/app.mjs.map +0 -1
  39. package/dist/page.cjs +0 -108
  40. package/dist/page.cjs.map +0 -1
  41. package/dist/page.mjs +0 -105
  42. package/dist/page.mjs.map +0 -1
  43. /package/dist/{page.d.ts → client/page.d.ts} +0 -0
package/README.md CHANGED
@@ -9,15 +9,15 @@
9
9
 
10
10
  ## 包列表
11
11
 
12
- | 名称 | 版本 | 描述 |
13
- | --- | --- | --- |
14
- | [@cloudcome/utils-core](./packages/utils-core) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-core.svg)](https://npmjs.com/package/@cloudcome/utils-core) | 核心工具库,与运行环境无关的通用工具 |
12
+ | 名称 | 版本 | 描述 |
13
+ | ---------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------- |
14
+ | [@cloudcome/utils-core](./packages/utils-core) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-core.svg)](https://npmjs.com/package/@cloudcome/utils-core) | 核心工具库,与运行环境无关的通用工具 |
15
15
  | [@cloudcome/utils-browser](./packages/utils-browser) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-browser.svg)](https://npmjs.com/package/@cloudcome/utils-browser) | 浏览器端工具(DOM、Canvas、Cookie、剪贴板等) |
16
- | [@cloudcome/utils-node](./packages/utils-node) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-node.svg)](https://npmjs.com/package/@cloudcome/utils-node) | Node.js 端工具(Base64、加密等) |
17
- | [@cloudcome/utils-vue](./packages/utils-vue) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-vue.svg)](https://npmjs.com/package/@cloudcome/utils-vue) | Vue 3 工具库(组合式函数、组件、请求等) |
18
- | [@cloudcome/utils-react](./packages/utils-react) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-react.svg)](https://npmjs.com/package/@cloudcome/utils-react) | React 工具库 |
19
- | [@cloudcome/utils-uni](./packages/utils-uni) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-uni.svg)](https://npmjs.com/package/@cloudcome/utils-uni) | UniApp 工具库(云函数、数据库、页面等) |
20
- | [@cloudcome/docs](./packages/docs) | - | VitePress 文档站点 |
16
+ | [@cloudcome/utils-node](./packages/utils-node) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-node.svg)](https://npmjs.com/package/@cloudcome/utils-node) | Node.js 端工具(Base64、加密、JSONL 等) |
17
+ | [@cloudcome/utils-vue](./packages/utils-vue) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-vue.svg)](https://npmjs.com/package/@cloudcome/utils-vue) | Vue 3 工具库(组合式函数、组件、请求等) |
18
+ | [@cloudcome/utils-react](./packages/utils-react) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-react.svg)](https://npmjs.com/package/@cloudcome/utils-react) | React 工具库 |
19
+ | [@cloudcome/utils-uni](./packages/utils-uni) | [![npm version](https://badge.fury.io/js/@cloudcome%2Futils-uni.svg)](https://npmjs.com/package/@cloudcome/utils-uni) | UniApp 工具库(云函数、数据库、页面等) |
20
+ | [@cloudcome/docs](./packages/docs) | - | VitePress 文档站点 |
21
21
 
22
22
  ## 功能概览
23
23
 
@@ -25,79 +25,80 @@
25
25
 
26
26
  核心工具库,提供以下子模块:
27
27
 
28
- | 子模块 | 导入路径 | 功能 |
29
- | --- | --- | --- |
30
- | array | `@cloudcome/utils-core/array` | 数组操作 |
31
- | async | `@cloudcome/utils-core/async` | 异步工具 |
32
- | base64 | `@cloudcome/utils-core/base64` | Base64 编解码 |
33
- | cache | `@cloudcome/utils-core/cache` | 缓存工具 |
34
- | color | `@cloudcome/utils-core/color` | 颜色转换(RGB/HSL/HSV/HWB/LAB/XYZ)、对比度、亮度、混合 |
35
- | crypto | `@cloudcome/utils-core/crypto` | 加密(MD5、SHA1、SHA256、SHA512) |
36
- | date | `@cloudcome/utils-core/date` | 日期解析、格式化、时区、相对时间、周/天计算 |
37
- | dict | `@cloudcome/utils-core/dict` | 字典/映射工具 |
38
- | easing | `@cloudcome/utils-core/easing` | 缓动函数 |
39
- | emitter | `@cloudcome/utils-core/emitter` | 事件发射器 |
40
- | env | `@cloudcome/utils-core/env` | 环境检测 |
41
- | error | `@cloudcome/utils-core/error` | 错误处理 |
42
- | exception | `@cloudcome/utils-core/exception` | 异常处理 |
43
- | function | `@cloudcome/utils-core/function` | 函数工具 |
44
- | number | `@cloudcome/utils-core/number` | 数字工具 |
45
- | object | `@cloudcome/utils-core/object` | 对象遍历、深层 get/set、合并、类型判断 |
46
- | path | `@cloudcome/utils-core/path` | 路径工具 |
47
- | promise | `@cloudcome/utils-core/promise` | Promise 工具 |
48
- | qs | `@cloudcome/utils-core/qs` | 查询字符串解析与序列化 |
49
- | regexp | `@cloudcome/utils-core/regexp` | 正则表达式工具 |
50
- | string | `@cloudcome/utils-core/string` | 字符串工具 |
51
- | time | `@cloudcome/utils-core/time` | 时间单位转换 |
52
- | timer | `@cloudcome/utils-core/timer` | 定时器工具 |
53
- | tree | `@cloudcome/utils-core/tree` | 树结构操作 |
54
- | try | `@cloudcome/utils-core/try` | 安全调用(try-catch 包装,支持同步/异步/柯里化) |
55
- | type | `@cloudcome/utils-core/type` | 类型判断 |
56
- | types | `@cloudcome/utils-core/types` | 公共类型定义 |
57
- | unique | `@cloudcome/utils-core/unique` | 唯一 ID 生成 |
58
- | url | `@cloudcome/utils-core/url` | URL 解析与构建 |
59
- | version | `@cloudcome/utils-core/version` | 版本号比较 |
28
+ | 子模块 | 导入路径 | 功能 |
29
+ | --------- | --------------------------------- | ------------------------------------------------------- |
30
+ | array | `@cloudcome/utils-core/array` | 数组操作 |
31
+ | async | `@cloudcome/utils-core/async` | 异步工具 |
32
+ | base64 | `@cloudcome/utils-core/base64` | Base64 编解码 |
33
+ | cache | `@cloudcome/utils-core/cache` | 缓存工具 |
34
+ | color | `@cloudcome/utils-core/color` | 颜色转换(RGB/HSL/HSV/HWB/LAB/XYZ)、对比度、亮度、混合 |
35
+ | crypto | `@cloudcome/utils-core/crypto` | 加密(MD5、SHA1、SHA256、SHA512) |
36
+ | date | `@cloudcome/utils-core/date` | 日期解析、格式化、时区、相对时间、周/天计算 |
37
+ | dict | `@cloudcome/utils-core/dict` | 字典/映射工具 |
38
+ | easing | `@cloudcome/utils-core/easing` | 缓动函数 |
39
+ | emitter | `@cloudcome/utils-core/emitter` | 事件发射器 |
40
+ | env | `@cloudcome/utils-core/env` | 环境检测 |
41
+ | error | `@cloudcome/utils-core/error` | 错误处理 |
42
+ | exception | `@cloudcome/utils-core/exception` | 异常处理 |
43
+ | function | `@cloudcome/utils-core/function` | 函数工具 |
44
+ | number | `@cloudcome/utils-core/number` | 数字工具 |
45
+ | object | `@cloudcome/utils-core/object` | 对象遍历、深层 get/set、合并、类型判断 |
46
+ | path | `@cloudcome/utils-core/path` | 路径工具 |
47
+ | promise | `@cloudcome/utils-core/promise` | Promise 工具 |
48
+ | qs | `@cloudcome/utils-core/qs` | 查询字符串解析与序列化 |
49
+ | regexp | `@cloudcome/utils-core/regexp` | 正则表达式工具 |
50
+ | string | `@cloudcome/utils-core/string` | 字符串工具 |
51
+ | time | `@cloudcome/utils-core/time` | 时间单位转换 |
52
+ | timer | `@cloudcome/utils-core/timer` | 定时器工具 |
53
+ | tree | `@cloudcome/utils-core/tree` | 树结构操作 |
54
+ | try | `@cloudcome/utils-core/try` | 安全调用(try-catch 包装,支持同步/异步/柯里化) |
55
+ | type | `@cloudcome/utils-core/type` | 类型判断 |
56
+ | types | `@cloudcome/utils-core/types` | 公共类型定义 |
57
+ | unique | `@cloudcome/utils-core/unique` | 唯一 ID 生成 |
58
+ | url | `@cloudcome/utils-core/url` | URL 解析与构建 |
59
+ | version | `@cloudcome/utils-core/version` | 版本号比较 |
60
60
 
61
61
  ### @cloudcome/utils-browser
62
62
 
63
63
  浏览器端工具库,依赖 `@cloudcome/utils-core`:
64
64
 
65
- | 子模块 | 导入路径 | 功能 |
66
- | --- | --- | --- |
67
- | base64 | `@cloudcome/utils-browser/base64` | 浏览器端 Base64 编解码 |
68
- | cache | `@cloudcome/utils-browser/cache` | 浏览器缓存(localStorage/sessionStorage) |
69
- | canvas | `@cloudcome/utils-browser/canvas` | Canvas 操作 |
70
- | clipboard | `@cloudcome/utils-browser/clipboard` | 剪贴板读写 |
71
- | cookie | `@cloudcome/utils-browser/cookie` | Cookie 读写 |
72
- | dom | `@cloudcome/utils-browser/dom` | DOM 操作 |
73
- | download | `@cloudcome/utils-browser/download` | 文件下载 |
74
- | image | `@cloudcome/utils-browser/image` | 图片处理 |
75
- | timer | `@cloudcome/utils-browser/timer` | 浏览器端定时器 |
76
- | video | `@cloudcome/utils-browser/video` | 视频处理 |
65
+ | 子模块 | 导入路径 | 功能 |
66
+ | --------- | ------------------------------------ | ----------------------------------------- |
67
+ | base64 | `@cloudcome/utils-browser/base64` | 浏览器端 Base64 编解码 |
68
+ | cache | `@cloudcome/utils-browser/cache` | 浏览器缓存(localStorage/sessionStorage) |
69
+ | canvas | `@cloudcome/utils-browser/canvas` | Canvas 操作 |
70
+ | clipboard | `@cloudcome/utils-browser/clipboard` | 剪贴板读写 |
71
+ | cookie | `@cloudcome/utils-browser/cookie` | Cookie 读写 |
72
+ | dom | `@cloudcome/utils-browser/dom` | DOM 操作 |
73
+ | download | `@cloudcome/utils-browser/download` | 文件下载 |
74
+ | image | `@cloudcome/utils-browser/image` | 图片处理 |
75
+ | timer | `@cloudcome/utils-browser/timer` | 浏览器端定时器 |
76
+ | video | `@cloudcome/utils-browser/video` | 视频处理 |
77
77
 
78
78
  ### @cloudcome/utils-node
79
79
 
80
80
  Node.js 端工具库:
81
81
 
82
- | 子模块 | 导入路径 | 功能 |
83
- | --- | --- | --- |
82
+ | 子模块 | 导入路径 | 功能 |
83
+ | ------ | ------------------------------ | ------------------------ |
84
84
  | base64 | `@cloudcome/utils-node/base64` | Node.js 端 Base64 编解码 |
85
- | crypto | `@cloudcome/utils-node/crypto` | Node.js 端加密工具 |
85
+ | crypto | `@cloudcome/utils-node/crypto` | Node.js 端加密工具 |
86
+ | jsonl | `@cloudcome/utils-node/jsonl` | JSONL 文件读写 |
86
87
 
87
88
  ### @cloudcome/utils-vue
88
89
 
89
90
  Vue 3 工具库,依赖 `@cloudcome/utils-core` 和 `vue`:
90
91
 
91
- | 子模块 | 导入路径 | 功能 |
92
- | --- | --- | --- |
93
- | async | `@cloudcome/utils-vue/async` | Vue 异步组合式函数 |
94
- | component | `@cloudcome/utils-vue/component` | 组件工具(生命周期等) |
95
- | event | `@cloudcome/utils-vue/event` | 事件工具 |
96
- | request | `@cloudcome/utils-vue/request` | 请求组合式函数(useRequest) |
97
- | shared | `@cloudcome/utils-vue/shared` | 共享工具 |
98
- | state | `@cloudcome/utils-vue/state` | 状态管理工具 |
99
- | time | `@cloudcome/utils-vue/time` | 时间相关组合式函数 |
100
- | types | `@cloudcome/utils-vue/types` | 类型定义 |
92
+ | 子模块 | 导入路径 | 功能 |
93
+ | --------- | -------------------------------- | ---------------------------- |
94
+ | async | `@cloudcome/utils-vue/async` | Vue 异步组合式函数 |
95
+ | component | `@cloudcome/utils-vue/component` | 组件工具(生命周期等) |
96
+ | event | `@cloudcome/utils-vue/event` | 事件工具 |
97
+ | request | `@cloudcome/utils-vue/request` | 请求组合式函数(useRequest) |
98
+ | shared | `@cloudcome/utils-vue/shared` | 共享工具 |
99
+ | state | `@cloudcome/utils-vue/state` | 状态管理工具 |
100
+ | time | `@cloudcome/utils-vue/time` | 时间相关组合式函数 |
101
+ | types | `@cloudcome/utils-vue/types` | 类型定义 |
101
102
 
102
103
  ### @cloudcome/utils-react
103
104
 
@@ -107,13 +108,11 @@ React 工具库。
107
108
 
108
109
  UniApp 工具库,依赖 `@cloudcome/utils-core`、`@cloudcome/utils-vue`:
109
110
 
110
- | 子模块 | 导入路径 | 功能 |
111
- | --- | --- | --- |
112
- | app | `@cloudcome/utils-uni/app` | App 相关工具 |
113
- | client | `@cloudcome/utils-uni/client` | 客户端工具 |
114
- | cloud | `@cloudcome/utils-uni/cloud` | 云函数工具(调用、错误处理、uni-id 等) |
115
- | database | `@cloudcome/utils-uni/database` | 数据库操作(CRUD、事务、分页、upsert 等) |
116
- | page | `@cloudcome/utils-uni/page` | 页面相关工具 |
111
+ | 子模块 | 导入路径 | 功能 |
112
+ | -------- | ------------------------------- | ---------------------------------------------------- |
113
+ | client | `@cloudcome/utils-uni/client` | 客户端工具(App/页面生命周期、消息提示、异步工具等) |
114
+ | cloud | `@cloudcome/utils-uni/cloud` | 云函数工具(调用、错误处理、uni-id 等) |
115
+ | database | `@cloudcome/utils-uni/database` | 数据库操作(CRUD、事务、分页、upsert 等) |
117
116
 
118
117
  ## 开发
119
118
 
@@ -1 +1 @@
1
- {"version":3,"file":"_helpers.cjs","names":[],"sources":["../src/_helpers.ts"],"sourcesContent":["import { errorAssign } from '@cloudcome/utils-core/error';\nimport { objectOmit } from '@cloudcome/utils-core/object';\nimport type { CloudMethodOutput } from './cloud';\nimport type { ClientDatabaseOutput, CloudDatabaseOutput } from './database';\n\n/**\n * 解析云对象方法调用的输出结果\n *\n * @template O - 云对象方法返回数据的类型\n * @param output - 云对象方法调用的输出结果\n * @param fallbackErrorMessage - 当输出中没有错误信息时使用的默认错误消息\n * @returns 云对象方法返回成功时的数据部分\n * @throws 当云对象方法调用失败时,抛出包含错误信息的异常\n */\nexport function parseCloudMethodOutput<O>(\n output: CloudMethodOutput<O>,\n fallbackErrorMessage = '',\n): O {\n if (output.errCode) {\n throw errorAssign(new Error(output.errMsg || fallbackErrorMessage), output);\n }\n\n return output.data;\n}\n\n/**\n * 解析数据库执行结果\n * @param res 客户端、云端响应结果\n * @returns 处理后的结果\n */\nexport function parseDatabaseOutput<T>(\n res: ClientDatabaseOutput<T> | CloudDatabaseOutput<T>,\n) {\n const keys = Object.keys(res as AnyObject);\n // 客户端 { result: {errCode: 0, errMsg: 'ok'} & 数据 }\n const isClient = keys.length === 1 && keys[0] === 'result';\n\n if (isClient) {\n const { result } = res as ClientDatabaseOutput<T>;\n if (!result.errCode) return objectOmit(result, ['errCode', 'errMsg']);\n throw errorAssign(new Error(result.errMsg), result);\n }\n\n // 云端 数据\n return res as T;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgB,uBACd,QACA,uBAAuB,IACpB;CACH,IAAI,OAAO,SACT,OAAA,GAAA,4BAAA,aAAkB,IAAI,MAAM,OAAO,UAAU,qBAAqB,EAAE,OAAO;CAG7E,OAAO,OAAO;;;;;;;AAQhB,SAAgB,oBACd,KACA;CACA,MAAM,OAAO,OAAO,KAAK,IAAiB;CAI1C,IAFiB,KAAK,WAAW,KAAK,KAAK,OAAO,UAEpC;EACZ,MAAM,EAAE,WAAW;EACnB,IAAI,CAAC,OAAO,SAAS,QAAA,GAAA,6BAAA,YAAkB,QAAQ,CAAC,WAAW,SAAS,CAAC;EACrE,OAAA,GAAA,4BAAA,aAAkB,IAAI,MAAM,OAAO,OAAO,EAAE,OAAO;;CAIrD,OAAO"}
1
+ {"version":3,"file":"_helpers.cjs","names":[],"sources":["../src/_helpers.ts"],"sourcesContent":["import { errorAssign } from '@cloudcome/utils-core/error';\nimport { objectOmit } from '@cloudcome/utils-core/object';\nimport type { CloudMethodOutput } from './cloud';\nimport type { ClientDatabaseOutput, CloudDatabaseOutput } from './database';\n\n/**\n * 解析云对象方法调用的输出结果\n *\n * @template O - 云对象方法返回数据的类型\n * @param output - 云对象方法调用的输出结果\n * @param fallbackErrorMessage - 当输出中没有错误信息时使用的默认错误消息\n * @returns 云对象方法返回成功时的数据部分\n * @throws 当云对象方法调用失败时,抛出包含错误信息的异常\n */\nexport function parseCloudMethodOutput<O>(output: CloudMethodOutput<O>, fallbackErrorMessage = ''): O {\n if (output.errCode) {\n throw errorAssign(new Error(output.errMsg || fallbackErrorMessage), output);\n }\n\n return output.data;\n}\n\n/**\n * 解析数据库执行结果\n * @param res 客户端、云端响应结果\n * @returns 处理后的结果\n */\nexport function parseDatabaseOutput<T>(res: ClientDatabaseOutput<T> | CloudDatabaseOutput<T>) {\n const keys = Object.keys(res as AnyObject);\n // 客户端 { result: {errCode: 0, errMsg: 'ok'} & 数据 }\n const isClient = keys.length === 1 && keys[0] === 'result';\n\n if (isClient) {\n const { result } = res as ClientDatabaseOutput<T>;\n if (!result.errCode) return objectOmit(result, ['errCode', 'errMsg']);\n throw errorAssign(new Error(result.errMsg), result);\n }\n\n // 云端 数据\n return res as T;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgB,uBAA0B,QAA8B,uBAAuB,IAAO;CACpG,IAAI,OAAO,SACT,OAAA,GAAA,4BAAA,aAAkB,IAAI,MAAM,OAAO,UAAU,qBAAqB,EAAE,OAAO;CAG7E,OAAO,OAAO;;;;;;;AAQhB,SAAgB,oBAAuB,KAAuD;CAC5F,MAAM,OAAO,OAAO,KAAK,IAAiB;CAI1C,IAFiB,KAAK,WAAW,KAAK,KAAK,OAAO,UAEpC;EACZ,MAAM,EAAE,WAAW;EACnB,IAAI,CAAC,OAAO,SAAS,QAAA,GAAA,6BAAA,YAAkB,QAAQ,CAAC,WAAW,SAAS,CAAC;EACrE,OAAA,GAAA,4BAAA,aAAkB,IAAI,MAAM,OAAO,OAAO,EAAE,OAAO;;CAIrD,OAAO"}
@@ -1 +1 @@
1
- {"version":3,"file":"_helpers.mjs","names":[],"sources":["../src/_helpers.ts"],"sourcesContent":["import { errorAssign } from '@cloudcome/utils-core/error';\nimport { objectOmit } from '@cloudcome/utils-core/object';\nimport type { CloudMethodOutput } from './cloud';\nimport type { ClientDatabaseOutput, CloudDatabaseOutput } from './database';\n\n/**\n * 解析云对象方法调用的输出结果\n *\n * @template O - 云对象方法返回数据的类型\n * @param output - 云对象方法调用的输出结果\n * @param fallbackErrorMessage - 当输出中没有错误信息时使用的默认错误消息\n * @returns 云对象方法返回成功时的数据部分\n * @throws 当云对象方法调用失败时,抛出包含错误信息的异常\n */\nexport function parseCloudMethodOutput<O>(\n output: CloudMethodOutput<O>,\n fallbackErrorMessage = '',\n): O {\n if (output.errCode) {\n throw errorAssign(new Error(output.errMsg || fallbackErrorMessage), output);\n }\n\n return output.data;\n}\n\n/**\n * 解析数据库执行结果\n * @param res 客户端、云端响应结果\n * @returns 处理后的结果\n */\nexport function parseDatabaseOutput<T>(\n res: ClientDatabaseOutput<T> | CloudDatabaseOutput<T>,\n) {\n const keys = Object.keys(res as AnyObject);\n // 客户端 { result: {errCode: 0, errMsg: 'ok'} & 数据 }\n const isClient = keys.length === 1 && keys[0] === 'result';\n\n if (isClient) {\n const { result } = res as ClientDatabaseOutput<T>;\n if (!result.errCode) return objectOmit(result, ['errCode', 'errMsg']);\n throw errorAssign(new Error(result.errMsg), result);\n }\n\n // 云端 数据\n return res as T;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgB,uBACd,QACA,uBAAuB,IACpB;CACH,IAAI,OAAO,SACT,MAAM,YAAY,IAAI,MAAM,OAAO,UAAU,qBAAqB,EAAE,OAAO;CAG7E,OAAO,OAAO;;;;;;;AAQhB,SAAgB,oBACd,KACA;CACA,MAAM,OAAO,OAAO,KAAK,IAAiB;CAI1C,IAFiB,KAAK,WAAW,KAAK,KAAK,OAAO,UAEpC;EACZ,MAAM,EAAE,WAAW;EACnB,IAAI,CAAC,OAAO,SAAS,OAAO,WAAW,QAAQ,CAAC,WAAW,SAAS,CAAC;EACrE,MAAM,YAAY,IAAI,MAAM,OAAO,OAAO,EAAE,OAAO;;CAIrD,OAAO"}
1
+ {"version":3,"file":"_helpers.mjs","names":[],"sources":["../src/_helpers.ts"],"sourcesContent":["import { errorAssign } from '@cloudcome/utils-core/error';\nimport { objectOmit } from '@cloudcome/utils-core/object';\nimport type { CloudMethodOutput } from './cloud';\nimport type { ClientDatabaseOutput, CloudDatabaseOutput } from './database';\n\n/**\n * 解析云对象方法调用的输出结果\n *\n * @template O - 云对象方法返回数据的类型\n * @param output - 云对象方法调用的输出结果\n * @param fallbackErrorMessage - 当输出中没有错误信息时使用的默认错误消息\n * @returns 云对象方法返回成功时的数据部分\n * @throws 当云对象方法调用失败时,抛出包含错误信息的异常\n */\nexport function parseCloudMethodOutput<O>(output: CloudMethodOutput<O>, fallbackErrorMessage = ''): O {\n if (output.errCode) {\n throw errorAssign(new Error(output.errMsg || fallbackErrorMessage), output);\n }\n\n return output.data;\n}\n\n/**\n * 解析数据库执行结果\n * @param res 客户端、云端响应结果\n * @returns 处理后的结果\n */\nexport function parseDatabaseOutput<T>(res: ClientDatabaseOutput<T> | CloudDatabaseOutput<T>) {\n const keys = Object.keys(res as AnyObject);\n // 客户端 { result: {errCode: 0, errMsg: 'ok'} & 数据 }\n const isClient = keys.length === 1 && keys[0] === 'result';\n\n if (isClient) {\n const { result } = res as ClientDatabaseOutput<T>;\n if (!result.errCode) return objectOmit(result, ['errCode', 'errMsg']);\n throw errorAssign(new Error(result.errMsg), result);\n }\n\n // 云端 数据\n return res as T;\n}\n"],"mappings":";;;;;;;;;;;;AAcA,SAAgB,uBAA0B,QAA8B,uBAAuB,IAAO;CACpG,IAAI,OAAO,SACT,MAAM,YAAY,IAAI,MAAM,OAAO,UAAU,qBAAqB,EAAE,OAAO;CAG7E,OAAO,OAAO;;;;;;;AAQhB,SAAgB,oBAAuB,KAAuD;CAC5F,MAAM,OAAO,OAAO,KAAK,IAAiB;CAI1C,IAFiB,KAAK,WAAW,KAAK,KAAK,OAAO,UAEpC;EACZ,MAAM,EAAE,WAAW;EACnB,IAAI,CAAC,OAAO,SAAS,OAAO,WAAW,QAAQ,CAAC,WAAW,SAAS,CAAC;EACrE,MAAM,YAAY,IAAI,MAAM,OAAO,OAAO,EAAE,OAAO;;CAIrD,OAAO"}
@@ -33,3 +33,16 @@ import { HookListenerWithDispose } from '@cloudcome/utils-vue/component';
33
33
  * });
34
34
  */
35
35
  export declare function useAppShow(appShow: HookListenerWithDispose): void;
36
+ /**
37
+ * 订阅模板消息
38
+ * @param templateId 模板消息 ID 或 ID 列表
39
+ * @returns Promise<boolean>
40
+ */
41
+ export declare function uniSubscribeNotice(templateId: string | string[]): Promise<boolean>;
42
+ /**
43
+ * 监听应用更新状态
44
+ */
45
+ export declare function useAppUpdate(): {
46
+ hasUpdate: import('vue').Ref<boolean, boolean>;
47
+ updateReady: import('vue').Ref<boolean, boolean>;
48
+ };
@@ -0,0 +1,25 @@
1
+ export type UniFailErr = UniNamespace.GeneralCallbackResult & {
2
+ errCode?: number;
3
+ errno?: number;
4
+ };
5
+ export type UniPromiseError = Error & {
6
+ errCode: number;
7
+ errNo: number;
8
+ };
9
+ /**
10
+ * 包装 uni 异步函数,返回 Promise 并处理错误
11
+ * @param promise uni 异步函数的 Promise
12
+ * @returns Promise<T>
13
+ * @throws UniPromiseError
14
+ */
15
+ export declare function uniPromise<T>(promise: Promise<T>): Promise<T>;
16
+ /**
17
+ * 包装 uni 异步函数,返回 Promise 并处理错误
18
+ * @param runner uni 异步函数的回调
19
+ * @returns Promise<T>
20
+ * @throws UniPromiseError
21
+ */
22
+ export declare function uniCallback<T>(runner: (options: {
23
+ success: (res: T) => void;
24
+ fail: (err: UniFailErr) => void;
25
+ }) => unknown): Promise<T>;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * 显示 confirm 提示
3
+ * @param text 提示文本
4
+ * @param options 其他选项
5
+ * @returns 提示完成后的 Promise
6
+ */
7
+ export declare function uniConfirm(text: string, options?: Omit<UniNamespace.ShowModalOptions, 'showCancel' | 'success' | 'content' | 'editable'>): Promise<boolean>;
8
+ /**
9
+ * 显示 prompt 提示
10
+ * @param text 提示文本
11
+ * @param options 其他选项
12
+ * @returns 提示完成后的 Promise
13
+ */
14
+ export declare function uniPrompt(text: string, options?: Omit<UniNamespace.ShowModalOptions, 'showCancel' | 'success' | 'content' | 'editable'>): Promise<string>;
15
+ /**
16
+ * 显示 alert 提示
17
+ * @param text 提示文本
18
+ * @param options 其他选项
19
+ * @returns 提示完成后的 Promise
20
+ */
21
+ export declare function uniAlert(text: string, options?: Omit<UniNamespace.ShowModalOptions, 'cancelText' | 'showCancel' | 'success' | 'content'>): Promise<void>;
22
+ /**
23
+ * 显示 toast 提示
24
+ * @param text 提示文本
25
+ * @param icon 图标
26
+ * @param options 其他选项
27
+ * @returns 提示完成后的 Promise
28
+ */
29
+ export declare function uniToast(text: string, icon?: UniNamespace.ShowToastOptions['icon']): Promise<void>;
30
+ export declare function uniToast(text: string, options?: UniNamespace.ShowToastOptions): Promise<void>;
31
+ /**
32
+ * 显示 loading 提示
33
+ * @param title 提示文本
34
+ */
35
+ export declare function uniLoading(title?: string): void;
@@ -0,0 +1,128 @@
1
+ import { AnyArray, AnyFunction } from '@cloudcome/utils-core/types';
2
+ import { UseRequestOptions, UseRequestOutput, UseRequestOutputFilled } from '@cloudcome/utils-vue/request';
3
+ import { CloudMethodOutput, UniError } from '../cloud';
4
+ import { ClientDatabaseOutput } from '../database';
5
+ type _ImportObject = UniCloudNamespace.UniCloud['importObject'];
6
+ type _ImportObjectArgs = Parameters<_ImportObject>;
7
+ type _ImportObjectOptions = _ImportObjectArgs[1];
8
+ export type CreateUseCloudObjectOptions = _ImportObjectOptions & {
9
+ /**
10
+ * 模拟云对象,用于单元测试
11
+ * @private
12
+ */
13
+ _mockServer?: any;
14
+ /**
15
+ * 回退错误信息
16
+ * @default '请求失败'
17
+ */
18
+ fallbackErrorMessage?: string;
19
+ /**
20
+ * 请求开始前的回调函数
21
+ */
22
+ onBefore?: () => unknown;
23
+ /**
24
+ * 请求成功后的回调函数
25
+ */
26
+ onSuccess?: () => unknown;
27
+ /**
28
+ * 请求失败时的回调函数
29
+ * @param err 错误信息
30
+ */
31
+ onError?: (err: UniError) => unknown;
32
+ /**
33
+ * 请求完成后的回调函数(无论成功或失败都会执行)
34
+ */
35
+ onAfter?: () => unknown;
36
+ /**
37
+ * 显示加载状态的回调函数,当配置了 showLoading 为 true 时会调用
38
+ */
39
+ onShowLoading?: () => unknown;
40
+ /**
41
+ * 隐藏加载状态的回调函数,当配置了 showLoading 为 true 时会调用
42
+ */
43
+ onHideLoading?: () => unknown;
44
+ /**
45
+ * 显示错误信息的回调函数,当配置了 showError 为 true 时会调用
46
+ * @param err 错误信息
47
+ */
48
+ onShowError?: (err: UniError) => unknown;
49
+ };
50
+ /**
51
+ * 云对象请求函数类型定义
52
+ * @template F 云对象方法函数类型
53
+ * @param input 云对象方法的参数数组
54
+ * @returns 返回云对象方法执行结果的Promise
55
+ */
56
+ export type CloudObjectRequest = <F extends AnyFunction>(...input: Parameters<F>) => Promise<CloudMethodOutput<ReturnType<F>>>;
57
+ /**
58
+ * 用于调用云对象方法的配置选项类型定义
59
+ * @template I 输入参数类型数组
60
+ * @template O 输出结果类型
61
+ */
62
+ export type UseCloudMethodOptions<I extends AnyArray, O> = Omit<UseRequestOptions<I, O>, 'onError'> & {
63
+ /**
64
+ * 请求发生错误时的回调函数
65
+ * @param err 错误信息
66
+ * @param inputs 请求输入参数
67
+ */
68
+ onError?: (err: UniError, ...inputs: I) => unknown;
69
+ /**
70
+ * 是否显示加载状态
71
+ * @default false
72
+ */
73
+ showLoading?: boolean;
74
+ /**
75
+ * 是否显示错误信息
76
+ * @default false
77
+ */
78
+ showError?: boolean;
79
+ };
80
+ /**
81
+ * 用于调用云对象方法的hook函数类型定义
82
+ * @template I 输入参数类型数组
83
+ * @template O 输出结果类型
84
+ */
85
+ export type UseCloudMethod<Api extends Record<string, AnyFunction>> = {
86
+ /**
87
+ * 重载签名:当提供 placeholder 选项时,返回包含初始值的输出类型
88
+ * @param method 云对象方法名
89
+ * @param caller 调用云对象方法的函数
90
+ * @param options 包含 placeholder 的请求配置选项
91
+ * @returns 返回包含初始值的请求输出
92
+ */
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
+ placeholder: () => O;
95
+ }): UseRequestOutputFilled<I, O>;
96
+ /**
97
+ * 重载签名:当不提供 placeholder 选项时,返回普通输出类型
98
+ * @param method 云对象方法名
99
+ * @param caller 调用云对象方法的函数
100
+ * @param options 可选的请求配置选项
101
+ * @returns 返回普通的请求输出
102
+ */
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
+ };
105
+ /**
106
+ * 导入云对象并创建一个用于调用云对象的hook
107
+ * @param objectName 云对象名称
108
+ * @param importOptions 配置选项,包含模拟服务器、回退错误信息等
109
+ * @returns 返回一个可用于调用云对象方法的hook函数
110
+ */
111
+ export declare function importCloudObject<Api extends Record<string, AnyFunction>>(objectName: _ImportObjectArgs[0], importOptions?: CreateUseCloudObjectOptions): UseCloudMethod<Api>;
112
+ export type UseDatabaseOptions<I extends AnyArray, O> = UseRequestOptions<I, O> & {
113
+ /**
114
+ * 模拟数据库,用于单元测试
115
+ */
116
+ _mockDatabase?: any;
117
+ };
118
+ /**
119
+ * 创建一个用于调用云数据库的hook
120
+ * @param caller 调用云数据库的函数,接收数据库实例和输入参数,返回Promise
121
+ * @param options 配置选项
122
+ * @returns 返回一个请求hook,用于处理云数据库调用
123
+ */
124
+ export declare function useDatabase<I extends AnyArray, O>(caller: (db: UniCloud.Database, ...inputs: I) => Promise<ClientDatabaseOutput<O>>, options: Omit<UseDatabaseOptions<I, O>, 'placeholder'> & {
125
+ placeholder: () => O;
126
+ }): UseRequestOutputFilled<I, O>;
127
+ export declare function useDatabase<I extends AnyArray, O>(caller: (db: UniCloud.Database, ...inputs: I) => Promise<ClientDatabaseOutput<O>>, options?: UseDatabaseOptions<I, O>): UseRequestOutput<I, O>;
128
+ export {};
@@ -0,0 +1,26 @@
1
+ import { ComponentInternalInstance } from 'vue';
2
+ export type Rect = {
3
+ /**
4
+ * 元素距离屏幕的左坐标,单位:px
5
+ */
6
+ left: number;
7
+ /**
8
+ * 元素距离屏幕的上坐标,单位:px
9
+ */
10
+ top: number;
11
+ /**
12
+ * 元素距离屏幕的宽度,单位:px
13
+ */
14
+ width: number;
15
+ /**
16
+ * 元素距离屏幕的高度,单位:px
17
+ */
18
+ height: number;
19
+ };
20
+ /**
21
+ * 查询元素距离屏幕的矩形信息
22
+ * @param instance 组件实例
23
+ * @param selector 选择器
24
+ * @returns 元素距离屏幕的矩形信息
25
+ */
26
+ export declare function querySelectorRects(instance: ComponentInternalInstance, selector: string): Promise<Rect[]>;