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