@cloudbase/database 0.9.19 → 0.9.21

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 (207) hide show
  1. package/.trunk/configs/.markdownlint.yaml +10 -0
  2. package/.trunk/trunk.yaml +26 -0
  3. package/dist/commonjs/aggregate.d.ts +29 -29
  4. package/dist/commonjs/aggregate.js +156 -156
  5. package/dist/commonjs/collection.d.ts +9 -9
  6. package/dist/commonjs/collection.js +46 -46
  7. package/dist/commonjs/command.d.ts +175 -175
  8. package/dist/commonjs/command.js +298 -298
  9. package/dist/commonjs/commands/logic.d.ts +24 -24
  10. package/dist/commonjs/commands/logic.js +88 -88
  11. package/dist/commonjs/commands/query.d.ts +68 -68
  12. package/dist/commonjs/commands/query.js +157 -157
  13. package/dist/commonjs/commands/update.d.ts +29 -29
  14. package/dist/commonjs/commands/update.js +50 -50
  15. package/dist/commonjs/config/app.config.d.ts +6 -6
  16. package/dist/commonjs/config/app.config.js +7 -7
  17. package/dist/commonjs/config/error.config.d.ts +3 -3
  18. package/dist/commonjs/config/error.config.js +15 -15
  19. package/dist/commonjs/const/code.d.ts +30 -30
  20. package/dist/commonjs/const/code.js +32 -32
  21. package/dist/commonjs/constant.d.ts +51 -51
  22. package/dist/commonjs/constant.js +74 -74
  23. package/dist/commonjs/document.d.ts +11 -11
  24. package/dist/commonjs/document.js +249 -252
  25. package/dist/commonjs/geo/index.d.ts +6 -6
  26. package/dist/commonjs/geo/index.js +11 -11
  27. package/dist/commonjs/geo/interface.d.ts +24 -24
  28. package/dist/commonjs/geo/interface.js +2 -2
  29. package/dist/commonjs/geo/lineString.d.ts +19 -19
  30. package/dist/commonjs/geo/lineString.js +85 -85
  31. package/dist/commonjs/geo/multiLineString.d.ts +18 -18
  32. package/dist/commonjs/geo/multiLineString.js +94 -94
  33. package/dist/commonjs/geo/multiPoint.d.ts +18 -18
  34. package/dist/commonjs/geo/multiPoint.js +78 -78
  35. package/dist/commonjs/geo/multiPolygon.d.ts +18 -18
  36. package/dist/commonjs/geo/multiPolygon.js +121 -121
  37. package/dist/commonjs/geo/point.d.ts +19 -19
  38. package/dist/commonjs/geo/point.js +49 -49
  39. package/dist/commonjs/geo/polygon.d.ts +19 -19
  40. package/dist/commonjs/geo/polygon.js +108 -108
  41. package/dist/commonjs/helper/symbol.d.ts +14 -14
  42. package/dist/commonjs/helper/symbol.js +19 -19
  43. package/dist/commonjs/index.d.ts +33 -33
  44. package/dist/commonjs/index.js +46 -46
  45. package/dist/commonjs/lib/util.d.ts +1 -1
  46. package/dist/commonjs/lib/util.js +25 -25
  47. package/dist/commonjs/operator-map.d.ts +4 -4
  48. package/dist/commonjs/operator-map.js +23 -23
  49. package/dist/commonjs/query.d.ts +22 -22
  50. package/dist/commonjs/query.js +251 -251
  51. package/dist/commonjs/regexp/index.d.ts +14 -14
  52. package/dist/commonjs/regexp/index.js +32 -32
  53. package/dist/commonjs/serializer/common.d.ts +11 -11
  54. package/dist/commonjs/serializer/common.js +121 -121
  55. package/dist/commonjs/serializer/datatype.d.ts +7 -7
  56. package/dist/commonjs/serializer/datatype.js +126 -126
  57. package/dist/commonjs/serializer/query.d.ts +7 -7
  58. package/dist/commonjs/serializer/query.js +231 -231
  59. package/dist/commonjs/serializer/update.d.ts +15 -15
  60. package/dist/commonjs/serializer/update.js +141 -141
  61. package/dist/commonjs/serverDate/index.d.ts +13 -13
  62. package/dist/commonjs/serverDate/index.js +29 -29
  63. package/dist/commonjs/transaction/collection.d.ts +7 -7
  64. package/dist/commonjs/transaction/collection.js +46 -46
  65. package/dist/commonjs/transaction/document.d.ts +27 -27
  66. package/dist/commonjs/transaction/document.js +205 -205
  67. package/dist/commonjs/transaction/index.d.ts +30 -30
  68. package/dist/commonjs/transaction/index.js +214 -214
  69. package/dist/commonjs/transaction/query.d.ts +5 -5
  70. package/dist/commonjs/transaction/query.js +10 -10
  71. package/dist/commonjs/typings/index.d.ts +40 -40
  72. package/dist/commonjs/typings/index.js +2 -2
  73. package/dist/commonjs/typings/realtime.d.ts +219 -219
  74. package/dist/commonjs/typings/realtime.js +2 -2
  75. package/dist/commonjs/util.d.ts +9 -9
  76. package/dist/commonjs/util.js +144 -144
  77. package/dist/commonjs/utils/error.d.ts +37 -37
  78. package/dist/commonjs/utils/error.js +85 -85
  79. package/dist/commonjs/utils/symbol.d.ts +8 -8
  80. package/dist/commonjs/utils/symbol.js +57 -57
  81. package/dist/commonjs/utils/type.d.ts +13 -13
  82. package/dist/commonjs/utils/type.js +22 -22
  83. package/dist/commonjs/utils/utils.d.ts +4 -4
  84. package/dist/commonjs/utils/utils.js +36 -36
  85. package/dist/commonjs/validate.d.ts +1 -1
  86. package/dist/commonjs/validate.js +59 -59
  87. package/dist/esm/aggregate.d.ts +29 -29
  88. package/dist/esm/aggregate.js +154 -154
  89. package/dist/esm/collection.d.ts +9 -9
  90. package/dist/esm/collection.js +44 -44
  91. package/dist/esm/command.d.ts +175 -175
  92. package/dist/esm/command.js +296 -296
  93. package/dist/esm/commands/logic.d.ts +24 -24
  94. package/dist/esm/commands/logic.js +84 -84
  95. package/dist/esm/commands/query.d.ts +68 -68
  96. package/dist/esm/commands/query.js +152 -152
  97. package/dist/esm/commands/update.d.ts +29 -29
  98. package/dist/esm/commands/update.js +46 -46
  99. package/dist/esm/config/app.config.d.ts +6 -6
  100. package/dist/esm/config/app.config.js +5 -5
  101. package/dist/esm/config/error.config.d.ts +3 -3
  102. package/dist/esm/config/error.config.js +13 -13
  103. package/dist/esm/const/code.d.ts +30 -30
  104. package/dist/esm/const/code.js +30 -30
  105. package/dist/esm/constant.d.ts +51 -51
  106. package/dist/esm/constant.js +65 -65
  107. package/dist/esm/document.d.ts +11 -11
  108. package/dist/esm/document.js +247 -250
  109. package/dist/esm/geo/index.d.ts +6 -6
  110. package/dist/esm/geo/index.js +6 -6
  111. package/dist/esm/geo/interface.d.ts +24 -24
  112. package/dist/esm/geo/lineString.d.ts +19 -19
  113. package/dist/esm/geo/lineString.js +83 -83
  114. package/dist/esm/geo/multiLineString.d.ts +18 -18
  115. package/dist/esm/geo/multiLineString.js +92 -92
  116. package/dist/esm/geo/multiPoint.d.ts +18 -18
  117. package/dist/esm/geo/multiPoint.js +76 -76
  118. package/dist/esm/geo/multiPolygon.d.ts +18 -18
  119. package/dist/esm/geo/multiPolygon.js +119 -119
  120. package/dist/esm/geo/point.d.ts +19 -19
  121. package/dist/esm/geo/point.js +47 -47
  122. package/dist/esm/geo/polygon.d.ts +19 -19
  123. package/dist/esm/geo/polygon.js +106 -106
  124. package/dist/esm/helper/symbol.d.ts +14 -14
  125. package/dist/esm/helper/symbol.js +14 -14
  126. package/dist/esm/index.d.ts +33 -33
  127. package/dist/esm/index.js +41 -41
  128. package/dist/esm/lib/util.d.ts +1 -1
  129. package/dist/esm/lib/util.js +23 -23
  130. package/dist/esm/operator-map.d.ts +4 -4
  131. package/dist/esm/operator-map.js +20 -20
  132. package/dist/esm/query.d.ts +22 -22
  133. package/dist/esm/query.js +249 -249
  134. package/dist/esm/regexp/index.d.ts +14 -14
  135. package/dist/esm/regexp/index.js +29 -29
  136. package/dist/esm/serializer/common.d.ts +11 -11
  137. package/dist/esm/serializer/common.js +113 -113
  138. package/dist/esm/serializer/datatype.d.ts +7 -7
  139. package/dist/esm/serializer/datatype.js +122 -122
  140. package/dist/esm/serializer/query.d.ts +7 -7
  141. package/dist/esm/serializer/query.js +229 -229
  142. package/dist/esm/serializer/update.d.ts +15 -15
  143. package/dist/esm/serializer/update.js +139 -139
  144. package/dist/esm/serverDate/index.d.ts +13 -13
  145. package/dist/esm/serverDate/index.js +26 -26
  146. package/dist/esm/transaction/collection.d.ts +7 -7
  147. package/dist/esm/transaction/collection.js +44 -44
  148. package/dist/esm/transaction/document.d.ts +27 -27
  149. package/dist/esm/transaction/document.js +203 -203
  150. package/dist/esm/transaction/index.d.ts +30 -30
  151. package/dist/esm/transaction/index.js +210 -210
  152. package/dist/esm/transaction/query.d.ts +5 -5
  153. package/dist/esm/transaction/query.js +8 -8
  154. package/dist/esm/typings/index.d.ts +40 -40
  155. package/dist/esm/typings/realtime.d.ts +219 -219
  156. package/dist/esm/util.d.ts +9 -9
  157. package/dist/esm/util.js +142 -142
  158. package/dist/esm/utils/error.d.ts +37 -37
  159. package/dist/esm/utils/error.js +82 -82
  160. package/dist/esm/utils/symbol.d.ts +8 -8
  161. package/dist/esm/utils/symbol.js +55 -55
  162. package/dist/esm/utils/type.d.ts +13 -13
  163. package/dist/esm/utils/type.js +20 -20
  164. package/dist/esm/utils/utils.d.ts +4 -4
  165. package/dist/esm/utils/utils.js +33 -33
  166. package/dist/esm/validate.d.ts +1 -1
  167. package/dist/esm/validate.js +57 -57
  168. package/package.json +1 -1
  169. package/src/document.ts +1 -4
  170. package/src/query.ts +3 -3
  171. package/src/transaction/document.ts +2 -2
  172. package/dist/commonjs/ObjectId/index.d.ts +0 -11
  173. package/dist/commonjs/ObjectId/index.js +0 -21
  174. package/dist/commonjs/realtime/error.d.ts +0 -7
  175. package/dist/commonjs/realtime/error.js +0 -11
  176. package/dist/commonjs/realtime/listener.d.ts +0 -14
  177. package/dist/commonjs/realtime/listener.js +0 -17
  178. package/dist/commonjs/realtime/message.d.ts +0 -3
  179. package/dist/commonjs/realtime/message.js +0 -10
  180. package/dist/commonjs/realtime/snapshot.d.ts +0 -16
  181. package/dist/commonjs/realtime/snapshot.js +0 -42
  182. package/dist/commonjs/realtime/virtual-websocket-client.d.ts +0 -63
  183. package/dist/commonjs/realtime/virtual-websocket-client.js +0 -736
  184. package/dist/commonjs/realtime/websocket-client.d.ts +0 -78
  185. package/dist/commonjs/realtime/websocket-client.js +0 -567
  186. package/dist/commonjs/realtime/ws-event.d.ts +0 -126
  187. package/dist/commonjs/realtime/ws-event.js +0 -139
  188. package/dist/commonjs/transaction.d.ts +0 -42
  189. package/dist/commonjs/transaction.js +0 -126
  190. package/dist/esm/ObjectId/index.d.ts +0 -11
  191. package/dist/esm/ObjectId/index.js +0 -17
  192. package/dist/esm/realtime/error.d.ts +0 -7
  193. package/dist/esm/realtime/error.js +0 -8
  194. package/dist/esm/realtime/listener.d.ts +0 -14
  195. package/dist/esm/realtime/listener.js +0 -14
  196. package/dist/esm/realtime/message.d.ts +0 -3
  197. package/dist/esm/realtime/message.js +0 -6
  198. package/dist/esm/realtime/snapshot.d.ts +0 -16
  199. package/dist/esm/realtime/snapshot.js +0 -39
  200. package/dist/esm/realtime/virtual-websocket-client.d.ts +0 -63
  201. package/dist/esm/realtime/virtual-websocket-client.js +0 -733
  202. package/dist/esm/realtime/websocket-client.d.ts +0 -78
  203. package/dist/esm/realtime/websocket-client.js +0 -564
  204. package/dist/esm/realtime/ws-event.d.ts +0 -126
  205. package/dist/esm/realtime/ws-event.js +0 -137
  206. package/dist/esm/transaction.d.ts +0 -42
  207. package/dist/esm/transaction.js +0 -121
