@cloudbase/wx-cloud-client-sdk 1.0.0-alpha.1 → 1.0.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/lib/api/datasouce-caller.d.ts +1 -1
- package/lib/error.d.ts +10 -0
- package/lib/index.d.ts +2 -2
- package/lib/orm/orm-client.d.ts +1 -1
- package/lib/types/index.d.ts +567 -86
- package/lib/utils.d.ts +10 -0
- package/lib/{wxCloudCLientSDK.cjs.js → wxCloudClientSDK.cjs.js} +132 -72
- package/lib/{wxCloudCLientSDK.esm.js → wxCloudClientSDK.esm.js} +132 -72
- package/lib/{wxCloudCLientSDK.umd.js → wxCloudClientSDK.umd.js} +132 -72
- package/package.json +12 -7
package/lib/types/index.d.ts
CHANGED
|
@@ -1,130 +1,611 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
export
|
|
5
|
-
data: T;
|
|
6
|
-
error?: null | {
|
|
7
|
-
code: string;
|
|
8
|
-
message: string;
|
|
9
|
-
requestId: string;
|
|
10
|
-
};
|
|
11
|
-
};
|
|
12
|
-
export declare type CloudBaseInstance = {
|
|
13
|
-
callFunction: CallFunction;
|
|
14
|
-
auth: any;
|
|
15
|
-
};
|
|
16
|
-
export interface ExtendedCloudBaseInstance extends CloudBaseInstance {
|
|
17
|
-
models: OrmClient;
|
|
18
|
-
}
|
|
19
|
-
export declare type CallFunction = (args: {
|
|
20
|
-
name: string;
|
|
21
|
-
data: {
|
|
22
|
-
dataSourceName: string;
|
|
23
|
-
methodName: string;
|
|
24
|
-
params: Record<string, any>;
|
|
25
|
-
};
|
|
26
|
-
}) => Promise<any>;
|
|
27
|
-
export interface CallDataSourceParams {
|
|
28
|
-
dataSourceName: string;
|
|
29
|
-
methodName: string;
|
|
30
|
-
params: Record<string, any>;
|
|
31
|
-
realMethodName: string;
|
|
32
|
-
callFunction: CallFunction;
|
|
33
|
-
}
|
|
34
|
-
export declare type CreateResponse<T> = {
|
|
35
|
-
id: string;
|
|
36
|
-
};
|
|
37
|
-
export declare type CreateManyResponse<T> = {
|
|
38
|
-
idList: string[];
|
|
39
|
-
};
|
|
40
|
-
export declare type UpdateResponse<T> = {
|
|
41
|
-
count: number;
|
|
42
|
-
};
|
|
43
|
-
export declare type DeleteResponse<T> = UpdateResponse<T>;
|
|
44
|
-
export declare type GetResponse<T> = MethodResponse<T>;
|
|
45
|
-
export declare type ListResponse<T> = MethodResponse<{
|
|
46
|
-
records: T[];
|
|
47
|
-
total?: number;
|
|
48
|
-
}>;
|
|
49
|
-
export declare type OrderByParams = {
|
|
50
|
-
[key: string]: 'asc' | 'desc';
|
|
51
|
-
};
|
|
52
|
-
export declare type SelectParams<T> = {
|
|
53
|
-
[key in keyof T]?: boolean;
|
|
54
|
-
};
|
|
55
|
-
export declare type BasicComparisonOperator = '$eq' | '$neq' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin';
|
|
56
|
-
export declare type SpecialComparisonOperator = '$search' | '$nsearch' | '$empty' | '$nempty' | '$eq-current-user' | '$ne-current-user';
|
|
57
|
-
export declare type ComparisonOperator = BasicComparisonOperator | SpecialComparisonOperator;
|
|
58
|
-
export declare type FilterCondition = {
|
|
59
|
-
[key in ComparisonOperator]?: any;
|
|
60
|
-
};
|
|
61
|
-
export declare type FilterConditionItem<T> = {
|
|
62
|
-
[key in keyof T]?: FilterCondition;
|
|
63
|
-
};
|
|
64
|
-
export declare type LogicalOperator = '$and' | '$or';
|
|
65
|
-
export declare type FilterObject<T> = {
|
|
66
|
-
[operator in LogicalOperator]?: FilterConditionItem<T>[] | FilterObject<T>;
|
|
67
|
-
};
|
|
68
|
-
export declare type FilterParams<T> = {
|
|
69
|
-
where?: FilterObject<T>;
|
|
70
|
-
};
|
|
71
|
-
export declare type ListParams<T> = {
|
|
72
|
-
filter?: FilterParams<T>;
|
|
73
|
-
select?: SelectParams<T>;
|
|
74
|
-
getCount?: boolean;
|
|
75
|
-
pageSize?: number;
|
|
76
|
-
pageNumber?: number;
|
|
77
|
-
orderBy?: OrderByParams[];
|
|
78
|
-
relateWhere?: any;
|
|
79
|
-
};
|
|
80
|
-
export declare type Relation = string;
|
|
81
|
-
export interface Fields {
|
|
1
|
+
/**
|
|
2
|
+
* 基础 Model 类型定义
|
|
3
|
+
*/
|
|
4
|
+
export interface Model {
|
|
82
5
|
_id?: string;
|
|
83
|
-
createdAt?:
|
|
84
|
-
updatedAt?:
|
|
6
|
+
createdAt?: number;
|
|
7
|
+
updatedAt?: number;
|
|
85
8
|
owner?: Relation;
|
|
86
9
|
createBy?: Relation;
|
|
87
10
|
updateBy?: Relation;
|
|
88
|
-
_departmentList?: Relation[];
|
|
89
11
|
_openid?: string;
|
|
90
12
|
}
|
|
13
|
+
/**
|
|
14
|
+
* 模型方法的定义
|
|
15
|
+
* =====================================================================
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* 模型操作方法的返回类型定义。
|
|
19
|
+
* @template T 返回数据的类型。
|
|
20
|
+
*/
|
|
21
|
+
export declare type MethodResponse<T> = {
|
|
22
|
+
/**
|
|
23
|
+
* 返回的数据。
|
|
24
|
+
*/
|
|
25
|
+
data: T;
|
|
26
|
+
/**
|
|
27
|
+
* 请求的唯一标识符。
|
|
28
|
+
*/
|
|
29
|
+
requestId?: string;
|
|
30
|
+
};
|
|
31
|
+
/**
|
|
32
|
+
* 模型操作方法接口定义。
|
|
33
|
+
* @template T 模型字段的类型。
|
|
34
|
+
*/
|
|
91
35
|
export interface DataModelMethods<T> {
|
|
36
|
+
/**
|
|
37
|
+
* 创建单条数据的方法。
|
|
38
|
+
* @param {Object} params - 包含创建数据的参数对象。
|
|
39
|
+
* @returns {Promise<MethodResponse<CreateResponse<T>>>} 包含创建响应的Promise对象。
|
|
40
|
+
* @example
|
|
41
|
+
* models.<model_name>.create({
|
|
42
|
+
* data: {
|
|
43
|
+
* // 模型字段数据
|
|
44
|
+
* }
|
|
45
|
+
* }).then(({ data }) => {
|
|
46
|
+
* console.log(data.id); // 输出创建的数据ID
|
|
47
|
+
* });
|
|
48
|
+
*/
|
|
92
49
|
create: (params: {
|
|
93
50
|
data: T;
|
|
94
51
|
}) => Promise<MethodResponse<CreateResponse<T>>>;
|
|
52
|
+
/**
|
|
53
|
+
* 创建多条数据的方法。
|
|
54
|
+
* @param {Object} params - 包含创建数据数组的参数对象。
|
|
55
|
+
* @returns {Promise<MethodResponse<CreateManyResponse<T>>>} 包含创建多个响应的Promise对象。
|
|
56
|
+
* @example
|
|
57
|
+
* models.<model_name>.createMany({
|
|
58
|
+
* data: [
|
|
59
|
+
* // 模型字段数据数组
|
|
60
|
+
* ]
|
|
61
|
+
* }).then(({ data }) => {
|
|
62
|
+
* console.log(data.idList); // 输出创建的数据ID列表
|
|
63
|
+
* });
|
|
64
|
+
*/
|
|
95
65
|
createMany: (params: {
|
|
96
66
|
data: T[];
|
|
97
67
|
}) => Promise<MethodResponse<CreateManyResponse<T>>>;
|
|
68
|
+
/**
|
|
69
|
+
* 更新单条数据的方法。
|
|
70
|
+
* @param {Object} params - 包含更新数据和筛选条件的参数对象。
|
|
71
|
+
* @returns {Promise<MethodResponse<UpdateResponse<T>>>} 包含更新响应的Promise对象。
|
|
72
|
+
* @example
|
|
73
|
+
* models.<model_name>.update({
|
|
74
|
+
* data: {
|
|
75
|
+
* // 更新的数据字段
|
|
76
|
+
* },
|
|
77
|
+
* filter: {
|
|
78
|
+
* where: {
|
|
79
|
+
* // 筛选条件
|
|
80
|
+
* }
|
|
81
|
+
* }
|
|
82
|
+
* }).then(({ data }) => {
|
|
83
|
+
* console.log(data.count); // 输出更新的数据条数
|
|
84
|
+
* });
|
|
85
|
+
*/
|
|
98
86
|
update: (params: {
|
|
99
87
|
data: T;
|
|
100
88
|
filter: FilterParams<T>;
|
|
101
89
|
}) => Promise<MethodResponse<UpdateResponse<T>>>;
|
|
90
|
+
/**
|
|
91
|
+
* 创建或者更新的方法
|
|
92
|
+
* @param {Object} params - 包含创建或者更新对象以及和筛选条件的参数对象。
|
|
93
|
+
* @returns {Promise<MethodResponse<UpsertResponse<T>>>} 包含更新响应的Promise对象。
|
|
94
|
+
* @example
|
|
95
|
+
* models.<model_name>.upsert({
|
|
96
|
+
* update: {
|
|
97
|
+
* // 更新的数据字段
|
|
98
|
+
* },
|
|
99
|
+
* create: {
|
|
100
|
+
* // 创建的数据字段
|
|
101
|
+
* },
|
|
102
|
+
* filter: {
|
|
103
|
+
* where: {
|
|
104
|
+
* // 筛选条件
|
|
105
|
+
* }
|
|
106
|
+
* }
|
|
107
|
+
* }).then(({ data }) => {
|
|
108
|
+
* console.log(data.count); // 输出更新的数据条数
|
|
109
|
+
* });
|
|
110
|
+
*/
|
|
111
|
+
upsert: (params: {
|
|
112
|
+
update: T;
|
|
113
|
+
create: T;
|
|
114
|
+
filter: FilterParams<T>;
|
|
115
|
+
}) => Promise<MethodResponse<UpsertResponse<T>>>;
|
|
116
|
+
/**
|
|
117
|
+
* 更新多条数据的方法。
|
|
118
|
+
* @param {Object} params - 包含更新数据和筛选条件的参数对象。
|
|
119
|
+
* @returns {Promise<MethodResponse<UpdateManyResponse<T>>>} 包含更新多个响应的Promise对象。
|
|
120
|
+
* @example
|
|
121
|
+
* models.<model_name>.updateMany({
|
|
122
|
+
* data: {
|
|
123
|
+
* // 更新的数据字段
|
|
124
|
+
* },
|
|
125
|
+
* filter: {
|
|
126
|
+
* where: {
|
|
127
|
+
* // 筛选条件
|
|
128
|
+
* }
|
|
129
|
+
* }
|
|
130
|
+
* }).then(({ data }) => {
|
|
131
|
+
* console.log(data.count); // 输出更新的数据条数
|
|
132
|
+
* });
|
|
133
|
+
*/
|
|
102
134
|
updateMany: (params: {
|
|
103
135
|
data: T;
|
|
104
136
|
filter: FilterParams<T>;
|
|
105
|
-
}) => Promise<MethodResponse<
|
|
137
|
+
}) => Promise<MethodResponse<CreateManyResponse<T>>>;
|
|
138
|
+
/**
|
|
139
|
+
* 删除单条数据的方法。
|
|
140
|
+
* @param {Object} params - 包含筛选条件的参数对象。
|
|
141
|
+
* @returns {Promise<MethodResponse<DeleteResponse<T>>>} 包含删除响应的Promise对象。
|
|
142
|
+
* @example
|
|
143
|
+
* models.<model_name>.delete({
|
|
144
|
+
* filter: {
|
|
145
|
+
* where: {
|
|
146
|
+
* // 筛选条件,例如根据ID删除特定记录
|
|
147
|
+
* _id: {
|
|
148
|
+
* $eq: "特定ID值"
|
|
149
|
+
* }
|
|
150
|
+
* }
|
|
151
|
+
* }
|
|
152
|
+
* }).then(({ data }) => {
|
|
153
|
+
* console.log(data.count); // 输出删除的数据条数
|
|
154
|
+
* });
|
|
155
|
+
*/
|
|
106
156
|
delete: (params: {
|
|
107
157
|
filter: FilterParams<T>;
|
|
108
158
|
}) => Promise<MethodResponse<DeleteResponse<T>>>;
|
|
159
|
+
/**
|
|
160
|
+
* 删除多条数据的方法。
|
|
161
|
+
* @param {Object} params - 包含筛选条件的参数对象。
|
|
162
|
+
* @returns {Promise<MethodResponse<DeleteManyResponse<T>>>} 包含删除多个响应的Promise对象。
|
|
163
|
+
* @example
|
|
164
|
+
* models.<model_name>.deleteMany({
|
|
165
|
+
* filter: {
|
|
166
|
+
* where: {
|
|
167
|
+
* // 筛选条件,例如删除所有满足特定条件的记录
|
|
168
|
+
* }
|
|
169
|
+
* }
|
|
170
|
+
* }).then(({ data }) => {
|
|
171
|
+
* console.log(data.count); // 输出删除的数据条数
|
|
172
|
+
* });
|
|
173
|
+
*/
|
|
109
174
|
deleteMany: (params: {
|
|
110
175
|
filter: FilterParams<T>;
|
|
111
|
-
}) => Promise<MethodResponse<
|
|
176
|
+
}) => Promise<MethodResponse<DeleteManyResponse<T>>>;
|
|
177
|
+
/**
|
|
178
|
+
* 获取单条数据的方法。
|
|
179
|
+
* @param {Object} params - 包含筛选条件和选择字段的参数对象。
|
|
180
|
+
* @returns {Promise<MethodResponse<T>>} 包含单个记录的Promise对象。
|
|
181
|
+
* @example
|
|
182
|
+
* models.<model_name>.get({
|
|
183
|
+
* filter: {
|
|
184
|
+
* where: {
|
|
185
|
+
* // 筛选条件
|
|
186
|
+
* }
|
|
187
|
+
* },
|
|
188
|
+
* select: {
|
|
189
|
+
* $master: true // 选择主表所有字段
|
|
190
|
+
* }
|
|
191
|
+
* }).then(({ data }) => {
|
|
192
|
+
* console.log(data); // 输出查询到的数据
|
|
193
|
+
* });
|
|
194
|
+
*/
|
|
112
195
|
get: (params: {
|
|
113
196
|
filter: FilterParams<T>;
|
|
114
197
|
select?: SelectParams<T>;
|
|
115
198
|
}) => Promise<MethodResponse<T>>;
|
|
199
|
+
/**
|
|
200
|
+
* 获取多条数据的方法。
|
|
201
|
+
* @param {Object} params - 包含筛选条件、选择字段、分页和排序选项的参数对象。
|
|
202
|
+
* @returns {Promise<MethodResponse<{ records: T[]; total?: number }>>} 包含记录列表和总数的Promise对象。
|
|
203
|
+
* @example
|
|
204
|
+
* models.<model_name>.list({
|
|
205
|
+
* filter: {
|
|
206
|
+
* where: {
|
|
207
|
+
* // 筛选条件
|
|
208
|
+
* }
|
|
209
|
+
* },
|
|
210
|
+
* select: {
|
|
211
|
+
* $master: true // 选择主表所有字段
|
|
212
|
+
* },
|
|
213
|
+
* getCount: true, // 开启用来获取总数
|
|
214
|
+
* pageSize: 10, // 分页大小
|
|
215
|
+
* pageNumber: 1, // 当前页码
|
|
216
|
+
* orderBy: [{ createdAt: 'desc' }] // 排序参数
|
|
217
|
+
* }).then(({ data }) => {
|
|
218
|
+
* console.log(data.records, data.total); // 输出查询到的数据列表和总数
|
|
219
|
+
* });
|
|
220
|
+
*/
|
|
116
221
|
list: (params: {
|
|
222
|
+
/**
|
|
223
|
+
* 过滤条件
|
|
224
|
+
*/
|
|
117
225
|
filter?: FilterParams<T>;
|
|
226
|
+
/**
|
|
227
|
+
* 可以指定返回本表或者关联表的字段,如果想查询本表所有字段,请使用 { $master: true }
|
|
228
|
+
*/
|
|
118
229
|
select?: SelectParams<T>;
|
|
230
|
+
/**
|
|
231
|
+
* 是否获取 filter 命中条件的查询条数
|
|
232
|
+
*/
|
|
119
233
|
getCount?: boolean;
|
|
234
|
+
/**
|
|
235
|
+
* 分页大小,建议指定,如需设置为其它值,需要和pageNo配合使用,两者同时指定才会生效
|
|
236
|
+
*/
|
|
120
237
|
pageSize?: number;
|
|
238
|
+
/**
|
|
239
|
+
* 分页数目
|
|
240
|
+
*/
|
|
121
241
|
pageNumber?: number;
|
|
242
|
+
/**
|
|
243
|
+
* 排序参数,当前仅支持最多 3 字段排序
|
|
244
|
+
*/
|
|
122
245
|
orderBy?: OrderByParams[];
|
|
123
246
|
}) => Promise<MethodResponse<{
|
|
124
247
|
records: T[];
|
|
125
248
|
total?: number;
|
|
126
249
|
}>>;
|
|
127
250
|
}
|
|
251
|
+
/**
|
|
252
|
+
* 模型方法返回值的定义
|
|
253
|
+
* =====================================================================
|
|
254
|
+
*/
|
|
255
|
+
/**
|
|
256
|
+
* 数据创建方法的返回类型定义。
|
|
257
|
+
* @template T 模型字段的类型。
|
|
258
|
+
*/
|
|
259
|
+
export declare type CreateResponse<T> = {
|
|
260
|
+
id: string;
|
|
261
|
+
};
|
|
262
|
+
/**
|
|
263
|
+
* 创建多条记录的响应类型定义。
|
|
264
|
+
* @template T 模型字段的类型。
|
|
265
|
+
*/
|
|
266
|
+
export declare type CreateManyResponse<T> = {
|
|
267
|
+
/**
|
|
268
|
+
* 创建的记录的ID列表。
|
|
269
|
+
*/
|
|
270
|
+
idList: string[];
|
|
271
|
+
};
|
|
272
|
+
/**
|
|
273
|
+
* 更新操作的响应类型定义。
|
|
274
|
+
* @template T 模型字段的类型。
|
|
275
|
+
*/
|
|
276
|
+
export declare type UpdateResponse<T> = {
|
|
277
|
+
/**
|
|
278
|
+
* 更新操作影响的记录数量。
|
|
279
|
+
*/
|
|
280
|
+
count: number;
|
|
281
|
+
};
|
|
282
|
+
/**
|
|
283
|
+
* 创建或者更新的响应类型定义。
|
|
284
|
+
* @template T 模型字段的类型。
|
|
285
|
+
*/
|
|
286
|
+
export declare type UpsertResponse<T> = {
|
|
287
|
+
/**
|
|
288
|
+
* 变更的条数,返回非 0 值代表更新成功
|
|
289
|
+
*/
|
|
290
|
+
count: number;
|
|
291
|
+
/**
|
|
292
|
+
* 变更的条数,返回非 "" 值代表创建成功
|
|
293
|
+
*/
|
|
294
|
+
id: string;
|
|
295
|
+
};
|
|
296
|
+
/**
|
|
297
|
+
* 删除操作的响应类型定义,用于表示删除操作影响的记录数量。
|
|
298
|
+
* @template T 模型字段的类型。
|
|
299
|
+
*/
|
|
300
|
+
export declare type DeleteResponse<T> = {
|
|
301
|
+
/**
|
|
302
|
+
* 删除操作影响的记录数量。
|
|
303
|
+
* 如果count为0,表示没有记录被删除;
|
|
304
|
+
* 如果count大于0,表示有相应数量的记录被成功删除。
|
|
305
|
+
*/
|
|
306
|
+
count: number;
|
|
307
|
+
};
|
|
308
|
+
/**
|
|
309
|
+
* 删除多条记录的响应类型定义,与更新操作的响应类型相同。
|
|
310
|
+
* @template T 模型字段的类型。
|
|
311
|
+
*/
|
|
312
|
+
export declare type DeleteManyResponse<T> = UpdateResponse<T>;
|
|
313
|
+
/**
|
|
314
|
+
* 数据列表方法的返回类型定义。
|
|
315
|
+
* @template T 模型字段的类型。
|
|
316
|
+
*/
|
|
317
|
+
export declare type ListResponse<T> = MethodResponse<{
|
|
318
|
+
records: T[];
|
|
319
|
+
total?: number;
|
|
320
|
+
}>;
|
|
321
|
+
/**
|
|
322
|
+
* list 方法参数定义。
|
|
323
|
+
* @template T 模型字段的类型。
|
|
324
|
+
*/
|
|
325
|
+
export declare type ListParams<T> = {
|
|
326
|
+
filter?: FilterParams<T>;
|
|
327
|
+
select?: SelectParams<T> | {
|
|
328
|
+
$master: boolean;
|
|
329
|
+
};
|
|
330
|
+
getCount?: boolean;
|
|
331
|
+
pageSize?: number;
|
|
332
|
+
pageNumber?: number;
|
|
333
|
+
orderBy?: OrderByParams[];
|
|
334
|
+
relateWhere?: any;
|
|
335
|
+
};
|
|
336
|
+
/**
|
|
337
|
+
* 过滤条件项的类型定义。
|
|
338
|
+
* =====================================================================
|
|
339
|
+
*/
|
|
340
|
+
/**
|
|
341
|
+
* 定义过滤参数的类型。
|
|
342
|
+
*
|
|
343
|
+
* @template T 表示模型字段的类型。
|
|
344
|
+
* @example
|
|
345
|
+
* {
|
|
346
|
+
relateWhere: {
|
|
347
|
+
comments: {
|
|
348
|
+
where: {
|
|
349
|
+
comment: {
|
|
350
|
+
$nempty: true,
|
|
351
|
+
},
|
|
352
|
+
},
|
|
353
|
+
},
|
|
354
|
+
},
|
|
355
|
+
where: {},
|
|
356
|
+
}
|
|
357
|
+
*/
|
|
358
|
+
export declare type FilterParams<T> = {
|
|
359
|
+
/**
|
|
360
|
+
* 基础查询
|
|
361
|
+
*/
|
|
362
|
+
where?: FilterConditionItem<T> | FilterObject<T>;
|
|
363
|
+
/**
|
|
364
|
+
* 关联关系查询
|
|
365
|
+
*/
|
|
366
|
+
relateWhere?: {
|
|
367
|
+
[K in RelationKeys<T>]?: {
|
|
368
|
+
where: FilterConditionItem<T[K] extends Model[] ? T[K][0] : T[K]> | FilterObject<T[K]>;
|
|
369
|
+
};
|
|
370
|
+
};
|
|
371
|
+
};
|
|
372
|
+
/**
|
|
373
|
+
* 定义过滤参数的类型。
|
|
374
|
+
*
|
|
375
|
+
* @template T 表示模型字段的类型。
|
|
376
|
+
* 此类型定义允许使用复杂的查询条件来过滤数据。
|
|
377
|
+
*
|
|
378
|
+
* @example <caption>示例 1: 使用`$and`运算符来组合多个条件。</caption>
|
|
379
|
+
* {
|
|
380
|
+
* "$and": [
|
|
381
|
+
* {
|
|
382
|
+
* "title": {
|
|
383
|
+
* "$eq": "hello"
|
|
384
|
+
* }
|
|
385
|
+
* }
|
|
386
|
+
* ]
|
|
387
|
+
* }
|
|
388
|
+
*
|
|
389
|
+
* @example <caption>示例 2: 使用`$or`运算符来组合多个条件,其中包含一个`$and`子条件。</caption>
|
|
390
|
+
* {
|
|
391
|
+
* "$or": [
|
|
392
|
+
* {
|
|
393
|
+
* "$and": [
|
|
394
|
+
* {
|
|
395
|
+
* "title": {
|
|
396
|
+
* "$eq": "hello"
|
|
397
|
+
* }
|
|
398
|
+
* },
|
|
399
|
+
* {
|
|
400
|
+
* "body": {
|
|
401
|
+
* "$neq": "world"
|
|
402
|
+
* }
|
|
403
|
+
* }
|
|
404
|
+
* ]
|
|
405
|
+
* },
|
|
406
|
+
* {
|
|
407
|
+
* "createdBy": {
|
|
408
|
+
* "$eq": "xxx"
|
|
409
|
+
* }
|
|
410
|
+
* }
|
|
411
|
+
* ]
|
|
412
|
+
* }
|
|
413
|
+
*/
|
|
414
|
+
export declare type FilterObject<T> = {
|
|
415
|
+
[operator in LogicalOperator]?: FilterConditionItem<T>[] | FilterObject<T>;
|
|
416
|
+
};
|
|
417
|
+
/**
|
|
418
|
+
* 过滤参数类型定义。
|
|
419
|
+
*
|
|
420
|
+
* 此类型定义允许对模型字段进行条件过滤,支持复杂的查询操作。
|
|
421
|
+
*
|
|
422
|
+
* @template T 模型字段的类型。
|
|
423
|
+
*
|
|
424
|
+
* @example
|
|
425
|
+
* 示例 1: 使用`$and`运算符来组合条件,确保所有条件都满足。
|
|
426
|
+
* ```json
|
|
427
|
+
* {
|
|
428
|
+
* "$and": [
|
|
429
|
+
* {
|
|
430
|
+
* "key": {
|
|
431
|
+
* "$eq": "val"
|
|
432
|
+
* }
|
|
433
|
+
* }
|
|
434
|
+
* ]
|
|
435
|
+
* }
|
|
436
|
+
* ```
|
|
437
|
+
*
|
|
438
|
+
* @example
|
|
439
|
+
* 示例 2: 使用`$and`运算符来组合条件,其中包含`$in`运算符来检查数组包含性。
|
|
440
|
+
* ```json
|
|
441
|
+
* {
|
|
442
|
+
* "$and": [
|
|
443
|
+
* {
|
|
444
|
+
* "key1": {
|
|
445
|
+
* "$in": [
|
|
446
|
+
* "foo",
|
|
447
|
+
* "bar"
|
|
448
|
+
* ]
|
|
449
|
+
* }
|
|
450
|
+
* },
|
|
451
|
+
* {
|
|
452
|
+
* "key2": {
|
|
453
|
+
* "$in": [
|
|
454
|
+
* 1,
|
|
455
|
+
* 2
|
|
456
|
+
* ]
|
|
457
|
+
* }
|
|
458
|
+
* }
|
|
459
|
+
* ]
|
|
460
|
+
* }
|
|
461
|
+
* ```
|
|
462
|
+
*/
|
|
463
|
+
export declare type FilterConditionItem<T> = {
|
|
464
|
+
[key in keyof T]?: FilterCondition;
|
|
465
|
+
};
|
|
466
|
+
/**
|
|
467
|
+
* 复杂查询条件类型定义
|
|
468
|
+
*
|
|
469
|
+
* @example
|
|
470
|
+
* {
|
|
471
|
+
* "$eq": "val"
|
|
472
|
+
* }
|
|
473
|
+
*/
|
|
474
|
+
export declare type FilterCondition = {
|
|
475
|
+
[key in ComparisonOperator]?: any;
|
|
476
|
+
};
|
|
477
|
+
/**
|
|
478
|
+
* 比较运算符类型定义,包括基础和特殊运算符。
|
|
479
|
+
* @example
|
|
480
|
+
* $eq: 等于
|
|
481
|
+
*/
|
|
482
|
+
export declare type ComparisonOperator = BasicComparisonOperator | SpecialComparisonOperator;
|
|
483
|
+
/**
|
|
484
|
+
* 排序参数结构定义。
|
|
485
|
+
*
|
|
486
|
+
* @example
|
|
487
|
+
* {
|
|
488
|
+
"createdAt": "asc",
|
|
489
|
+
}
|
|
490
|
+
*/
|
|
491
|
+
export declare type OrderByParams = {
|
|
492
|
+
[key: string]: 'asc' | 'desc';
|
|
493
|
+
};
|
|
494
|
+
/**
|
|
495
|
+
* 选择参数结构定义,用于指定查询时返回的字段。
|
|
496
|
+
* @template T 模型字段的类型。
|
|
497
|
+
* @example
|
|
498
|
+
* {
|
|
499
|
+
"key1": true,
|
|
500
|
+
}
|
|
501
|
+
*
|
|
502
|
+
* @example
|
|
503
|
+
* {
|
|
504
|
+
$master: true,
|
|
505
|
+
}
|
|
506
|
+
*
|
|
507
|
+
* @example
|
|
508
|
+
* {
|
|
509
|
+
$master: true,
|
|
510
|
+
comments: {
|
|
511
|
+
comment: true,
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
*/
|
|
515
|
+
export declare type SelectParams<T> = {
|
|
516
|
+
[K in keyof T]?: T[K] extends Array<infer U> | undefined ? SelectParams<U> | boolean : T[K] extends object | undefined ? SelectParams<T[K]> | boolean : boolean;
|
|
517
|
+
} & {
|
|
518
|
+
$master?: boolean;
|
|
519
|
+
};
|
|
520
|
+
/**
|
|
521
|
+
* 基础比较运算符类型定义。
|
|
522
|
+
*/
|
|
523
|
+
export declare type BasicComparisonOperator = '$eq' | '$neq' | '$gt' | '$gte' | '$lt' | '$lte' | '$in' | '$nin';
|
|
524
|
+
/**
|
|
525
|
+
* 特殊比较运算符类型定义
|
|
526
|
+
*/
|
|
527
|
+
export declare type SpecialComparisonOperator = '$search' | '$nsearch' | '$empty' | '$nempty';
|
|
528
|
+
/**
|
|
529
|
+
* 逻辑运算符类型定义。
|
|
530
|
+
*/
|
|
531
|
+
export declare type LogicalOperator = '$and' | '$or';
|
|
532
|
+
export declare type RelationField<T> = T extends {
|
|
533
|
+
[key: string]: infer U;
|
|
534
|
+
} ? U : never;
|
|
535
|
+
/**
|
|
536
|
+
* @hidden
|
|
537
|
+
*/
|
|
538
|
+
declare type RelationKeys<T> = T extends any ? {
|
|
539
|
+
[K in keyof T]: T[K] extends Model | Model[] ? K : never;
|
|
540
|
+
}[keyof T] : never;
|
|
541
|
+
/**
|
|
542
|
+
* 关联关系类型定义。
|
|
543
|
+
* @hidden
|
|
544
|
+
*/
|
|
545
|
+
export declare type Relation = string;
|
|
546
|
+
/**
|
|
547
|
+
* ORM客户端接口,包含不同模型名称到其操作方法的映射。
|
|
548
|
+
* @hidden
|
|
549
|
+
*/
|
|
128
550
|
export interface OrmClient {
|
|
129
551
|
[modelName: string]: DataModelMethods<any>;
|
|
130
552
|
}
|
|
553
|
+
/**
|
|
554
|
+
* 调用数据源参数的结构定义,用于封装调用云函数时所需的参数。
|
|
555
|
+
* @hidden
|
|
556
|
+
*/
|
|
557
|
+
export interface CallDataSourceParams {
|
|
558
|
+
/**
|
|
559
|
+
* 数据源的名称,标识调用的数据源。
|
|
560
|
+
*/
|
|
561
|
+
dataSourceName: string;
|
|
562
|
+
/**
|
|
563
|
+
* 方法名称,标识要调用的数据源中的具体方法。
|
|
564
|
+
*/
|
|
565
|
+
methodName: string;
|
|
566
|
+
/**
|
|
567
|
+
* 传递给数据源方法的参数,可以是任意形式的键值对。
|
|
568
|
+
*/
|
|
569
|
+
params: Record<string, any>;
|
|
570
|
+
/**
|
|
571
|
+
* 真实的方法名称,可能在某些情况下与`methodName`不同。
|
|
572
|
+
*/
|
|
573
|
+
realMethodName: string;
|
|
574
|
+
/**
|
|
575
|
+
* 调用函数的方法,用于执行实际的云函数调用。
|
|
576
|
+
*/
|
|
577
|
+
callFunction: CallFunction;
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* 云函数调用接口,包含调用函数和认证信息。
|
|
581
|
+
* @hidden
|
|
582
|
+
*/
|
|
583
|
+
export declare type CloudBaseInstance = {
|
|
584
|
+
callFunction: CallFunction;
|
|
585
|
+
auth: any;
|
|
586
|
+
};
|
|
587
|
+
/**
|
|
588
|
+
* 扩展的云实例接口,扩展了云函数调用接口并包含ORM客户端。
|
|
589
|
+
* @hidden
|
|
590
|
+
*/
|
|
591
|
+
export interface ExtendedCloudBaseInstance extends CloudBaseInstance {
|
|
592
|
+
models: OrmClient;
|
|
593
|
+
}
|
|
594
|
+
/**
|
|
595
|
+
* 云函数调用方法定义。
|
|
596
|
+
* @hidden
|
|
597
|
+
* @param args - 包含函数名称、数据源名称、方法名称和参数的对象。
|
|
598
|
+
* @returns 返回一个Promise,解析为任意类型。
|
|
599
|
+
*/
|
|
600
|
+
export declare type CallFunction = (args: {
|
|
601
|
+
name: string;
|
|
602
|
+
data: {
|
|
603
|
+
dataSourceName: string;
|
|
604
|
+
methodName: string;
|
|
605
|
+
params: Record<string, any>;
|
|
606
|
+
'x-sdk-version'?: string;
|
|
607
|
+
userAgent?: string;
|
|
608
|
+
referrer?: string;
|
|
609
|
+
};
|
|
610
|
+
}) => Promise<any>;
|
|
611
|
+
export {};
|
package/lib/utils.d.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 获取全局对象 window
|
|
3
|
+
* 小程序中可用, 但小程序中对象信息残缺, 无法访问 navigator 对象, ua 信息也无意义
|
|
4
|
+
*/
|
|
5
|
+
export declare function getGlobalObj(): false | typeof globalThis;
|
|
6
|
+
/** 获取referrer 信息, 担心小程序中报错, 故catch */
|
|
7
|
+
export declare function getReferrer(): any;
|
|
8
|
+
/** 获取用户UA, 小程序中使用 getSystemInfo 替代 */
|
|
9
|
+
export declare function getUserAgent(): any;
|
|
10
|
+
export declare const VERSION: string | undefined;
|