@cloudcome/utils-uni 1.3.1 → 1.4.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/_helpers.cjs +10 -0
- package/dist/_helpers.cjs.map +1 -0
- package/dist/_helpers.d.ts +8 -0
- package/dist/_helpers.mjs +11 -0
- package/dist/_helpers.mjs.map +1 -0
- package/dist/client.cjs +26 -0
- package/dist/client.cjs.map +1 -0
- package/dist/client.d.ts +49 -0
- package/dist/client.mjs +26 -0
- package/dist/client.mjs.map +1 -0
- package/dist/cloud/error.d.ts +4 -0
- package/dist/cloud/expose.d.ts +48 -0
- package/dist/cloud/object.d.ts +132 -0
- package/dist/cloud/respond.d.ts +3 -0
- package/dist/cloud/uni-id.d.ts +14 -0
- package/dist/cloud.cjs +90 -19
- package/dist/cloud.cjs.map +1 -1
- package/dist/cloud.d.ts +5 -53
- package/dist/cloud.mjs +90 -19
- package/dist/cloud.mjs.map +1 -1
- package/dist/database/db.d.ts +11079 -0
- package/dist/database/types.d.ts +9 -0
- package/dist/database.cjs +200 -0
- package/dist/database.cjs.map +1 -0
- package/dist/database.d.ts +2 -0
- package/dist/database.mjs +200 -0
- package/dist/database.mjs.map +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.mjs +1 -1
- package/package.json +21 -4
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __typeError = (msg) => {
|
|
3
|
+
throw TypeError(msg);
|
|
4
|
+
};
|
|
5
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
6
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
7
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
8
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
9
|
+
var _db, _db2;
|
|
10
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
11
|
+
const error = require("@cloudcome/utils-core/error");
|
|
12
|
+
const object = require("@cloudcome/utils-core/object");
|
|
13
|
+
const db0 = uniCloud.database();
|
|
14
|
+
const dbCmd = db0.command;
|
|
15
|
+
const dbAgg = db0.command.aggregate;
|
|
16
|
+
class Aggregate {
|
|
17
|
+
constructor(db2) {
|
|
18
|
+
__privateAdd(this, _db);
|
|
19
|
+
__privateSet(this, _db, db2);
|
|
20
|
+
}
|
|
21
|
+
start() {
|
|
22
|
+
return __privateGet(this, _db).aggregate();
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
_db = new WeakMap();
|
|
26
|
+
class Db {
|
|
27
|
+
/**
|
|
28
|
+
* 构造函数,初始化数据库集合引用
|
|
29
|
+
* @param collection 集合名称
|
|
30
|
+
*/
|
|
31
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
32
|
+
constructor(collection, _mockDatabase) {
|
|
33
|
+
__privateAdd(this, _db2);
|
|
34
|
+
__privateSet(this, _db2, _mockDatabase || db0.collection(collection));
|
|
35
|
+
}
|
|
36
|
+
aggregate() {
|
|
37
|
+
return new Aggregate(__privateGet(this, _db2)).start();
|
|
38
|
+
}
|
|
39
|
+
start() {
|
|
40
|
+
return {
|
|
41
|
+
where: this.where.bind(this),
|
|
42
|
+
select: this.select.bind(this),
|
|
43
|
+
order: this.order.bind(this),
|
|
44
|
+
skip: this.skip.bind(this),
|
|
45
|
+
limit: this.limit.bind(this),
|
|
46
|
+
create: this.create.bind(this),
|
|
47
|
+
count: this.count.bind(this),
|
|
48
|
+
query: this.query.bind(this),
|
|
49
|
+
aggregate: this.aggregate.bind(this)
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 设置查询条件
|
|
54
|
+
* @param where 查询条件对象
|
|
55
|
+
* @returns 当前Db实例,支持链式调用
|
|
56
|
+
*/
|
|
57
|
+
where(where) {
|
|
58
|
+
__privateSet(this, _db2, __privateGet(this, _db2).where(where));
|
|
59
|
+
return {
|
|
60
|
+
where: this.where.bind(this),
|
|
61
|
+
select: this.select.bind(this),
|
|
62
|
+
order: this.order.bind(this),
|
|
63
|
+
skip: this.skip.bind(this),
|
|
64
|
+
limit: this.limit.bind(this),
|
|
65
|
+
count: this.count.bind(this),
|
|
66
|
+
query: this.query.bind(this),
|
|
67
|
+
update: this.update.bind(this),
|
|
68
|
+
remove: this.remove.bind(this)
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* 指定要返回的字段
|
|
73
|
+
* @param fields 要返回的字段对象,true表示返回,false表示不返回
|
|
74
|
+
* @returns 当前Db实例,支持链式调用
|
|
75
|
+
*/
|
|
76
|
+
select(fields) {
|
|
77
|
+
__privateSet(this, _db2, __privateGet(this, _db2).field(fields));
|
|
78
|
+
return {
|
|
79
|
+
where: this.where.bind(this),
|
|
80
|
+
order: this.order.bind(this),
|
|
81
|
+
skip: this.skip.bind(this),
|
|
82
|
+
limit: this.limit.bind(this),
|
|
83
|
+
query: this.query.bind(this)
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 设置排序规则
|
|
88
|
+
* @param order 排序规则对象,key为字段名,value为"asc"或"desc"
|
|
89
|
+
* @returns 当前Db实例,支持链式调用
|
|
90
|
+
*/
|
|
91
|
+
order(order) {
|
|
92
|
+
object.objectEach(order, (val, key) => {
|
|
93
|
+
__privateSet(this, _db2, __privateGet(this, _db2).orderBy(key, val));
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
where: this.where.bind(this),
|
|
97
|
+
order: this.order.bind(this),
|
|
98
|
+
skip: this.skip.bind(this),
|
|
99
|
+
limit: this.limit.bind(this),
|
|
100
|
+
query: this.query.bind(this)
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* 跳过指定数量的记录
|
|
105
|
+
* @param skip 要跳过的记录数
|
|
106
|
+
* @returns 当前Db实例,支持链式调用
|
|
107
|
+
*/
|
|
108
|
+
skip(skip) {
|
|
109
|
+
__privateSet(this, _db2, __privateGet(this, _db2).skip(skip));
|
|
110
|
+
return {
|
|
111
|
+
where: this.where.bind(this),
|
|
112
|
+
order: this.order.bind(this),
|
|
113
|
+
limit: this.limit.bind(this),
|
|
114
|
+
query: this.query.bind(this)
|
|
115
|
+
};
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* 限制返回的记录数量
|
|
119
|
+
* @param limit 最大返回记录数
|
|
120
|
+
* @returns 当前Db实例,支持链式调用
|
|
121
|
+
*/
|
|
122
|
+
limit(limit) {
|
|
123
|
+
__privateSet(this, _db2, __privateGet(this, _db2).limit(limit));
|
|
124
|
+
return {
|
|
125
|
+
where: this.where.bind(this),
|
|
126
|
+
order: this.order.bind(this),
|
|
127
|
+
skip: this.skip.bind(this),
|
|
128
|
+
query: this.query.bind(this)
|
|
129
|
+
};
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 创建新记录
|
|
133
|
+
* @param data 要创建的数据
|
|
134
|
+
* @returns 创建结果
|
|
135
|
+
*/
|
|
136
|
+
async create(data) {
|
|
137
|
+
const res = await __privateGet(this, _db2).add(data);
|
|
138
|
+
return parseDatabaseOutput(res);
|
|
139
|
+
}
|
|
140
|
+
/**
|
|
141
|
+
* 获取匹配记录的数量
|
|
142
|
+
* @returns 记录总数
|
|
143
|
+
*/
|
|
144
|
+
async count() {
|
|
145
|
+
const res = await __privateGet(this, _db2).count();
|
|
146
|
+
return parseDatabaseOutput(res);
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* 执行查询操作
|
|
150
|
+
* @returns 查询结果
|
|
151
|
+
*/
|
|
152
|
+
async query() {
|
|
153
|
+
const res = await __privateGet(this, _db2).get();
|
|
154
|
+
return parseDatabaseOutput(res);
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* 更新记录
|
|
158
|
+
* @param data 要更新的数据
|
|
159
|
+
* @returns 更新结果
|
|
160
|
+
*/
|
|
161
|
+
async update(data) {
|
|
162
|
+
const res = await __privateGet(this, _db2).update(data);
|
|
163
|
+
return parseDatabaseOutput(res);
|
|
164
|
+
}
|
|
165
|
+
/**
|
|
166
|
+
* 删除记录
|
|
167
|
+
* @returns 删除结果
|
|
168
|
+
*/
|
|
169
|
+
async remove() {
|
|
170
|
+
const res = await __privateGet(this, _db2).remove();
|
|
171
|
+
return parseDatabaseOutput(res);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
_db2 = new WeakMap();
|
|
175
|
+
const db = {
|
|
176
|
+
/**
|
|
177
|
+
* 获取指定名称的数据库集合实例
|
|
178
|
+
* @param collection 集合名称
|
|
179
|
+
* @returns Db类实例,用于执行数据库操作
|
|
180
|
+
*/
|
|
181
|
+
collection(collection) {
|
|
182
|
+
return new Db(collection).start();
|
|
183
|
+
}
|
|
184
|
+
};
|
|
185
|
+
function parseDatabaseOutput(res) {
|
|
186
|
+
const keys = Object.keys(res);
|
|
187
|
+
const isClient = keys.length === 1 && keys[0] === "result";
|
|
188
|
+
if (isClient) {
|
|
189
|
+
const { result } = res;
|
|
190
|
+
if (!result.errCode) return object.objectOmit(result, ["errCode", "errMsg", "code", "message"]);
|
|
191
|
+
throw error.errorAssign(new Error(result.errMsg), result);
|
|
192
|
+
}
|
|
193
|
+
return res;
|
|
194
|
+
}
|
|
195
|
+
exports.Db = Db;
|
|
196
|
+
exports.db = db;
|
|
197
|
+
exports.dbAgg = dbAgg;
|
|
198
|
+
exports.dbCmd = dbCmd;
|
|
199
|
+
exports.parseDatabaseOutput = parseDatabaseOutput;
|
|
200
|
+
//# sourceMappingURL=database.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.cjs","sources":["../src/database/db.ts"],"sourcesContent":["import { parseCloudObjectOutput } from '@/_helpers';\nimport { type UniCloudObjectOutput, respondCloudObject } from '@/cloud';\nimport { errorAssign } from '@cloudcome/utils-core/error';\nimport { objectEach, objectOmit } from '@cloudcome/utils-core/object';\nimport type { UniClientDatabaseOutput, UniCloudDatabaseOutput } from './types';\n\nconst db0 = uniCloud.database();\n/**\n * 数据库操作符命令\n */\nexport const dbCmd = db0.command;\n\n/**\n * 数据库聚合操作符命令\n */\nexport const dbAgg = db0.command.aggregate;\n\nclass Aggregate {\n #db: UniCloud.CollectionReference;\n\n constructor(db: UniCloud.CollectionReference) {\n this.#db = db;\n }\n\n start() {\n return this.#db.aggregate();\n }\n}\n\nexport class Db {\n #db: UniCloud.CollectionReference;\n\n /**\n * 构造函数,初始化数据库集合引用\n * @param collection 集合名称\n */\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n constructor(collection: string, _mockDatabase?: any) {\n this.#db = _mockDatabase || db0.collection(collection);\n }\n\n aggregate() {\n return new Aggregate(this.#db).start();\n }\n\n start() {\n return {\n where: this.where.bind(this),\n select: this.select.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n create: this.create.bind(this),\n count: this.count.bind(this),\n query: this.query.bind(this),\n aggregate: this.aggregate.bind(this),\n };\n }\n\n /**\n * 设置查询条件\n * @param where 查询条件对象\n * @returns 当前Db实例,支持链式调用\n */\n where(where: AnyObject) {\n // @ts-ignore\n this.#db = this.#db.where(where);\n return {\n where: this.where.bind(this),\n select: this.select.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n count: this.count.bind(this),\n query: this.query.bind(this),\n update: this.update.bind(this),\n remove: this.remove.bind(this),\n };\n }\n\n /**\n * 指定要返回的字段\n * @param fields 要返回的字段对象,true表示返回,false表示不返回\n * @returns 当前Db实例,支持链式调用\n */\n select(fields: Record<string, true> & { _id?: false }) {\n // @ts-ignore\n this.#db = this.#db.field(fields);\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 设置排序规则\n * @param order 排序规则对象,key为字段名,value为\"asc\"或\"desc\"\n * @returns 当前Db实例,支持链式调用\n */\n order(order: Record<string, 'asc' | 'desc'>) {\n objectEach(order, (val, key) => {\n // @ts-ignore\n this.#db = this.#db.orderBy(key, val);\n });\n\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 跳过指定数量的记录\n * @param skip 要跳过的记录数\n * @returns 当前Db实例,支持链式调用\n */\n skip(skip: number) {\n // @ts-ignore\n this.#db = this.#db.skip(skip);\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n limit: this.limit.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 限制返回的记录数量\n * @param limit 最大返回记录数\n * @returns 当前Db实例,支持链式调用\n */\n limit(limit: number) {\n // @ts-ignore\n this.#db = this.#db.limit(limit);\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 创建新记录\n * @param data 要创建的数据\n * @returns 创建结果\n */\n async create(data: AnyObject) {\n const res = await this.#db.add(data);\n return parseDatabaseOutput<{ id: string }>(res);\n }\n\n /**\n * 获取匹配记录的数量\n * @returns 记录总数\n */\n async count() {\n const res = await this.#db.count();\n return parseDatabaseOutput<{ total: number }>(res);\n }\n\n /**\n * 执行查询操作\n * @returns 查询结果\n */\n async query<T>() {\n const res = await this.#db.get();\n return parseDatabaseOutput<{ data: T[] }>(res);\n }\n\n /**\n * 更新记录\n * @param data 要更新的数据\n * @returns 更新结果\n */\n async update(data: AnyObject) {\n const res = await this.#db.update(data);\n return parseDatabaseOutput<{ updated: number }>(res);\n }\n\n /**\n * 删除记录\n * @returns 删除结果\n */\n async remove() {\n const res = await this.#db.remove();\n return parseDatabaseOutput<{ deleted: number }>(res);\n }\n}\n\n/**\n * 数据库操作对象\n */\nexport const db = {\n /**\n * 获取指定名称的数据库集合实例\n * @param collection 集合名称\n * @returns Db类实例,用于执行数据库操作\n */\n collection(collection: string) {\n return new Db(collection).start();\n },\n};\n\n/**\n * 解析数据库执行结果\n * @param res 客户端、云端响应结果\n * @returns 处理后的结果\n */\nexport function parseDatabaseOutput<T>(res: UniClientDatabaseOutput<T> | UniCloudDatabaseOutput<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 UniClientDatabaseOutput<T>;\n if (!result.errCode) return objectOmit(result, ['errCode', 'errMsg', 'code', 'message']);\n throw errorAssign(new Error(result.errMsg), result);\n }\n\n // 云端 数据\n return res as T;\n}\n"],"names":["db","_db","objectEach","objectOmit","errorAssign"],"mappings":"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"}
|
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
var __typeError = (msg) => {
|
|
2
|
+
throw TypeError(msg);
|
|
3
|
+
};
|
|
4
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), setter ? setter.call(obj, value) : member.set(obj, value), value);
|
|
8
|
+
var _db, _db2;
|
|
9
|
+
import { errorAssign } from "@cloudcome/utils-core/error";
|
|
10
|
+
import { objectEach, objectOmit } from "@cloudcome/utils-core/object";
|
|
11
|
+
const db0 = uniCloud.database();
|
|
12
|
+
const dbCmd = db0.command;
|
|
13
|
+
const dbAgg = db0.command.aggregate;
|
|
14
|
+
class Aggregate {
|
|
15
|
+
constructor(db2) {
|
|
16
|
+
__privateAdd(this, _db);
|
|
17
|
+
__privateSet(this, _db, db2);
|
|
18
|
+
}
|
|
19
|
+
start() {
|
|
20
|
+
return __privateGet(this, _db).aggregate();
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
_db = new WeakMap();
|
|
24
|
+
class Db {
|
|
25
|
+
/**
|
|
26
|
+
* 构造函数,初始化数据库集合引用
|
|
27
|
+
* @param collection 集合名称
|
|
28
|
+
*/
|
|
29
|
+
// biome-ignore lint/suspicious/noExplicitAny: <explanation>
|
|
30
|
+
constructor(collection, _mockDatabase) {
|
|
31
|
+
__privateAdd(this, _db2);
|
|
32
|
+
__privateSet(this, _db2, _mockDatabase || db0.collection(collection));
|
|
33
|
+
}
|
|
34
|
+
aggregate() {
|
|
35
|
+
return new Aggregate(__privateGet(this, _db2)).start();
|
|
36
|
+
}
|
|
37
|
+
start() {
|
|
38
|
+
return {
|
|
39
|
+
where: this.where.bind(this),
|
|
40
|
+
select: this.select.bind(this),
|
|
41
|
+
order: this.order.bind(this),
|
|
42
|
+
skip: this.skip.bind(this),
|
|
43
|
+
limit: this.limit.bind(this),
|
|
44
|
+
create: this.create.bind(this),
|
|
45
|
+
count: this.count.bind(this),
|
|
46
|
+
query: this.query.bind(this),
|
|
47
|
+
aggregate: this.aggregate.bind(this)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* 设置查询条件
|
|
52
|
+
* @param where 查询条件对象
|
|
53
|
+
* @returns 当前Db实例,支持链式调用
|
|
54
|
+
*/
|
|
55
|
+
where(where) {
|
|
56
|
+
__privateSet(this, _db2, __privateGet(this, _db2).where(where));
|
|
57
|
+
return {
|
|
58
|
+
where: this.where.bind(this),
|
|
59
|
+
select: this.select.bind(this),
|
|
60
|
+
order: this.order.bind(this),
|
|
61
|
+
skip: this.skip.bind(this),
|
|
62
|
+
limit: this.limit.bind(this),
|
|
63
|
+
count: this.count.bind(this),
|
|
64
|
+
query: this.query.bind(this),
|
|
65
|
+
update: this.update.bind(this),
|
|
66
|
+
remove: this.remove.bind(this)
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* 指定要返回的字段
|
|
71
|
+
* @param fields 要返回的字段对象,true表示返回,false表示不返回
|
|
72
|
+
* @returns 当前Db实例,支持链式调用
|
|
73
|
+
*/
|
|
74
|
+
select(fields) {
|
|
75
|
+
__privateSet(this, _db2, __privateGet(this, _db2).field(fields));
|
|
76
|
+
return {
|
|
77
|
+
where: this.where.bind(this),
|
|
78
|
+
order: this.order.bind(this),
|
|
79
|
+
skip: this.skip.bind(this),
|
|
80
|
+
limit: this.limit.bind(this),
|
|
81
|
+
query: this.query.bind(this)
|
|
82
|
+
};
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* 设置排序规则
|
|
86
|
+
* @param order 排序规则对象,key为字段名,value为"asc"或"desc"
|
|
87
|
+
* @returns 当前Db实例,支持链式调用
|
|
88
|
+
*/
|
|
89
|
+
order(order) {
|
|
90
|
+
objectEach(order, (val, key) => {
|
|
91
|
+
__privateSet(this, _db2, __privateGet(this, _db2).orderBy(key, val));
|
|
92
|
+
});
|
|
93
|
+
return {
|
|
94
|
+
where: this.where.bind(this),
|
|
95
|
+
order: this.order.bind(this),
|
|
96
|
+
skip: this.skip.bind(this),
|
|
97
|
+
limit: this.limit.bind(this),
|
|
98
|
+
query: this.query.bind(this)
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 跳过指定数量的记录
|
|
103
|
+
* @param skip 要跳过的记录数
|
|
104
|
+
* @returns 当前Db实例,支持链式调用
|
|
105
|
+
*/
|
|
106
|
+
skip(skip) {
|
|
107
|
+
__privateSet(this, _db2, __privateGet(this, _db2).skip(skip));
|
|
108
|
+
return {
|
|
109
|
+
where: this.where.bind(this),
|
|
110
|
+
order: this.order.bind(this),
|
|
111
|
+
limit: this.limit.bind(this),
|
|
112
|
+
query: this.query.bind(this)
|
|
113
|
+
};
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* 限制返回的记录数量
|
|
117
|
+
* @param limit 最大返回记录数
|
|
118
|
+
* @returns 当前Db实例,支持链式调用
|
|
119
|
+
*/
|
|
120
|
+
limit(limit) {
|
|
121
|
+
__privateSet(this, _db2, __privateGet(this, _db2).limit(limit));
|
|
122
|
+
return {
|
|
123
|
+
where: this.where.bind(this),
|
|
124
|
+
order: this.order.bind(this),
|
|
125
|
+
skip: this.skip.bind(this),
|
|
126
|
+
query: this.query.bind(this)
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
/**
|
|
130
|
+
* 创建新记录
|
|
131
|
+
* @param data 要创建的数据
|
|
132
|
+
* @returns 创建结果
|
|
133
|
+
*/
|
|
134
|
+
async create(data) {
|
|
135
|
+
const res = await __privateGet(this, _db2).add(data);
|
|
136
|
+
return parseDatabaseOutput(res);
|
|
137
|
+
}
|
|
138
|
+
/**
|
|
139
|
+
* 获取匹配记录的数量
|
|
140
|
+
* @returns 记录总数
|
|
141
|
+
*/
|
|
142
|
+
async count() {
|
|
143
|
+
const res = await __privateGet(this, _db2).count();
|
|
144
|
+
return parseDatabaseOutput(res);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* 执行查询操作
|
|
148
|
+
* @returns 查询结果
|
|
149
|
+
*/
|
|
150
|
+
async query() {
|
|
151
|
+
const res = await __privateGet(this, _db2).get();
|
|
152
|
+
return parseDatabaseOutput(res);
|
|
153
|
+
}
|
|
154
|
+
/**
|
|
155
|
+
* 更新记录
|
|
156
|
+
* @param data 要更新的数据
|
|
157
|
+
* @returns 更新结果
|
|
158
|
+
*/
|
|
159
|
+
async update(data) {
|
|
160
|
+
const res = await __privateGet(this, _db2).update(data);
|
|
161
|
+
return parseDatabaseOutput(res);
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* 删除记录
|
|
165
|
+
* @returns 删除结果
|
|
166
|
+
*/
|
|
167
|
+
async remove() {
|
|
168
|
+
const res = await __privateGet(this, _db2).remove();
|
|
169
|
+
return parseDatabaseOutput(res);
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
_db2 = new WeakMap();
|
|
173
|
+
const db = {
|
|
174
|
+
/**
|
|
175
|
+
* 获取指定名称的数据库集合实例
|
|
176
|
+
* @param collection 集合名称
|
|
177
|
+
* @returns Db类实例,用于执行数据库操作
|
|
178
|
+
*/
|
|
179
|
+
collection(collection) {
|
|
180
|
+
return new Db(collection).start();
|
|
181
|
+
}
|
|
182
|
+
};
|
|
183
|
+
function parseDatabaseOutput(res) {
|
|
184
|
+
const keys = Object.keys(res);
|
|
185
|
+
const isClient = keys.length === 1 && keys[0] === "result";
|
|
186
|
+
if (isClient) {
|
|
187
|
+
const { result } = res;
|
|
188
|
+
if (!result.errCode) return objectOmit(result, ["errCode", "errMsg", "code", "message"]);
|
|
189
|
+
throw errorAssign(new Error(result.errMsg), result);
|
|
190
|
+
}
|
|
191
|
+
return res;
|
|
192
|
+
}
|
|
193
|
+
export {
|
|
194
|
+
Db,
|
|
195
|
+
db,
|
|
196
|
+
dbAgg,
|
|
197
|
+
dbCmd,
|
|
198
|
+
parseDatabaseOutput
|
|
199
|
+
};
|
|
200
|
+
//# sourceMappingURL=database.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database.mjs","sources":["../src/database/db.ts"],"sourcesContent":["import { parseCloudObjectOutput } from '@/_helpers';\nimport { type UniCloudObjectOutput, respondCloudObject } from '@/cloud';\nimport { errorAssign } from '@cloudcome/utils-core/error';\nimport { objectEach, objectOmit } from '@cloudcome/utils-core/object';\nimport type { UniClientDatabaseOutput, UniCloudDatabaseOutput } from './types';\n\nconst db0 = uniCloud.database();\n/**\n * 数据库操作符命令\n */\nexport const dbCmd = db0.command;\n\n/**\n * 数据库聚合操作符命令\n */\nexport const dbAgg = db0.command.aggregate;\n\nclass Aggregate {\n #db: UniCloud.CollectionReference;\n\n constructor(db: UniCloud.CollectionReference) {\n this.#db = db;\n }\n\n start() {\n return this.#db.aggregate();\n }\n}\n\nexport class Db {\n #db: UniCloud.CollectionReference;\n\n /**\n * 构造函数,初始化数据库集合引用\n * @param collection 集合名称\n */\n // biome-ignore lint/suspicious/noExplicitAny: <explanation>\n constructor(collection: string, _mockDatabase?: any) {\n this.#db = _mockDatabase || db0.collection(collection);\n }\n\n aggregate() {\n return new Aggregate(this.#db).start();\n }\n\n start() {\n return {\n where: this.where.bind(this),\n select: this.select.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n create: this.create.bind(this),\n count: this.count.bind(this),\n query: this.query.bind(this),\n aggregate: this.aggregate.bind(this),\n };\n }\n\n /**\n * 设置查询条件\n * @param where 查询条件对象\n * @returns 当前Db实例,支持链式调用\n */\n where(where: AnyObject) {\n // @ts-ignore\n this.#db = this.#db.where(where);\n return {\n where: this.where.bind(this),\n select: this.select.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n count: this.count.bind(this),\n query: this.query.bind(this),\n update: this.update.bind(this),\n remove: this.remove.bind(this),\n };\n }\n\n /**\n * 指定要返回的字段\n * @param fields 要返回的字段对象,true表示返回,false表示不返回\n * @returns 当前Db实例,支持链式调用\n */\n select(fields: Record<string, true> & { _id?: false }) {\n // @ts-ignore\n this.#db = this.#db.field(fields);\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 设置排序规则\n * @param order 排序规则对象,key为字段名,value为\"asc\"或\"desc\"\n * @returns 当前Db实例,支持链式调用\n */\n order(order: Record<string, 'asc' | 'desc'>) {\n objectEach(order, (val, key) => {\n // @ts-ignore\n this.#db = this.#db.orderBy(key, val);\n });\n\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n limit: this.limit.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 跳过指定数量的记录\n * @param skip 要跳过的记录数\n * @returns 当前Db实例,支持链式调用\n */\n skip(skip: number) {\n // @ts-ignore\n this.#db = this.#db.skip(skip);\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n limit: this.limit.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 限制返回的记录数量\n * @param limit 最大返回记录数\n * @returns 当前Db实例,支持链式调用\n */\n limit(limit: number) {\n // @ts-ignore\n this.#db = this.#db.limit(limit);\n return {\n where: this.where.bind(this),\n order: this.order.bind(this),\n skip: this.skip.bind(this),\n query: this.query.bind(this),\n };\n }\n\n /**\n * 创建新记录\n * @param data 要创建的数据\n * @returns 创建结果\n */\n async create(data: AnyObject) {\n const res = await this.#db.add(data);\n return parseDatabaseOutput<{ id: string }>(res);\n }\n\n /**\n * 获取匹配记录的数量\n * @returns 记录总数\n */\n async count() {\n const res = await this.#db.count();\n return parseDatabaseOutput<{ total: number }>(res);\n }\n\n /**\n * 执行查询操作\n * @returns 查询结果\n */\n async query<T>() {\n const res = await this.#db.get();\n return parseDatabaseOutput<{ data: T[] }>(res);\n }\n\n /**\n * 更新记录\n * @param data 要更新的数据\n * @returns 更新结果\n */\n async update(data: AnyObject) {\n const res = await this.#db.update(data);\n return parseDatabaseOutput<{ updated: number }>(res);\n }\n\n /**\n * 删除记录\n * @returns 删除结果\n */\n async remove() {\n const res = await this.#db.remove();\n return parseDatabaseOutput<{ deleted: number }>(res);\n }\n}\n\n/**\n * 数据库操作对象\n */\nexport const db = {\n /**\n * 获取指定名称的数据库集合实例\n * @param collection 集合名称\n * @returns Db类实例,用于执行数据库操作\n */\n collection(collection: string) {\n return new Db(collection).start();\n },\n};\n\n/**\n * 解析数据库执行结果\n * @param res 客户端、云端响应结果\n * @returns 处理后的结果\n */\nexport function parseDatabaseOutput<T>(res: UniClientDatabaseOutput<T> | UniCloudDatabaseOutput<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 UniClientDatabaseOutput<T>;\n if (!result.errCode) return objectOmit(result, ['errCode', 'errMsg', 'code', 'message']);\n throw errorAssign(new Error(result.errMsg), result);\n }\n\n // 云端 数据\n return res as T;\n}\n"],"names":["db","_db"],"mappings":"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"}
|
package/dist/index.cjs
CHANGED
package/dist/index.mjs
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@cloudcome/utils-uni",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.4.0",
|
|
4
4
|
"description": "cloudcome utils for uni-app",
|
|
5
5
|
"engines": {
|
|
6
6
|
"node": ">=22"
|
|
@@ -14,11 +14,21 @@
|
|
|
14
14
|
"require": "./dist/index.cjs"
|
|
15
15
|
},
|
|
16
16
|
"./package.json": "./package.json",
|
|
17
|
+
"./client": {
|
|
18
|
+
"types": "./dist/client.d.ts",
|
|
19
|
+
"import": "./dist/client.mjs",
|
|
20
|
+
"require": "./dist/client.cjs"
|
|
21
|
+
},
|
|
17
22
|
"./cloud": {
|
|
18
23
|
"types": "./dist/cloud.d.ts",
|
|
19
24
|
"import": "./dist/cloud.mjs",
|
|
20
25
|
"require": "./dist/cloud.cjs"
|
|
21
26
|
},
|
|
27
|
+
"./database": {
|
|
28
|
+
"types": "./dist/database.d.ts",
|
|
29
|
+
"import": "./dist/database.mjs",
|
|
30
|
+
"require": "./dist/database.cjs"
|
|
31
|
+
},
|
|
22
32
|
"./page": {
|
|
23
33
|
"types": "./dist/page.d.ts",
|
|
24
34
|
"import": "./dist/page.mjs",
|
|
@@ -27,9 +37,15 @@
|
|
|
27
37
|
},
|
|
28
38
|
"typesVersions": {
|
|
29
39
|
"*": {
|
|
40
|
+
"client": [
|
|
41
|
+
"./dist/client.d.ts"
|
|
42
|
+
],
|
|
30
43
|
"cloud": [
|
|
31
44
|
"./dist/cloud.d.ts"
|
|
32
45
|
],
|
|
46
|
+
"database": [
|
|
47
|
+
"./dist/database.d.ts"
|
|
48
|
+
],
|
|
33
49
|
"page": [
|
|
34
50
|
"./dist/page.d.ts"
|
|
35
51
|
]
|
|
@@ -42,11 +58,12 @@
|
|
|
42
58
|
"dist"
|
|
43
59
|
],
|
|
44
60
|
"dependencies": {
|
|
45
|
-
"@cloudcome/utils-core": "~1.
|
|
46
|
-
"@cloudcome/utils-vue": "~1.9.
|
|
61
|
+
"@cloudcome/utils-core": "~1.6.0",
|
|
62
|
+
"@cloudcome/utils-vue": "~1.9.2",
|
|
47
63
|
"@dcloudio/types": "^3.4.21",
|
|
48
64
|
"@dcloudio/uni-app": "vue3",
|
|
49
|
-
"vue": "^3.5.13"
|
|
65
|
+
"vue": "^3.5.13",
|
|
66
|
+
"zod": "^4.1.8"
|
|
50
67
|
},
|
|
51
68
|
"repository": {
|
|
52
69
|
"type": "git",
|