package/dist/esm/query.js CHANGED
@@ -1,249 +1,249 @@
1
- var __assign = (this && this.__assign) || function () {
2
- __assign = Object.assign || function(t) {
3
- for (var s, i = 1, n = arguments.length; i < n; i++) {
4
- s = arguments[i];
5
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
- t[p] = s[p];
7
- }
8
- return t;
9
- };
10
- return __assign.apply(this, arguments);
11
- };
12
- import { createPromiseCallback } from './lib/util';
13
- import { QueryType } from './constant';
14
- import { Db } from './index';
15
- import { Validate } from './validate';
16
- import { Util } from './util';
17
- import { QuerySerializer } from './serializer/query';
18
- import { UpdateSerializer } from './serializer/update';
19
- import { ErrorCode } from './constant';
20
- import { getWsInstance } from './utils/utils';
21
- var Query = (function () {
22
- function Query(db, coll, fieldFilters, fieldOrders, queryOptions) {
23
- var _this = this;
24
- this.watch = function (options) {
25
- var ws = getWsInstance(_this._db);
26
- return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters || {}), limit: _this._queryOptions.limit, orderBy: _this._fieldOrders
27
- ? _this._fieldOrders.reduce(function (acc, cur) {
28
- acc[cur.field] = cur.direction;
29
- return acc;
30
- }, {})
31
- : undefined }));
32
- };
33
- this._db = db;
34
- this._coll = coll;
35
- this._fieldFilters = fieldFilters;
36
- this._fieldOrders = fieldOrders || [];
37
- this._queryOptions = queryOptions || {};
38
- this._request = new Db.reqClass(this._db.config);
39
- }
40
- Query.prototype.get = function (callback) {
41
- callback = callback || createPromiseCallback();
42
- var newOder = [];
43
- if (this._fieldOrders) {
44
- this._fieldOrders.forEach(function (order) {
45
- newOder.push(order);
46
- });
47
- }
48
- var param = {
49
- collectionName: this._coll,
50
- queryType: QueryType.WHERE
51
- };
52
- if (this._fieldFilters) {
53
- param.query = this._fieldFilters;
54
- }
55
- if (newOder.length > 0) {
56
- param.order = newOder;
57
- }
58
- if (this._queryOptions.offset) {
59
- param.offset = this._queryOptions.offset;
60
- }
61
- if (this._queryOptions.limit) {
62
- param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;
63
- }
64
- else {
65
- param.limit = 100;
66
- }
67
- if (this._queryOptions.projection) {
68
- param.projection = this._queryOptions.projection;
69
- }
70
- this._request
71
- .send('database.queryDocument', param)
72
- .then(function (res) {
73
- if (res.code) {
74
- callback(0, res);
75
- }
76
- else {
77
- var documents = Util.formatResDocumentData(res.data.list);
78
- var result = {
79
- data: documents,
80
- requestId: res.requestId
81
- };
82
- if (res.TotalCount)
83
- result.total = res.TotalCount;
84
- if (res.Limit)
85
- result.limit = res.Limit;
86
- if (res.Offset)
87
- result.offset = res.Offset;
88
- callback(0, result);
89
- }
90
- })
91
- .catch(function (err) {
92
- callback(err);
93
- });
94
- return callback.promise;
95
- };
96
- Query.prototype.count = function (callback) {
97
- callback = callback || createPromiseCallback();
98
- var param = {
99
- collectionName: this._coll,
100
- queryType: QueryType.WHERE
101
- };
102
- if (this._fieldFilters) {
103
- param.query = this._fieldFilters;
104
- }
105
- this._request
106
- .send('database.countDocument', param)
107
- .then(function (res) {
108
- if (res.code) {
109
- callback(0, res);
110
- }
111
- else {
112
- callback(0, {
113
- requestId: res.requestId,
114
- total: res.data.total
115
- });
116
- }
117
- })
118
- .catch(function (e) {
119
- callback(e);
120
- });
121
- return callback.promise;
122
- };
123
- Query.prototype.where = function (query) {
124
- if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {
125
- throw Error(ErrorCode.QueryParamTypeError);
126
- }
127
- var keys = Object.keys(query);
128
- var checkFlag = keys.some(function (item) {
129
- return query[item] !== undefined;
130
- });
131
- if (keys.length && !checkFlag) {
132
- throw Error(ErrorCode.QueryParamValueError);
133
- }
134
- return new Query(this._db, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);
135
- };
136
- Query.prototype.orderBy = function (fieldPath, directionStr) {
137
- Validate.isFieldPath(fieldPath);
138
- Validate.isFieldOrder(directionStr);
139
- var newOrder = {
140
- field: fieldPath,
141
- direction: directionStr
142
- };
143
- var combinedOrders = this._fieldOrders.concat(newOrder);
144
- return new Query(this._db, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);
145
- };
146
- Query.prototype.limit = function (limit) {
147
- Validate.isInteger('limit', limit);
148
- var option = __assign({}, this._queryOptions);
149
- option.limit = limit;
150
- return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);
151
- };
152
- Query.prototype.skip = function (offset) {
153
- Validate.isInteger('offset', offset);
154
- var option = __assign({}, this._queryOptions);
155
- option.offset = offset;
156
- return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);
157
- };
158
- Query.prototype.update = function (data, callback) {
159
- callback = callback || createPromiseCallback();
160
- if (!data || typeof data !== 'object') {
161
- return Promise.resolve({
162
- code: 'INVALID_PARAM',
163
- message: '参数必需是非空对象'
164
- });
165
- }
166
- if (data.hasOwnProperty('_id')) {
167
- return Promise.resolve({
168
- code: 'INVALID_PARAM',
169
- message: '不能更新_id的值'
170
- });
171
- }
172
- var param = {
173
- collectionName: this._coll,
174
- query: this._fieldFilters,
175
- queryType: QueryType.WHERE,
176
- multi: true,
177
- merge: true,
178
- upsert: false,
179
- data: UpdateSerializer.encode(data)
180
- };
181
- this._request
182
- .send('database.updateDocument', param)
183
- .then(function (res) {
184
- if (res.code) {
185
- callback(0, res);
186
- }
187
- else {
188
- callback(0, {
189
- requestId: res.requestId,
190
- updated: res.data.updated,
191
- upsertId: res.data.upsert_id
192
- });
193
- }
194
- })
195
- .catch(function (e) {
196
- callback(e);
197
- });
198
- return callback.promise;
199
- };
200
- Query.prototype.field = function (projection) {
201
- for (var k in projection) {
202
- if (projection[k]) {
203
- if (typeof projection[k] !== 'object') {
204
- projection[k] = 1;
205
- }
206
- }
207
- else {
208
- projection[k] = 0;
209
- }
210
- }
211
- var option = __assign({}, this._queryOptions);
212
- option.projection = projection;
213
- return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);
214
- };
215
- Query.prototype.remove = function (callback) {
216
- callback = callback || createPromiseCallback();
217
- if (Object.keys(this._queryOptions).length > 0) {
218
- console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');
219
- }
220
- if (this._fieldOrders.length > 0) {
221
- console.warn('`orderBy` is not supported in remove() operation');
222
- }
223
- var param = {
224
- collectionName: this._coll,
225
- query: QuerySerializer.encode(this._fieldFilters),
226
- queryType: QueryType.WHERE,
227
- multi: true
228
- };
229
- this._request
230
- .send('database.deleteDocument', param)
231
- .then(function (res) {
232
- if (res.code) {
233
- callback(0, res);
234
- }
235
- else {
236
- callback(0, {
237
- requestId: res.requestId,
238
- deleted: res.data.deleted
239
- });
240
- }
241
- })
242
- .catch(function (e) {
243
- callback(e);
244
- });
245
- return callback.promise;
246
- };
247
- return Query;
248
- }());
249
- export { Query };
1
+ var __assign = (this && this.__assign) || function () {
2
+ __assign = Object.assign || function(t) {
3
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
4
+ s = arguments[i];
5
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
6
+ t[p] = s[p];
7
+ }
8
+ return t;
9
+ };
10
+ return __assign.apply(this, arguments);
11
+ };
12
+ import { createPromiseCallback } from './lib/util';
13
+ import { QueryType } from './constant';
14
+ import { Db } from './index';
15
+ import { Validate } from './validate';
16
+ import { Util } from './util';
17
+ import { QuerySerializer } from './serializer/query';
18
+ import { UpdateSerializer } from './serializer/update';
19
+ import { ErrorCode } from './constant';
20
+ import { getWsInstance } from './utils/utils';
21
+ var Query = (function () {
22
+ function Query(db, coll, fieldFilters, fieldOrders, queryOptions) {
23
+ var _this = this;
24
+ this.watch = function (options) {
25
+ var ws = getWsInstance(_this._db);
26
+ return ws.watch(__assign(__assign({}, options), { envId: _this._db.config.env, collectionName: _this._coll, query: JSON.stringify(_this._fieldFilters || {}), limit: _this._queryOptions.limit, orderBy: _this._fieldOrders
27
+ ? _this._fieldOrders.reduce(function (acc, cur) {
28
+ acc[cur.field] = cur.direction;
29
+ return acc;
30
+ }, {})
31
+ : undefined }));
32
+ };
33
+ this._db = db;
34
+ this._coll = coll;
35
+ this._fieldFilters = fieldFilters;
36
+ this._fieldOrders = fieldOrders || [];
37
+ this._queryOptions = queryOptions || {};
38
+ this._request = new Db.reqClass(this._db.config);
39
+ }
40
+ Query.prototype.get = function (callback) {
41
+ callback = callback || createPromiseCallback();
42
+ var newOder = [];
43
+ if (this._fieldOrders) {
44
+ this._fieldOrders.forEach(function (order) {
45
+ newOder.push(order);
46
+ });
47
+ }
48
+ var param = {
49
+ collectionName: this._coll,
50
+ queryType: QueryType.WHERE
51
+ };
52
+ if (this._fieldFilters) {
53
+ param.query = this._fieldFilters;
54
+ }
55
+ if (newOder.length > 0) {
56
+ param.order = newOder;
57
+ }
58
+ if (this._queryOptions.offset) {
59
+ param.offset = this._queryOptions.offset;
60
+ }
61
+ if (this._queryOptions.limit) {
62
+ param.limit = this._queryOptions.limit < 1000 ? this._queryOptions.limit : 1000;
63
+ }
64
+ else {
65
+ param.limit = 100;
66
+ }
67
+ if (this._queryOptions.projection) {
68
+ param.projection = this._queryOptions.projection;
69
+ }
70
+ this._request
71
+ .send('database.queryDocument', param)
72
+ .then(function (res) {
73
+ if (res.code) {
74
+ callback(0, res);
75
+ }
76
+ else {
77
+ var documents = Util.formatResDocumentData(res.data.list);
78
+ var result = {
79
+ data: documents,
80
+ requestId: res.requestId
81
+ };
82
+ if (res.total)
83
+ result.total = res.total;
84
+ if (res.limit)
85
+ result.limit = res.limit;
86
+ if (res.offset)
87
+ result.offset = res.offset;
88
+ callback(0, result);
89
+ }
90
+ })
91
+ .catch(function (err) {
92
+ callback(err);
93
+ });
94
+ return callback.promise;
95
+ };
96
+ Query.prototype.count = function (callback) {
97
+ callback = callback || createPromiseCallback();
98
+ var param = {
99
+ collectionName: this._coll,
100
+ queryType: QueryType.WHERE
101
+ };
102
+ if (this._fieldFilters) {
103
+ param.query = this._fieldFilters;
104
+ }
105
+ this._request
106
+ .send('database.countDocument', param)
107
+ .then(function (res) {
108
+ if (res.code) {
109
+ callback(0, res);
110
+ }
111
+ else {
112
+ callback(0, {
113
+ requestId: res.requestId,
114
+ total: res.data.total
115
+ });
116
+ }
117
+ })
118
+ .catch(function (e) {
119
+ callback(e);
120
+ });
121
+ return callback.promise;
122
+ };
123
+ Query.prototype.where = function (query) {
124
+ if (Object.prototype.toString.call(query).slice(8, -1) !== 'Object') {
125
+ throw Error(ErrorCode.QueryParamTypeError);
126
+ }
127
+ var keys = Object.keys(query);
128
+ var checkFlag = keys.some(function (item) {
129
+ return query[item] !== undefined;
130
+ });
131
+ if (keys.length && !checkFlag) {
132
+ throw Error(ErrorCode.QueryParamValueError);
133
+ }
134
+ return new Query(this._db, this._coll, QuerySerializer.encode(query), this._fieldOrders, this._queryOptions);
135
+ };
136
+ Query.prototype.orderBy = function (fieldPath, directionStr) {
137
+ Validate.isFieldPath(fieldPath);
138
+ Validate.isFieldOrder(directionStr);
139
+ var newOrder = {
140
+ field: fieldPath,
141
+ direction: directionStr
142
+ };
143
+ var combinedOrders = this._fieldOrders.concat(newOrder);
144
+ return new Query(this._db, this._coll, this._fieldFilters, combinedOrders, this._queryOptions);
145
+ };
146
+ Query.prototype.limit = function (limit) {
147
+ Validate.isInteger('limit', limit);
148
+ var option = __assign({}, this._queryOptions);
149
+ option.limit = limit;
150
+ return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);
151
+ };
152
+ Query.prototype.skip = function (offset) {
153
+ Validate.isInteger('offset', offset);
154
+ var option = __assign({}, this._queryOptions);
155
+ option.offset = offset;
156
+ return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);
157
+ };
158
+ Query.prototype.update = function (data, callback) {
159
+ callback = callback || createPromiseCallback();
160
+ if (!data || typeof data !== 'object') {
161
+ return Promise.resolve({
162
+ code: 'INVALID_PARAM',
163
+ message: '参数必需是非空对象'
164
+ });
165
+ }
166
+ if (data.hasOwnProperty('_id')) {
167
+ return Promise.resolve({
168
+ code: 'INVALID_PARAM',
169
+ message: '不能更新_id的值'
170
+ });
171
+ }
172
+ var param = {
173
+ collectionName: this._coll,
174
+ query: this._fieldFilters,
175
+ queryType: QueryType.WHERE,
176
+ multi: true,
177
+ merge: true,
178
+ upsert: false,
179
+ data: UpdateSerializer.encode(data)
180
+ };
181
+ this._request
182
+ .send('database.updateDocument', param)
183
+ .then(function (res) {
184
+ if (res.code) {
185
+ callback(0, res);
186
+ }
187
+ else {
188
+ callback(0, {
189
+ requestId: res.requestId,
190
+ updated: res.data.updated,
191
+ upsertId: res.data.upsert_id
192
+ });
193
+ }
194
+ })
195
+ .catch(function (e) {
196
+ callback(e);
197
+ });
198
+ return callback.promise;
199
+ };
200
+ Query.prototype.field = function (projection) {
201
+ for (var k in projection) {
202
+ if (projection[k]) {
203
+ if (typeof projection[k] !== 'object') {
204
+ projection[k] = 1;
205
+ }
206
+ }
207
+ else {
208
+ projection[k] = 0;
209
+ }
210
+ }
211
+ var option = __assign({}, this._queryOptions);
212
+ option.projection = projection;
213
+ return new Query(this._db, this._coll, this._fieldFilters, this._fieldOrders, option);
214
+ };
215
+ Query.prototype.remove = function (callback) {
216
+ callback = callback || createPromiseCallback();
217
+ if (Object.keys(this._queryOptions).length > 0) {
218
+ console.warn('`offset`, `limit` and `projection` are not supported in remove() operation');
219
+ }
220
+ if (this._fieldOrders.length > 0) {
221
+ console.warn('`orderBy` is not supported in remove() operation');
222
+ }
223
+ var param = {
224
+ collectionName: this._coll,
225
+ query: QuerySerializer.encode(this._fieldFilters),
226
+ queryType: QueryType.WHERE,
227
+ multi: true
228
+ };
229
+ this._request
230
+ .send('database.deleteDocument', param)
231
+ .then(function (res) {
232
+ if (res.code) {
233
+ callback(0, res);
234
+ }
235
+ else {
236
+ callback(0, {
237
+ requestId: res.requestId,
238
+ deleted: res.data.deleted
239
+ });
240
+ }
241
+ })
242
+ .catch(function (e) {
243
+ callback(e);
244
+ });
245
+ return callback.promise;
246
+ };
247
+ return Query;
248
+ }());
249
+ export { Query };
@@ -1,14 +1,14 @@
1
- export declare class RegExp {
2
- $regex: string;
3
- $options: string;
4
- constructor({ regexp, options }: {
5
- regexp: any;
6
- options: any;
7
- });
8
- parse(): {
9
- $regex: string;
10
- $options: string;
11
- };
12
- readonly _internalType: import("../utils/symbol").InternalSymbol;
13
- }
14
- export declare function RegExpConstructor(param: any): RegExp;
1
+ export declare class RegExp {
2
+ $regex: string;
3
+ $options: string;
4
+ constructor({ regexp, options }: {
5
+ regexp: any;
6
+ options: any;
7
+ });
8
+ parse(): {
9
+ $regex: string;
10
+ $options: string;
11
+ };
12
+ readonly _internalType: import("../utils/symbol").InternalSymbol;
13
+ }
14
+ export declare function RegExpConstructor(param: any): RegExp;
@@ -1,29 +1,29 @@
1
- import { SYMBOL_REGEXP } from '../helper/symbol';
2
- var RegExp = (function () {
3
- function RegExp(_a) {
4
- var regexp = _a.regexp, options = _a.options;
5
- if (!regexp) {
6
- throw new TypeError('regexp must be a string');
7
- }
8
- this.$regex = regexp;
9
- this.$options = options;
10
- }
11
- RegExp.prototype.parse = function () {
12
- return {
13
- $regex: this.$regex,
14
- $options: this.$options
15
- };
16
- };
17
- Object.defineProperty(RegExp.prototype, "_internalType", {
18
- get: function () {
19
- return SYMBOL_REGEXP;
20
- },
21
- enumerable: true,
22
- configurable: true
23
- });
24
- return RegExp;
25
- }());
26
- export { RegExp };
27
- export function RegExpConstructor(param) {
28
- return new RegExp(param);
29
- }
1
+ import { SYMBOL_REGEXP } from '../helper/symbol';
2
+ var RegExp = (function () {
3
+ function RegExp(_a) {
4
+ var regexp = _a.regexp, options = _a.options;
5
+ if (!regexp) {
6
+ throw new TypeError('regexp must be a string');
7
+ }
8
+ this.$regex = regexp;
9
+ this.$options = options;
10
+ }
11
+ RegExp.prototype.parse = function () {
12
+ return {
13
+ $regex: this.$regex,
14
+ $options: this.$options
15
+ };
16
+ };
17
+ Object.defineProperty(RegExp.prototype, "_internalType", {
18
+ get: function () {
19
+ return SYMBOL_REGEXP;
20
+ },
21
+ enumerable: true,
22
+ configurable: true
23
+ });
24
+ return RegExp;
25
+ }());
26
+ export { RegExp };
27
+ export function RegExpConstructor(param) {
28
+ return new RegExp(param);
29
+ }
@@ -1,11 +1,11 @@
1
- import { LogicCommand } from '../commands/logic';
2
- export declare type IQueryCondition = Record<string, any> | LogicCommand;
3
- export declare type AnyObject = {
4
- [x: string]: any;
5
- };
6
- export declare function flattenQueryObject(query: Record<string, any>): Record<string, any>;
7
- export declare function flattenObject(object: AnyObject): AnyObject;
8
- export declare function mergeConditionAfterEncode(query: Record<string, any>, condition: Record<string, any>, key: string): void;
9
- export declare function isConversionRequired(val: any): boolean;
10
- export declare function encodeInternalDataType(val: any): IQueryCondition;
11
- export declare function decodeInternalDataType(object: AnyObject): any;
1
+ import { LogicCommand } from '../commands/logic';
2
+ export declare type IQueryCondition = Record<string, any> | LogicCommand;
3
+ export declare type AnyObject = {
4
+ [x: string]: any;
5
+ };
6
+ export declare function flattenQueryObject(query: Record<string, any>): Record<string, any>;
7
+ export declare function flattenObject(object: AnyObject): AnyObject;
8
+ export declare function mergeConditionAfterEncode(query: Record<string, any>, condition: Record<string, any>, key: string): void;
9
+ export declare function isConversionRequired(val: any): boolean;
10
+ export declare function encodeInternalDataType(val: any): IQueryCondition;
11
+ export declare function decodeInternalDataType(object: AnyObject): any;