@cloudbase/database 1.4.1 → 1.4.3-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (205) hide show
  1. package/dist/commonjs/ObjectId/index.d.ts +11 -11
  2. package/dist/commonjs/ObjectId/index.js +21 -21
  3. package/dist/commonjs/aggregate.d.ts +29 -29
  4. package/dist/commonjs/aggregate.js +124 -124
  5. package/dist/commonjs/collection.d.ts +17 -17
  6. package/dist/commonjs/collection.js +72 -72
  7. package/dist/commonjs/command.d.ts +175 -175
  8. package/dist/commonjs/command.js +285 -285
  9. package/dist/commonjs/commands/logic.d.ts +24 -24
  10. package/dist/commonjs/commands/logic.js +79 -79
  11. package/dist/commonjs/commands/query.d.ts +73 -73
  12. package/dist/commonjs/commands/query.js +147 -147
  13. package/dist/commonjs/commands/update.d.ts +29 -29
  14. package/dist/commonjs/commands/update.js +49 -49
  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 +34 -34
  20. package/dist/commonjs/const/code.js +36 -36
  21. package/dist/commonjs/constant.d.ts +54 -54
  22. package/dist/commonjs/constant.js +76 -76
  23. package/dist/commonjs/document.d.ts +14 -14
  24. package/dist/commonjs/document.js +217 -219
  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 +57 -57
  31. package/dist/commonjs/geo/multiLineString.d.ts +18 -18
  32. package/dist/commonjs/geo/multiLineString.js +56 -56
  33. package/dist/commonjs/geo/multiPoint.d.ts +18 -18
  34. package/dist/commonjs/geo/multiPoint.js +50 -50
  35. package/dist/commonjs/geo/multiPolygon.d.ts +18 -18
  36. package/dist/commonjs/geo/multiPolygon.js +62 -62
  37. package/dist/commonjs/geo/point.d.ts +19 -19
  38. package/dist/commonjs/geo/point.js +43 -43
  39. package/dist/commonjs/geo/polygon.d.ts +19 -19
  40. package/dist/commonjs/geo/polygon.js +70 -70
  41. package/dist/commonjs/helper/symbol.d.ts +15 -15
  42. package/dist/commonjs/helper/symbol.js +20 -20
  43. package/dist/commonjs/index.d.ts +52 -50
  44. package/dist/commonjs/index.js +41 -41
  45. package/dist/commonjs/lib/util.d.ts +1 -0
  46. package/dist/commonjs/lib/util.js +25 -0
  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 +38 -38
  50. package/dist/commonjs/query.js +249 -247
  51. package/dist/commonjs/realtime/error.d.ts +7 -7
  52. package/dist/commonjs/realtime/error.js +11 -11
  53. package/dist/commonjs/realtime/listener.d.ts +14 -14
  54. package/dist/commonjs/realtime/listener.js +17 -17
  55. package/dist/commonjs/realtime/message.d.ts +3 -3
  56. package/dist/commonjs/realtime/message.js +10 -10
  57. package/dist/commonjs/realtime/snapshot.d.ts +16 -16
  58. package/dist/commonjs/realtime/snapshot.js +42 -42
  59. package/dist/commonjs/realtime/virtual-websocket-client.d.ts +63 -63
  60. package/dist/commonjs/realtime/virtual-websocket-client.js +736 -736
  61. package/dist/commonjs/realtime/websocket-client.d.ts +78 -78
  62. package/dist/commonjs/realtime/websocket-client.js +567 -567
  63. package/dist/commonjs/realtime/ws-event.d.ts +126 -126
  64. package/dist/commonjs/realtime/ws-event.js +139 -139
  65. package/dist/commonjs/regexp/index.d.ts +18 -18
  66. package/dist/commonjs/regexp/index.js +30 -30
  67. package/dist/commonjs/serializer/common.d.ts +11 -11
  68. package/dist/commonjs/serializer/common.js +90 -90
  69. package/dist/commonjs/serializer/datatype.d.ts +7 -7
  70. package/dist/commonjs/serializer/datatype.js +99 -99
  71. package/dist/commonjs/serializer/query.d.ts +8 -8
  72. package/dist/commonjs/serializer/query.js +254 -254
  73. package/dist/commonjs/serializer/update.d.ts +16 -16
  74. package/dist/commonjs/serializer/update.js +142 -142
  75. package/dist/commonjs/serverDate/index.d.ts +13 -13
  76. package/dist/commonjs/serverDate/index.js +23 -23
  77. package/dist/commonjs/transaction/collection.d.ts +7 -0
  78. package/dist/commonjs/transaction/collection.js +46 -0
  79. package/dist/commonjs/transaction/document.d.ts +27 -0
  80. package/dist/commonjs/transaction/document.js +205 -0
  81. package/dist/commonjs/transaction/index.d.ts +30 -30
  82. package/dist/commonjs/transaction/index.js +105 -105
  83. package/dist/commonjs/transaction/query.d.ts +5 -0
  84. package/dist/commonjs/transaction/query.js +10 -0
  85. package/dist/commonjs/transaction.d.ts +42 -42
  86. package/dist/commonjs/transaction.js +126 -126
  87. package/dist/commonjs/typings/index.d.ts +45 -45
  88. package/dist/commonjs/typings/index.js +2 -2
  89. package/dist/commonjs/typings/realtime.d.ts +219 -219
  90. package/dist/commonjs/typings/realtime.js +2 -2
  91. package/dist/commonjs/util.d.ts +9 -9
  92. package/dist/commonjs/util.js +101 -101
  93. package/dist/commonjs/utils/error.d.ts +37 -37
  94. package/dist/commonjs/utils/error.js +55 -55
  95. package/dist/commonjs/utils/symbol.d.ts +8 -8
  96. package/dist/commonjs/utils/symbol.js +39 -39
  97. package/dist/commonjs/utils/type.d.ts +13 -13
  98. package/dist/commonjs/utils/type.js +22 -22
  99. package/dist/commonjs/utils/utils.d.ts +19 -19
  100. package/dist/commonjs/utils/utils.js +59 -59
  101. package/dist/commonjs/validate.d.ts +1 -1
  102. package/dist/commonjs/validate.js +155 -155
  103. package/dist/esm/ObjectId/index.d.ts +11 -11
  104. package/dist/esm/ObjectId/index.js +17 -17
  105. package/dist/esm/aggregate.d.ts +29 -29
  106. package/dist/esm/aggregate.js +121 -121
  107. package/dist/esm/collection.d.ts +17 -17
  108. package/dist/esm/collection.js +69 -69
  109. package/dist/esm/command.d.ts +175 -175
  110. package/dist/esm/command.js +281 -281
  111. package/dist/esm/commands/logic.d.ts +24 -24
  112. package/dist/esm/commands/logic.js +74 -74
  113. package/dist/esm/commands/query.d.ts +73 -73
  114. package/dist/esm/commands/query.js +141 -141
  115. package/dist/esm/commands/update.d.ts +29 -29
  116. package/dist/esm/commands/update.js +44 -44
  117. package/dist/esm/config/app.config.d.ts +6 -6
  118. package/dist/esm/config/app.config.js +5 -5
  119. package/dist/esm/config/error.config.d.ts +3 -3
  120. package/dist/esm/config/error.config.js +13 -13
  121. package/dist/esm/const/code.d.ts +34 -34
  122. package/dist/esm/const/code.js +34 -34
  123. package/dist/esm/constant.d.ts +54 -54
  124. package/dist/esm/constant.js +67 -67
  125. package/dist/esm/document.d.ts +14 -14
  126. package/dist/esm/document.js +214 -216
  127. package/dist/esm/geo/index.d.ts +6 -6
  128. package/dist/esm/geo/index.js +6 -6
  129. package/dist/esm/geo/interface.d.ts +24 -24
  130. package/dist/esm/geo/lineString.d.ts +19 -19
  131. package/dist/esm/geo/lineString.js +54 -54
  132. package/dist/esm/geo/multiLineString.d.ts +18 -18
  133. package/dist/esm/geo/multiLineString.js +53 -53
  134. package/dist/esm/geo/multiPoint.d.ts +18 -18
  135. package/dist/esm/geo/multiPoint.js +47 -47
  136. package/dist/esm/geo/multiPolygon.d.ts +18 -18
  137. package/dist/esm/geo/multiPolygon.js +59 -59
  138. package/dist/esm/geo/point.d.ts +19 -19
  139. package/dist/esm/geo/point.js +40 -40
  140. package/dist/esm/geo/polygon.d.ts +19 -19
  141. package/dist/esm/geo/polygon.js +67 -67
  142. package/dist/esm/helper/symbol.d.ts +15 -15
  143. package/dist/esm/helper/symbol.js +15 -15
  144. package/dist/esm/index.d.ts +52 -50
  145. package/dist/esm/index.js +35 -35
  146. package/dist/esm/lib/util.d.ts +1 -0
  147. package/dist/esm/lib/util.js +23 -0
  148. package/dist/esm/operator-map.d.ts +4 -4
  149. package/dist/esm/operator-map.js +20 -20
  150. package/dist/esm/query.d.ts +38 -38
  151. package/dist/esm/query.js +246 -244
  152. package/dist/esm/realtime/error.d.ts +7 -7
  153. package/dist/esm/realtime/error.js +8 -8
  154. package/dist/esm/realtime/listener.d.ts +14 -14
  155. package/dist/esm/realtime/listener.js +14 -14
  156. package/dist/esm/realtime/message.d.ts +3 -3
  157. package/dist/esm/realtime/message.js +6 -6
  158. package/dist/esm/realtime/snapshot.d.ts +16 -16
  159. package/dist/esm/realtime/snapshot.js +39 -39
  160. package/dist/esm/realtime/virtual-websocket-client.d.ts +63 -63
  161. package/dist/esm/realtime/virtual-websocket-client.js +733 -733
  162. package/dist/esm/realtime/websocket-client.d.ts +78 -78
  163. package/dist/esm/realtime/websocket-client.js +564 -564
  164. package/dist/esm/realtime/ws-event.d.ts +126 -126
  165. package/dist/esm/realtime/ws-event.js +137 -137
  166. package/dist/esm/regexp/index.d.ts +18 -18
  167. package/dist/esm/regexp/index.js +26 -26
  168. package/dist/esm/serializer/common.d.ts +11 -11
  169. package/dist/esm/serializer/common.js +82 -82
  170. package/dist/esm/serializer/datatype.d.ts +7 -7
  171. package/dist/esm/serializer/datatype.js +95 -95
  172. package/dist/esm/serializer/query.d.ts +8 -8
  173. package/dist/esm/serializer/query.js +251 -251
  174. package/dist/esm/serializer/update.d.ts +16 -16
  175. package/dist/esm/serializer/update.js +139 -139
  176. package/dist/esm/serverDate/index.d.ts +13 -13
  177. package/dist/esm/serverDate/index.js +19 -19
  178. package/dist/esm/transaction/collection.d.ts +7 -0
  179. package/dist/esm/transaction/collection.js +44 -0
  180. package/dist/esm/transaction/document.d.ts +27 -0
  181. package/dist/esm/transaction/document.js +203 -0
  182. package/dist/esm/transaction/index.d.ts +30 -30
  183. package/dist/esm/transaction/index.js +100 -100
  184. package/dist/esm/transaction/query.d.ts +5 -0
  185. package/dist/esm/transaction/query.js +8 -0
  186. package/dist/esm/transaction.d.ts +42 -42
  187. package/dist/esm/transaction.js +121 -121
  188. package/dist/esm/typings/index.d.ts +45 -45
  189. package/dist/esm/typings/realtime.d.ts +219 -219
  190. package/dist/esm/util.d.ts +9 -9
  191. package/dist/esm/util.js +98 -98
  192. package/dist/esm/utils/error.d.ts +37 -37
  193. package/dist/esm/utils/error.js +49 -49
  194. package/dist/esm/utils/symbol.d.ts +8 -8
  195. package/dist/esm/utils/symbol.js +36 -36
  196. package/dist/esm/utils/type.d.ts +13 -13
  197. package/dist/esm/utils/type.js +20 -20
  198. package/dist/esm/utils/utils.d.ts +19 -19
  199. package/dist/esm/utils/utils.js +55 -55
  200. package/dist/esm/validate.d.ts +1 -1
  201. package/dist/esm/validate.js +152 -152
  202. package/package.json +1 -1
  203. package/src/document.ts +1 -3
  204. package/src/index.ts +2 -0
  205. package/src/query.ts +1 -0
@@ -1,11 +1,11 @@
1
- export declare class ObjectId {
2
- id: string;
3
- constructor({ id }?: {
4
- id?: string;
5
- });
6
- readonly _internalType: import("../utils/symbol").InternalSymbol;
7
- parse(): {
8
- $oid: string;
9
- };
10
- }
11
- export declare function ObjectIdConstructor(opt: any): ObjectId;
1
+ export declare class ObjectId {
2
+ id: string;
3
+ constructor({ id }?: {
4
+ id?: string;
5
+ });
6
+ readonly _internalType: import("../utils/symbol").InternalSymbol;
7
+ parse(): {
8
+ $oid: string;
9
+ };
10
+ }
11
+ export declare function ObjectIdConstructor(opt: any): ObjectId;
@@ -1,21 +1,21 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const symbol_1 = require("../helper/symbol");
4
- class ObjectId {
5
- constructor({ id = '' } = {}) {
6
- this.id = id;
7
- }
8
- get _internalType() {
9
- return symbol_1.SYMBOL_OBJECTID;
10
- }
11
- parse() {
12
- return {
13
- $oid: this.id
14
- };
15
- }
16
- }
17
- exports.ObjectId = ObjectId;
18
- function ObjectIdConstructor(opt) {
19
- return new ObjectId(opt);
20
- }
21
- exports.ObjectIdConstructor = ObjectIdConstructor;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const symbol_1 = require("../helper/symbol");
4
+ class ObjectId {
5
+ constructor({ id = '' } = {}) {
6
+ this.id = id;
7
+ }
8
+ get _internalType() {
9
+ return symbol_1.SYMBOL_OBJECTID;
10
+ }
11
+ parse() {
12
+ return {
13
+ $oid: this.id
14
+ };
15
+ }
16
+ }
17
+ exports.ObjectId = ObjectId;
18
+ function ObjectIdConstructor(opt) {
19
+ return new ObjectId(opt);
20
+ }
21
+ exports.ObjectIdConstructor = ObjectIdConstructor;
@@ -1,29 +1,29 @@
1
- export default class Aggregation {
2
- _db: any;
3
- _request: any;
4
- _stages: any[];
5
- _collectionName: string;
6
- constructor(db?: any, collectionName?: any, rawPipeline?: any);
7
- end(): Promise<any>;
8
- unwrap(): any[];
9
- done(): {
10
- [x: number]: any;
11
- }[];
12
- _pipe(stage: any, param: any, raw?: boolean): this;
13
- addFields(param: any): this;
14
- bucket(param: any): this;
15
- bucketAuto(param: any): this;
16
- count(param: any): this;
17
- geoNear(param: any): this;
18
- group(param: any): this;
19
- limit(param: any): this;
20
- match(param: any): this;
21
- project(param: any): this;
22
- lookup(param: any): this;
23
- replaceRoot(param: any): this;
24
- sample(param: any): this;
25
- skip(param: any): this;
26
- sort(param: any): this;
27
- sortByCount(param: any): this;
28
- unwind(param: any): this;
29
- }
1
+ export default class Aggregation {
2
+ _db: any;
3
+ _request: any;
4
+ _stages: any[];
5
+ _collectionName: string;
6
+ constructor(db?: any, collectionName?: any, rawPipeline?: any);
7
+ end(): Promise<any>;
8
+ unwrap(): any[];
9
+ done(): {
10
+ [x: number]: any;
11
+ }[];
12
+ _pipe(stage: any, param: any, raw?: boolean): this;
13
+ addFields(param: any): this;
14
+ bucket(param: any): this;
15
+ bucketAuto(param: any): this;
16
+ count(param: any): this;
17
+ geoNear(param: any): this;
18
+ group(param: any): this;
19
+ limit(param: any): this;
20
+ match(param: any): this;
21
+ project(param: any): this;
22
+ lookup(param: any): this;
23
+ replaceRoot(param: any): this;
24
+ sample(param: any): this;
25
+ skip(param: any): this;
26
+ sort(param: any): this;
27
+ sortByCount(param: any): this;
28
+ unwind(param: any): this;
29
+ }
@@ -1,124 +1,124 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const index_1 = require("./index");
4
- const bson_1 = require("bson");
5
- const query_1 = require("./serializer/query");
6
- const utils_1 = require("./utils/utils");
7
- const type_1 = require("./utils/type");
8
- const validate_1 = require("./validate");
9
- const point_1 = require("./geo/point");
10
- class Aggregation {
11
- constructor(db, collectionName, rawPipeline) {
12
- this._stages = [];
13
- if (db && collectionName) {
14
- this._db = db;
15
- this._request = new index_1.Db.reqClass(this._db.config);
16
- this._collectionName = collectionName;
17
- if (rawPipeline && rawPipeline.length > 0) {
18
- rawPipeline.forEach((stage) => {
19
- validate_1.Validate.isValidAggregation(stage);
20
- const stageName = Object.keys(stage)[0];
21
- this._pipe(stageName, stage[stageName], true);
22
- });
23
- }
24
- }
25
- }
26
- async end() {
27
- if (!this._collectionName || !this._db) {
28
- throw new Error('Aggregation pipeline cannot send request');
29
- }
30
- const result = await this._request.send('database.aggregateDocuments', {
31
- collectionName: this._collectionName,
32
- stages: this._stages
33
- });
34
- if (result && result.data && result.data.list) {
35
- return {
36
- requestId: result.requestId,
37
- data: result.data.list.map(bson_1.EJSON.parse)
38
- };
39
- }
40
- return result;
41
- }
42
- unwrap() {
43
- return this._stages;
44
- }
45
- done() {
46
- return this._stages.map(({ stageKey, stageValue }) => {
47
- return {
48
- [stageKey]: JSON.parse(stageValue)
49
- };
50
- });
51
- }
52
- _pipe(stage, param, raw = false) {
53
- let transformParam = '';
54
- if (type_1.getType(param) === 'object') {
55
- transformParam = utils_1.stringifyByEJSON(param);
56
- }
57
- else {
58
- transformParam = JSON.stringify(param);
59
- }
60
- this._stages.push({
61
- stageKey: raw ? stage : `$${stage}`,
62
- stageValue: transformParam
63
- });
64
- return this;
65
- }
66
- addFields(param) {
67
- return this._pipe('addFields', param);
68
- }
69
- bucket(param) {
70
- return this._pipe('bucket', param);
71
- }
72
- bucketAuto(param) {
73
- return this._pipe('bucketAuto', param);
74
- }
75
- count(param) {
76
- return this._pipe('count', param);
77
- }
78
- geoNear(param) {
79
- if (param.query) {
80
- param.query = query_1.QuerySerializer.encode(param.query);
81
- }
82
- if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
83
- param.distanceMultiplier = param.distanceMultiplier;
84
- }
85
- if (param.near) {
86
- param.near = new point_1.Point(param.near.longitude, param.near.latitude).toJSON();
87
- }
88
- return this._pipe('geoNear', param);
89
- }
90
- group(param) {
91
- return this._pipe('group', param);
92
- }
93
- limit(param) {
94
- return this._pipe('limit', param);
95
- }
96
- match(param) {
97
- return this._pipe('match', query_1.QuerySerializer.encode(param));
98
- }
99
- project(param) {
100
- return this._pipe('project', param);
101
- }
102
- lookup(param) {
103
- return this._pipe('lookup', param);
104
- }
105
- replaceRoot(param) {
106
- return this._pipe('replaceRoot', param);
107
- }
108
- sample(param) {
109
- return this._pipe('sample', param);
110
- }
111
- skip(param) {
112
- return this._pipe('skip', param);
113
- }
114
- sort(param) {
115
- return this._pipe('sort', param);
116
- }
117
- sortByCount(param) {
118
- return this._pipe('sortByCount', param);
119
- }
120
- unwind(param) {
121
- return this._pipe('unwind', param);
122
- }
123
- }
124
- exports.default = Aggregation;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const index_1 = require("./index");
4
+ const bson_1 = require("bson");
5
+ const query_1 = require("./serializer/query");
6
+ const utils_1 = require("./utils/utils");
7
+ const type_1 = require("./utils/type");
8
+ const validate_1 = require("./validate");
9
+ const point_1 = require("./geo/point");
10
+ class Aggregation {
11
+ constructor(db, collectionName, rawPipeline) {
12
+ this._stages = [];
13
+ if (db && collectionName) {
14
+ this._db = db;
15
+ this._request = new index_1.Db.reqClass(this._db.config);
16
+ this._collectionName = collectionName;
17
+ if (rawPipeline && rawPipeline.length > 0) {
18
+ rawPipeline.forEach((stage) => {
19
+ validate_1.Validate.isValidAggregation(stage);
20
+ const stageName = Object.keys(stage)[0];
21
+ this._pipe(stageName, stage[stageName], true);
22
+ });
23
+ }
24
+ }
25
+ }
26
+ async end() {
27
+ if (!this._collectionName || !this._db) {
28
+ throw new Error('Aggregation pipeline cannot send request');
29
+ }
30
+ const result = await this._request.send('database.aggregateDocuments', {
31
+ collectionName: this._collectionName,
32
+ stages: this._stages
33
+ });
34
+ if (result && result.data && result.data.list) {
35
+ return {
36
+ requestId: result.requestId,
37
+ data: result.data.list.map(bson_1.EJSON.parse)
38
+ };
39
+ }
40
+ return result;
41
+ }
42
+ unwrap() {
43
+ return this._stages;
44
+ }
45
+ done() {
46
+ return this._stages.map(({ stageKey, stageValue }) => {
47
+ return {
48
+ [stageKey]: JSON.parse(stageValue)
49
+ };
50
+ });
51
+ }
52
+ _pipe(stage, param, raw = false) {
53
+ let transformParam = '';
54
+ if (type_1.getType(param) === 'object') {
55
+ transformParam = utils_1.stringifyByEJSON(param);
56
+ }
57
+ else {
58
+ transformParam = JSON.stringify(param);
59
+ }
60
+ this._stages.push({
61
+ stageKey: raw ? stage : `$${stage}`,
62
+ stageValue: transformParam
63
+ });
64
+ return this;
65
+ }
66
+ addFields(param) {
67
+ return this._pipe('addFields', param);
68
+ }
69
+ bucket(param) {
70
+ return this._pipe('bucket', param);
71
+ }
72
+ bucketAuto(param) {
73
+ return this._pipe('bucketAuto', param);
74
+ }
75
+ count(param) {
76
+ return this._pipe('count', param);
77
+ }
78
+ geoNear(param) {
79
+ if (param.query) {
80
+ param.query = query_1.QuerySerializer.encode(param.query);
81
+ }
82
+ if (param.distanceMultiplier && typeof (param.distanceMultiplier) === 'number') {
83
+ param.distanceMultiplier = param.distanceMultiplier;
84
+ }
85
+ if (param.near) {
86
+ param.near = new point_1.Point(param.near.longitude, param.near.latitude).toJSON();
87
+ }
88
+ return this._pipe('geoNear', param);
89
+ }
90
+ group(param) {
91
+ return this._pipe('group', param);
92
+ }
93
+ limit(param) {
94
+ return this._pipe('limit', param);
95
+ }
96
+ match(param) {
97
+ return this._pipe('match', query_1.QuerySerializer.encode(param));
98
+ }
99
+ project(param) {
100
+ return this._pipe('project', param);
101
+ }
102
+ lookup(param) {
103
+ return this._pipe('lookup', param);
104
+ }
105
+ replaceRoot(param) {
106
+ return this._pipe('replaceRoot', param);
107
+ }
108
+ sample(param) {
109
+ return this._pipe('sample', param);
110
+ }
111
+ skip(param) {
112
+ return this._pipe('skip', param);
113
+ }
114
+ sort(param) {
115
+ return this._pipe('sort', param);
116
+ }
117
+ sortByCount(param) {
118
+ return this._pipe('sortByCount', param);
119
+ }
120
+ unwind(param) {
121
+ return this._pipe('unwind', param);
122
+ }
123
+ }
124
+ exports.default = Aggregation;
@@ -1,17 +1,17 @@
1
- import { DocumentReference } from './document';
2
- import { Query, QueryOption, UpdateOption } from './query';
3
- import Aggregation from './aggregate';
4
- export declare class CollectionReference extends Query {
5
- protected _transactionId: string;
6
- readonly name: string;
7
- doc(docID: string | number): DocumentReference;
8
- add(data: any): Promise<{
9
- ids?: string[];
10
- id?: string;
11
- inserted?: number;
12
- ok?: number;
13
- requestId: string;
14
- }>;
15
- aggregate(rawPipeline?: object[]): Aggregation;
16
- options(apiOptions: QueryOption | UpdateOption): CollectionReference;
17
- }
1
+ import { DocumentReference } from './document';
2
+ import { Query, QueryOption, UpdateOption } from './query';
3
+ import Aggregation from './aggregate';
4
+ export declare class CollectionReference extends Query {
5
+ protected _transactionId: string;
6
+ readonly name: string;
7
+ doc(docID: string | number): DocumentReference;
8
+ add(data: any): Promise<{
9
+ ids?: string[];
10
+ id?: string;
11
+ inserted?: number;
12
+ ok?: number;
13
+ requestId: string;
14
+ }>;
15
+ aggregate(rawPipeline?: object[]): Aggregation;
16
+ options(apiOptions: QueryOption | UpdateOption): CollectionReference;
17
+ }
@@ -1,72 +1,72 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const document_1 = require("./document");
4
- const query_1 = require("./query");
5
- const aggregate_1 = require("./aggregate");
6
- const datatype_1 = require("./serializer/datatype");
7
- const utils_1 = require("./utils/utils");
8
- const validate_1 = require("./validate");
9
- const type_1 = require("./utils/type");
10
- class CollectionReference extends query_1.Query {
11
- constructor(db, coll, apiOptions, transactionId) {
12
- super(db, coll, '', apiOptions, transactionId);
13
- if (transactionId) {
14
- this._transactionId = transactionId;
15
- }
16
- }
17
- get name() {
18
- return this._coll;
19
- }
20
- doc(docID) {
21
- if (typeof docID !== 'string' && typeof docID !== 'number') {
22
- throw new Error('docId必须为字符串或数字');
23
- }
24
- return new document_1.DocumentReference(this._db, this._coll, this._apiOptions, docID, this._transactionId);
25
- }
26
- async add(data) {
27
- let transformData = data;
28
- if (!type_1.isArray(data)) {
29
- transformData = [data];
30
- }
31
- transformData = transformData.map(item => {
32
- return utils_1.stringifyByEJSON(datatype_1.serialize(item));
33
- });
34
- let params = {
35
- collectionName: this._coll,
36
- data: transformData
37
- };
38
- if (this._transactionId) {
39
- params.transactionId = this._transactionId;
40
- }
41
- const res = await this._request.send('database.insertDocument', params, utils_1.getReqOpts(this._apiOptions));
42
- if (res.code) {
43
- return res;
44
- }
45
- if (!type_1.isArray(data)) {
46
- if (this._transactionId) {
47
- return {
48
- inserted: 1,
49
- ok: 1,
50
- id: res.data.insertedIds[0],
51
- requestId: res.requestId
52
- };
53
- }
54
- return {
55
- id: res.data.insertedIds[0],
56
- requestId: res.requestId
57
- };
58
- }
59
- return {
60
- ids: res.data.insertedIds,
61
- requestId: res.requestId
62
- };
63
- }
64
- aggregate(rawPipeline = []) {
65
- return new aggregate_1.default(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);
66
- }
67
- options(apiOptions) {
68
- validate_1.Validate.isValidOptions(apiOptions);
69
- return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);
70
- }
71
- }
72
- exports.CollectionReference = CollectionReference;
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const document_1 = require("./document");
4
+ const query_1 = require("./query");
5
+ const aggregate_1 = require("./aggregate");
6
+ const datatype_1 = require("./serializer/datatype");
7
+ const utils_1 = require("./utils/utils");
8
+ const validate_1 = require("./validate");
9
+ const type_1 = require("./utils/type");
10
+ class CollectionReference extends query_1.Query {
11
+ constructor(db, coll, apiOptions, transactionId) {
12
+ super(db, coll, '', apiOptions, transactionId);
13
+ if (transactionId) {
14
+ this._transactionId = transactionId;
15
+ }
16
+ }
17
+ get name() {
18
+ return this._coll;
19
+ }
20
+ doc(docID) {
21
+ if (typeof docID !== 'string' && typeof docID !== 'number') {
22
+ throw new Error('docId必须为字符串或数字');
23
+ }
24
+ return new document_1.DocumentReference(this._db, this._coll, this._apiOptions, docID, this._transactionId);
25
+ }
26
+ async add(data) {
27
+ let transformData = data;
28
+ if (!type_1.isArray(data)) {
29
+ transformData = [data];
30
+ }
31
+ transformData = transformData.map(item => {
32
+ return utils_1.stringifyByEJSON(datatype_1.serialize(item));
33
+ });
34
+ let params = {
35
+ collectionName: this._coll,
36
+ data: transformData
37
+ };
38
+ if (this._transactionId) {
39
+ params.transactionId = this._transactionId;
40
+ }
41
+ const res = await this._request.send('database.insertDocument', params, utils_1.getReqOpts(this._apiOptions));
42
+ if (res.code) {
43
+ return res;
44
+ }
45
+ if (!type_1.isArray(data)) {
46
+ if (this._transactionId) {
47
+ return {
48
+ inserted: 1,
49
+ ok: 1,
50
+ id: res.data.insertedIds[0],
51
+ requestId: res.requestId
52
+ };
53
+ }
54
+ return {
55
+ id: res.data.insertedIds[0],
56
+ requestId: res.requestId
57
+ };
58
+ }
59
+ return {
60
+ ids: res.data.insertedIds,
61
+ requestId: res.requestId
62
+ };
63
+ }
64
+ aggregate(rawPipeline = []) {
65
+ return new aggregate_1.default(this._db, this._coll, (this._apiOptions.raw || false) ? rawPipeline : []);
66
+ }
67
+ options(apiOptions) {
68
+ validate_1.Validate.isValidOptions(apiOptions);
69
+ return new CollectionReference(this._db, this._coll, apiOptions, this._transactionId);
70
+ }
71
+ }
72
+ exports.CollectionReference = CollectionReference;